# Rule for cloud admin access #"context_is_admin": "role:admin" # Rule for resource owner access #"owner": "tenant_id:%(tenant_id)s" # Rule for admin or owner access #"admin_or_owner": "rule:context_is_admin or rule:owner" # Rule for advsvc role access #"context_is_advsvc": "role:advsvc" # Rule for admin or network owner access #"admin_or_network_owner": "rule:context_is_admin or tenant_id:%(network:tenant_id)s" # Rule for resource owner, admin or network owner access #"admin_owner_or_network_owner": "rule:owner or rule:admin_or_network_owner" # Rule for admin-only access #"admin_only": "rule:context_is_admin" # Rule for regular user access #"regular_user": "" # Rule of shared network #"shared": "field:networks:shared=True" # Default access rule #"default": "rule:admin_or_owner" # Rule for common parent owner check #"admin_or_ext_parent_owner": "rule:context_is_admin or tenant_id:%(ext_parent:tenant_id)s" # Definition of a shared address scope #"shared_address_scopes": "field:address_scopes:shared=True" # Create an address scope # POST /address-scopes #"create_address_scope": "rule:regular_user" # Create a shared address scope # POST /address-scopes #"create_address_scope:shared": "rule:admin_only" # Get an address scope # GET /address-scopes # GET /address-scopes/{id} #"get_address_scope": "rule:admin_or_owner or rule:shared_address_scopes" # Update an address scope # PUT /address-scopes/{id} #"update_address_scope": "rule:admin_or_owner" # Update ``shared`` attribute of an address scope # PUT /address-scopes/{id} #"update_address_scope:shared": "rule:admin_only" # Delete an address scope # DELETE /address-scopes/{id} #"delete_address_scope": "rule:admin_or_owner" # Get an agent # GET /agents # GET /agents/{id} #"get_agent": "rule:admin_only" # Update an agent # PUT /agents/{id} #"update_agent": "rule:admin_only" # Delete an agent # DELETE /agents/{id} #"delete_agent": "rule:admin_only" # Add a network to a DHCP agent # POST /agents/{agent_id}/dhcp-networks #"create_dhcp-network": "rule:admin_only" # List networks on a DHCP agent # GET /agents/{agent_id}/dhcp-networks #"get_dhcp-networks": "rule:admin_only" # Remove a network from a DHCP agent # DELETE /agents/{agent_id}/dhcp-networks/{network_id} #"delete_dhcp-network": "rule:admin_only" # Add a router to an L3 agent # POST /agents/{agent_id}/l3-routers #"create_l3-router": "rule:admin_only" # List routers on an L3 agent # GET /agents/{agent_id}/l3-routers #"get_l3-routers": "rule:admin_only" # Remove a router from an L3 agent # DELETE /agents/{agent_id}/l3-routers/{router_id} #"delete_l3-router": "rule:admin_only" # List DHCP agents hosting a network # GET /networks/{network_id}/dhcp-agents #"get_dhcp-agents": "rule:admin_only" # List L3 agents hosting a router # GET /routers/{router_id}/l3-agents #"get_l3-agents": "rule:admin_only" # Get a project's auto-allocated topology # GET /auto-allocated-topology/{project_id} #"get_auto_allocated_topology": "rule:admin_or_owner" # Delete a project's auto-allocated topology # DELETE /auto-allocated-topology/{project_id} #"delete_auto_allocated_topology": "rule:admin_or_owner" # List availability zones # GET /availability_zones #"get_availability_zone": "rule:regular_user" # Create a flavor # POST /flavors #"create_flavor": "rule:admin_only" # Get a flavor # GET /flavors # GET /flavors/{id} #"get_flavor": "rule:regular_user" # Update a flavor # PUT /flavors/{id} #"update_flavor": "rule:admin_only" # Delete a flavor # DELETE /flavors/{id} #"delete_flavor": "rule:admin_only" # Create a service profile # POST /service_profiles #"create_service_profile": "rule:admin_only" # Get a service profile # GET /service_profiles # GET /service_profiles/{id} #"get_service_profile": "rule:admin_only" # Update a service profile # PUT /service_profiles/{id} #"update_service_profile": "rule:admin_only" # Delete a service profile # DELETE /service_profiles/{id} #"delete_service_profile": "rule:admin_only" # Get a flavor associated with a given service profiles. There is no # corresponding GET operations in API currently. This rule is # currently referred only in the DELETE of flavor_service_profile. #"get_flavor_service_profile": "rule:regular_user" # Associate a flavor with a service profile # POST /flavors/{flavor_id}/service_profiles #"create_flavor_service_profile": "rule:admin_only" # Disassociate a flavor with a service profile # DELETE /flavors/{flavor_id}/service_profiles/{profile_id} #"delete_flavor_service_profile": "rule:admin_only" # Create a floating IP # POST /floatingips #"create_floatingip": "rule:regular_user" # Create a floating IP with a specific IP address # POST /floatingips #"create_floatingip:floating_ip_address": "rule:admin_only" # Get a floating IP # GET /floatingips # GET /floatingips/{id} #"get_floatingip": "rule:admin_or_owner" # Update a floating IP # PUT /floatingips/{id} #"update_floatingip": "rule:admin_or_owner" # Delete a floating IP # DELETE /floatingips/{id} #"delete_floatingip": "rule:admin_or_owner" # Get floating IP pools # GET /floatingip_pools #"get_floatingip_pool": "rule:regular_user" # Create a floating IP port forwarding # POST /floatingips/{floatingip_id}/port_forwardings #"create_floatingip_port_forwarding": "rule:admin_or_ext_parent_owner" # Get a floating IP port forwarding # GET /floatingips/{floatingip_id}/port_forwardings # GET /floatingips/{floatingip_id}/port_forwardings/{port_forwarding_id} #"get_floatingip_port_forwarding": "rule:admin_or_ext_parent_owner" # Update a floating IP port forwarding # PUT /floatingips/{floatingip_id}/port_forwardings/{port_forwarding_id} #"update_floatingip_port_forwarding": "rule:admin_or_ext_parent_owner" # Delete a floating IP port forwarding # DELETE /floatingips/{floatingip_id}/port_forwardings/{port_forwarding_id} #"delete_floatingip_port_forwarding": "rule:admin_or_ext_parent_owner" # Create a router conntrack helper # POST /routers/{router_id}/conntrack_helpers #"create_router_conntrack_helper": "rule:admin_or_ext_parent_owner" # Get a router conntrack helper # GET /routers/{router_id}/conntrack_helpers # GET /routers/{router_id}/conntrack_helpers/{conntrack_helper_id} #"get_router_conntrack_helper": "rule:admin_or_ext_parent_owner" # Update a router conntrack helper # PUT /routers/{router_id}/conntrack_helpers/{conntrack_helper_id} #"update_router_conntrack_helper": "rule:admin_or_ext_parent_owner" # Delete a router conntrack helper # DELETE /routers/{router_id}/conntrack_helpers/{conntrack_helper_id} #"delete_router_conntrack_helper": "rule:admin_or_ext_parent_owner" # Get loggable resources # GET /log/loggable-resources #"get_loggable_resource": "rule:admin_only" # Create a network log # POST /log/logs #"create_log": "rule:admin_only" # Get a network log # GET /log/logs # GET /log/logs/{id} #"get_log": "rule:admin_only" # Update a network log # PUT /log/logs/{id} #"update_log": "rule:admin_only" # Delete a network log # DELETE /log/logs/{id} #"delete_log": "rule:admin_only" # Create a metering label # POST /metering/metering-labels #"create_metering_label": "rule:admin_only" # Get a metering label # GET /metering/metering-labels # GET /metering/metering-labels/{id} #"get_metering_label": "rule:admin_only" # Delete a metering label # DELETE /metering/metering-labels/{id} #"delete_metering_label": "rule:admin_only" # Create a metering label rule # POST /metering/metering-label-rules #"create_metering_label_rule": "rule:admin_only" # Get a metering label rule # GET /metering/metering-label-rules # GET /metering/metering-label-rules/{id} #"get_metering_label_rule": "rule:admin_only" # Delete a metering label rule # DELETE /metering/metering-label-rules/{id} #"delete_metering_label_rule": "rule:admin_only" # Definition of an external network #"external": "field:networks:router:external=True" # Create a network # POST /networks #"create_network": "rule:regular_user" # Create a shared network # POST /networks #"create_network:shared": "rule:admin_only" # Create an external network # POST /networks #"create_network:router:external": "rule:admin_only" # Specify ``is_default`` attribute when creating a network # POST /networks #"create_network:is_default": "rule:admin_only" # Specify ``port_security_enabled`` attribute when creating a network # POST /networks #"create_network:port_security_enabled": "rule:regular_user" # Specify ``segments`` attribute when creating a network # POST /networks #"create_network:segments": "rule:admin_only" # Specify ``provider:network_type`` when creating a network # POST /networks #"create_network:provider:network_type": "rule:admin_only" # Specify ``provider:physical_network`` when creating a network # POST /networks #"create_network:provider:physical_network": "rule:admin_only" # Specify ``provider:segmentation_id`` when creating a network # POST /networks #"create_network:provider:segmentation_id": "rule:admin_only" # Get a network # GET /networks # GET /networks/{id} #"get_network": "rule:admin_or_owner or rule:shared or rule:external or rule:context_is_advsvc" # Get ``router:external`` attribute of a network # GET /networks # GET /networks/{id} #"get_network:router:external": "rule:regular_user" # Get ``segments`` attribute of a network # GET /networks # GET /networks/{id} #"get_network:segments": "rule:admin_only" # Get ``provider:network_type`` attribute of a network # GET /networks # GET /networks/{id} #"get_network:provider:network_type": "rule:admin_only" # Get ``provider:physical_network`` attribute of a network # GET /networks # GET /networks/{id} #"get_network:provider:physical_network": "rule:admin_only" # Get ``provider:segmentation_id`` attribute of a network # GET /networks # GET /networks/{id} #"get_network:provider:segmentation_id": "rule:admin_only" # Update a network # PUT /networks/{id} #"update_network": "rule:admin_or_owner" # Update ``segments`` attribute of a network # PUT /networks/{id} #"update_network:segments": "rule:admin_only" # Update ``shared`` attribute of a network # PUT /networks/{id} #"update_network:shared": "rule:admin_only" # Update ``provider:network_type`` attribute of a network # PUT /networks/{id} #"update_network:provider:network_type": "rule:admin_only" # Update ``provider:physical_network`` attribute of a network # PUT /networks/{id} #"update_network:provider:physical_network": "rule:admin_only" # Update ``provider:segmentation_id`` attribute of a network # PUT /networks/{id} #"update_network:provider:segmentation_id": "rule:admin_only" # Update ``router:external`` attribute of a network # PUT /networks/{id} #"update_network:router:external": "rule:admin_only" # Update ``is_default`` attribute of a network # PUT /networks/{id} #"update_network:is_default": "rule:admin_only" # Update ``port_security_enabled`` attribute of a network # PUT /networks/{id} #"update_network:port_security_enabled": "rule:admin_or_owner" # Delete a network # DELETE /networks/{id} #"delete_network": "rule:admin_or_owner" # Get network IP availability # GET /network-ip-availabilities # GET /network-ip-availabilities/{network_id} #"get_network_ip_availability": "rule:admin_only" # Create a network segment range # POST /network_segment_ranges #"create_network_segment_range": "rule:admin_only" # Get a network segment range # GET /network_segment_ranges # GET /network_segment_ranges/{id} #"get_network_segment_range": "rule:admin_only" # Update a network segment range # PUT /network_segment_ranges/{id} #"update_network_segment_range": "rule:admin_only" # Delete a network segment range # DELETE /network_segment_ranges/{id} #"delete_network_segment_range": "rule:admin_only" # Definition of port with network device_owner #"network_device": "field:port:device_owner=~^network:" # Rule for data plane integration #"admin_or_data_plane_int": "rule:context_is_admin or role:data_plane_integrator" # Create a port # POST /ports #"create_port": "rule:regular_user" # Specify ``device_owner`` attribute when creting a port # POST /ports #"create_port:device_owner": "not rule:network_device or rule:context_is_advsvc or rule:admin_or_network_owner" # Specify ``mac_address`` attribute when creating a port # POST /ports #"create_port:mac_address": "rule:context_is_advsvc or rule:admin_or_network_owner" # Specify ``fixed_ips`` information when creating a port # POST /ports #"create_port:fixed_ips": "rule:context_is_advsvc or rule:admin_or_network_owner or rule:shared" # Specify IP address in ``fixed_ips`` when creating a port # POST /ports #"create_port:fixed_ips:ip_address": "rule:context_is_advsvc or rule:admin_or_network_owner" # Specify subnet ID in ``fixed_ips`` when creating a port # POST /ports #"create_port:fixed_ips:subnet_id": "rule:context_is_advsvc or rule:admin_or_network_owner or rule:shared" # Specify ``port_security_enabled`` attribute when creating a port # POST /ports #"create_port:port_security_enabled": "rule:context_is_advsvc or rule:admin_or_network_owner" # Specify ``binding:host_id`` attribute when creating a port # POST /ports #"create_port:binding:host_id": "rule:admin_only" # Specify ``binding:profile`` attribute when creating a port # POST /ports #"create_port:binding:profile": "rule:admin_only" # Specify ``binding:vnic_type`` attribute when creating a port # POST /ports #"create_port:binding:vnic_type": "rule:regular_user" # Specify ``allowed_address_pairs`` attribute when creating a port # POST /ports #"create_port:allowed_address_pairs": "rule:admin_or_network_owner" # Specify ``mac_address` of `allowed_address_pairs`` attribute when # creating a port # POST /ports #"create_port:allowed_address_pairs:mac_address": "rule:admin_or_network_owner" # Specify ``ip_address`` of ``allowed_address_pairs`` attribute when # creating a port # POST /ports #"create_port:allowed_address_pairs:ip_address": "rule:admin_or_network_owner" # Get a port # GET /ports # GET /ports/{id} #"get_port": "rule:context_is_advsvc or rule:admin_owner_or_network_owner" # Get ``binding:vif_type`` attribute of a port # GET /ports # GET /ports/{id} #"get_port:binding:vif_type": "rule:admin_only" # Get ``binding:vif_details`` attribute of a port # GET /ports # GET /ports/{id} #"get_port:binding:vif_details": "rule:admin_only" # Get ``binding:host_id`` attribute of a port # GET /ports # GET /ports/{id} #"get_port:binding:host_id": "rule:admin_only" # Get ``binding:profile`` attribute of a port # GET /ports # GET /ports/{id} #"get_port:binding:profile": "rule:admin_only" # Get ``resource_request`` attribute of a port # GET /ports # GET /ports/{id} #"get_port:resource_request": "rule:admin_only" # Update a port # PUT /ports/{id} #"update_port": "rule:admin_or_owner or rule:context_is_advsvc" # Update ``device_owner`` attribute of a port # PUT /ports/{id} #"update_port:device_owner": "not rule:network_device or rule:context_is_advsvc or rule:admin_or_network_owner" # Update ``mac_address`` attribute of a port # PUT /ports/{id} #"update_port:mac_address": "rule:admin_only or rule:context_is_advsvc" # Specify ``fixed_ips`` information when updating a port # PUT /ports/{id} #"update_port:fixed_ips": "rule:context_is_advsvc or rule:admin_or_network_owner" # Specify IP address in ``fixed_ips`` information when updating a port # PUT /ports/{id} #"update_port:fixed_ips:ip_address": "rule:context_is_advsvc or rule:admin_or_network_owner" # Specify subnet ID in ``fixed_ips`` information when updating a port # PUT /ports/{id} #"update_port:fixed_ips:subnet_id": "rule:context_is_advsvc or rule:admin_or_network_owner or rule:shared" # Update ``port_security_enabled`` attribute of a port # PUT /ports/{id} #"update_port:port_security_enabled": "rule:context_is_advsvc or rule:admin_or_network_owner" # Update ``binding:host_id`` attribute of a port # PUT /ports/{id} #"update_port:binding:host_id": "rule:admin_only" # Update ``binding:profile`` attribute of a port # PUT /ports/{id} #"update_port:binding:profile": "rule:admin_only" # Update ``binding:vnic_type`` attribute of a port # PUT /ports/{id} #"update_port:binding:vnic_type": "rule:admin_or_owner or rule:context_is_advsvc" # Update ``allowed_address_pairs`` attribute of a port # PUT /ports/{id} #"update_port:allowed_address_pairs": "rule:admin_or_network_owner" # Update ``mac_address`` of ``allowed_address_pairs`` attribute of a # port # PUT /ports/{id} #"update_port:allowed_address_pairs:mac_address": "rule:admin_or_network_owner" # Update ``ip_address`` of ``allowed_address_pairs`` attribute of a # port # PUT /ports/{id} #"update_port:allowed_address_pairs:ip_address": "rule:admin_or_network_owner" # Update ``data_plane_status`` attribute of a port # PUT /ports/{id} #"update_port:data_plane_status": "rule:admin_or_data_plane_int" # Delete a port # DELETE /ports/{id} #"delete_port": "rule:context_is_advsvc or rule:admin_owner_or_network_owner" # Get QoS policies # GET /qos/policies # GET /qos/policies/{id} #"get_policy": "rule:regular_user" # Create a QoS policy # POST /qos/policies #"create_policy": "rule:admin_only" # Update a QoS policy # PUT /qos/policies/{id} #"update_policy": "rule:admin_only" # Delete a QoS policy # DELETE /qos/policies/{id} #"delete_policy": "rule:admin_only" # Get available QoS rule types # GET /qos/rule-types # GET /qos/rule-types/{rule_type} #"get_rule_type": "rule:regular_user" # Get a QoS bandwidth limit rule # GET /qos/policies/{policy_id}/bandwidth_limit_rules # GET /qos/policies/{policy_id}/bandwidth_limit_rules/{rule_id} #"get_policy_bandwidth_limit_rule": "rule:regular_user" # Create a QoS bandwidth limit rule # POST /qos/policies/{policy_id}/bandwidth_limit_rules #"create_policy_bandwidth_limit_rule": "rule:admin_only" # Update a QoS bandwidth limit rule # PUT /qos/policies/{policy_id}/bandwidth_limit_rules/{rule_id} #"update_policy_bandwidth_limit_rule": "rule:admin_only" # Delete a QoS bandwidth limit rule # DELETE /qos/policies/{policy_id}/bandwidth_limit_rules/{rule_id} #"delete_policy_bandwidth_limit_rule": "rule:admin_only" # Get a QoS DSCP marking rule # GET /qos/policies/{policy_id}/dscp_marking_rules # GET /qos/policies/{policy_id}/dscp_marking_rules/{rule_id} #"get_policy_dscp_marking_rule": "rule:regular_user" # Create a QoS DSCP marking rule # POST /qos/policies/{policy_id}/dscp_marking_rules #"create_policy_dscp_marking_rule": "rule:admin_only" # Update a QoS DSCP marking rule # PUT /qos/policies/{policy_id}/dscp_marking_rules/{rule_id} #"update_policy_dscp_marking_rule": "rule:admin_only" # Delete a QoS DSCP marking rule # DELETE /qos/policies/{policy_id}/dscp_marking_rules/{rule_id} #"delete_policy_dscp_marking_rule": "rule:admin_only" # Get a QoS minimum bandwidth rule # GET /qos/policies/{policy_id}/minimum_bandwidth_rules # GET /qos/policies/{policy_id}/minimum_bandwidth_rules/{rule_id} #"get_policy_minimum_bandwidth_rule": "rule:regular_user" # Create a QoS minimum bandwidth rule # POST /qos/policies/{policy_id}/minimum_bandwidth_rules #"create_policy_minimum_bandwidth_rule": "rule:admin_only" # Update a QoS minimum bandwidth rule # PUT /qos/policies/{policy_id}/minimum_bandwidth_rules/{rule_id} #"update_policy_minimum_bandwidth_rule": "rule:admin_only" # Delete a QoS minimum bandwidth rule # DELETE /qos/policies/{policy_id}/minimum_bandwidth_rules/{rule_id} #"delete_policy_minimum_bandwidth_rule": "rule:admin_only" # Get a QoS bandwidth limit rule through alias # GET /qos/alias_bandwidth_limit_rules/{rule_id}/ #"get_alias_bandwidth_limit_rule": "rule:get_policy_bandwidth_limit_rule" # Update a QoS bandwidth limit rule through alias # PUT /qos/alias_bandwidth_limit_rules/{rule_id}/ #"update_alias_bandwidth_limit_rule": "rule:update_policy_bandwidth_limit_rule" # Delete a QoS bandwidth limit rule through alias # DELETE /qos/alias_bandwidth_limit_rules/{rule_id}/ #"delete_alias_bandwidth_limit_rule": "rule:delete_policy_bandwidth_limit_rule" # Get a QoS DSCP marking rule through alias # GET /qos/alias_dscp_marking_rules/{rule_id}/ #"get_alias_dscp_marking_rule": "rule:get_policy_dscp_marking_rule" # Update a QoS DSCP marking rule through alias # PUT /qos/alias_dscp_marking_rules/{rule_id}/ #"update_alias_dscp_marking_rule": "rule:update_policy_dscp_marking_rule" # Delete a QoS DSCP marking rule through alias # DELETE /qos/alias_dscp_marking_rules/{rule_id}/ #"delete_alias_dscp_marking_rule": "rule:delete_policy_dscp_marking_rule" # Get a QoS minimum bandwidth rule through alias # GET /qos/alias_minimum_bandwidth_rules/{rule_id}/ #"get_alias_minimum_bandwidth_rule": "rule:get_policy_minimum_bandwidth_rule" # Update a QoS minimum bandwidth rule through alias # PUT /qos/alias_minimum_bandwidth_rules/{rule_id}/ #"update_alias_minimum_bandwidth_rule": "rule:update_policy_minimum_bandwidth_rule" # Delete a QoS minimum bandwidth rule through alias # DELETE /qos/alias_minimum_bandwidth_rules/{rule_id}/ #"delete_alias_minimum_bandwidth_rule": "rule:delete_policy_minimum_bandwidth_rule" # Get a resource quota # GET /quota # GET /quota/{id} #"get_quota": "rule:admin_only" # Update a resource quota # PUT /quota/{id} #"update_quota": "rule:admin_only" # Delete a resource quota # DELETE /quota/{id} #"delete_quota": "rule:admin_only" # Definition of a wildcard target_tenant #"restrict_wildcard": "(not field:rbac_policy:target_tenant=*) or rule:admin_only" # Create an RBAC policy # POST /rbac-policies #"create_rbac_policy": "rule:regular_user" # Specify ``target_tenant`` when creating an RBAC policy # POST /rbac-policies #"create_rbac_policy:target_tenant": "rule:restrict_wildcard" # Update an RBAC policy # PUT /rbac-policies/{id} #"update_rbac_policy": "rule:admin_or_owner" # Update ``target_tenant`` attribute of an RBAC policy # PUT /rbac-policies/{id} #"update_rbac_policy:target_tenant": "rule:restrict_wildcard and rule:admin_or_owner" # Get an RBAC policy # GET /rbac-policies # GET /rbac-policies/{id} #"get_rbac_policy": "rule:admin_or_owner" # Delete an RBAC policy # DELETE /rbac-policies/{id} #"delete_rbac_policy": "rule:admin_or_owner" # Create a router # POST /routers #"create_router": "rule:regular_user" # Specify ``distributed`` attribute when creating a router # POST /routers #"create_router:distributed": "rule:admin_only" # Specify ``ha`` attribute when creating a router # POST /routers #"create_router:ha": "rule:admin_only" # Specify ``external_gateway_info`` information when creating a router # POST /routers #"create_router:external_gateway_info": "rule:admin_or_owner" # Specify ``network_id`` in ``external_gateway_info`` information when # creating a router # POST /routers #"create_router:external_gateway_info:network_id": "rule:admin_or_owner" # Specify ``enable_snat`` in ``external_gateway_info`` information # when creating a router # POST /routers #"create_router:external_gateway_info:enable_snat": "rule:admin_only" # Specify ``external_fixed_ips`` in ``external_gateway_info`` # information when creating a router # POST /routers #"create_router:external_gateway_info:external_fixed_ips": "rule:admin_only" # Get a router # GET /routers # GET /routers/{id} #"get_router": "rule:admin_or_owner" # Get ``distributed`` attribute of a router # GET /routers # GET /routers/{id} #"get_router:distributed": "rule:admin_only" # Get ``ha`` attribute of a router # GET /routers # GET /routers/{id} #"get_router:ha": "rule:admin_only" # Update a router # PUT /routers/{id} #"update_router": "rule:admin_or_owner" # Update ``distributed`` attribute of a router # PUT /routers/{id} #"update_router:distributed": "rule:admin_only" # Update ``ha`` attribute of a router # PUT /routers/{id} #"update_router:ha": "rule:admin_only" # Update ``external_gateway_info`` information of a router # PUT /routers/{id} #"update_router:external_gateway_info": "rule:admin_or_owner" # Update ``network_id`` attribute of ``external_gateway_info`` # information of a router # PUT /routers/{id} #"update_router:external_gateway_info:network_id": "rule:admin_or_owner" # Update ``enable_snat`` attribute of ``external_gateway_info`` # information of a router # PUT /routers/{id} #"update_router:external_gateway_info:enable_snat": "rule:admin_only" # Update ``external_fixed_ips`` attribute of ``external_gateway_info`` # information of a router # PUT /routers/{id} #"update_router:external_gateway_info:external_fixed_ips": "rule:admin_only" # Delete a router # DELETE /routers/{id} #"delete_router": "rule:admin_or_owner" # Add an interface to a router # PUT /routers/{id}/add_router_interface #"add_router_interface": "rule:admin_or_owner" # Remove an interface from a router # PUT /routers/{id}/remove_router_interface #"remove_router_interface": "rule:admin_or_owner" # Rule for admin or security group owner access #"admin_or_sg_owner": "rule:context_is_admin or tenant_id:%(security_group:tenant_id)s" # Rule for resource owner, admin or security group owner access #"admin_owner_or_sg_owner": "rule:owner or rule:admin_or_sg_owner" # Create a security group # POST /security-groups #"create_security_group": "rule:admin_or_owner" # Get a security group # GET /security-groups # GET /security-groups/{id} #"get_security_group": "rule:regular_user" # Update a security group # PUT /security-groups/{id} #"update_security_group": "rule:admin_or_owner" # Delete a security group # DELETE /security-groups/{id} #"delete_security_group": "rule:admin_or_owner" # Create a security group rule # POST /security-group-rules #"create_security_group_rule": "rule:admin_or_owner" # Get a security group rule # GET /security-group-rules # GET /security-group-rules/{id} #"get_security_group_rule": "rule:admin_owner_or_sg_owner" # Delete a security group rule # DELETE /security-group-rules/{id} #"delete_security_group_rule": "rule:admin_or_owner" # Create a segment # POST /segments #"create_segment": "rule:admin_only" # Get a segment # GET /segments # GET /segments/{id} #"get_segment": "rule:admin_only" # Update a segment # PUT /segments/{id} #"update_segment": "rule:admin_only" # Delete a segment # DELETE /segments/{id} #"delete_segment": "rule:admin_only" # Get service providers # GET /service-providers #"get_service_provider": "rule:regular_user" # Create a subnet # POST /subnets #"create_subnet": "rule:admin_or_network_owner" # Specify ``segment_id`` attribute when creating a subnet # POST /subnets #"create_subnet:segment_id": "rule:admin_only" # Specify ``service_types`` attribute when creating a subnet # POST /subnets #"create_subnet:service_types": "rule:admin_only" # Get a subnet # GET /subnets # GET /subnets/{id} #"get_subnet": "rule:admin_or_owner or rule:shared" # Get ``segment_id`` attribute of a subnet # GET /subnets # GET /subnets/{id} #"get_subnet:segment_id": "rule:admin_only" # Update a subnet # PUT /subnets/{id} #"update_subnet": "rule:admin_or_network_owner" # Update ``segment_id`` attribute of a subnet # PUT /subnets/{id} #"update_subnet:segment_id": "rule:admin_only" # Update ``service_types`` attribute of a subnet # PUT /subnets/{id} #"update_subnet:service_types": "rule:admin_only" # Delete a subnet # DELETE /subnets/{id} #"delete_subnet": "rule:admin_or_network_owner" # Definition of a shared subnetpool #"shared_subnetpools": "field:subnetpools:shared=True" # Create a subnetpool # POST /subnetpools #"create_subnetpool": "rule:regular_user" # Create a shared subnetpool # POST /subnetpools #"create_subnetpool:shared": "rule:admin_only" # Specify ``is_default`` attribute when creating a subnetpool # POST /subnetpools #"create_subnetpool:is_default": "rule:admin_only" # Get a subnetpool # GET /subnetpools # GET /subnetpools/{id} #"get_subnetpool": "rule:admin_or_owner or rule:shared_subnetpools" # Update a subnetpool # PUT /subnetpools/{id} #"update_subnetpool": "rule:admin_or_owner" # Update ``is_default`` attribute of a subnetpool # PUT /subnetpools/{id} #"update_subnetpool:is_default": "rule:admin_only" # Delete a subnetpool # DELETE /subnetpools/{id} #"delete_subnetpool": "rule:admin_or_owner" # Onboard existing subnet into a subnetpool # Put /subnetpools/{id}/onboard_network_subnets #"onboard_network_subnets": "rule:admin_or_owner" # Add prefixes to a subnetpool # Put /subnetpools/{id}/add_prefixes #"add_prefixes": "rule:admin_or_owner" # Remove unallocated prefixes from a subnetpool # Put /subnetpools/{id}/remove_prefixes #"remove_prefixes": "rule:admin_or_owner" # Create a trunk # POST /trunks #"create_trunk": "rule:regular_user" # Get a trunk # GET /trunks # GET /trunks/{id} #"get_trunk": "rule:admin_or_owner" # Update a trunk # PUT /trunks/{id} #"update_trunk": "rule:admin_or_owner" # Delete a trunk # DELETE /trunks/{id} #"delete_trunk": "rule:admin_or_owner" # List subports attached to a trunk # GET /trunks/{id}/get_subports #"get_subports": "rule:regular_user" # Add subports to a trunk # PUT /trunks/{id}/add_subports #"add_subports": "rule:admin_or_owner" # Delete subports from a trunk # PUT /trunks/{id}/remove_subports #"remove_subports": "rule:admin_or_owner"