 # variables in header

# variables in path
address_group_id-path:
  description: |
    The ID of the address group.
  in: path
  required: true
  type: string
address_scope_id-path:
  description: |
    The ID of the address scope.
  in: path
  required: true
  type: string
agent_id-path:
  description: |
    The ID of the agent.
  in: path
  required: true
  type: string
bgp_dragent_id-path:
  description: |
    The ID of the dynamic routing agent.
  in: path
  required: true
  type: string
bgp_speaker_id-path:
  description: |
      The ID of the BGP Speaker.
  in: path
  required: true
  type: string
bgpvpn-id-path:
  description: |
      The ID of the BGP VPN.
  in: path
  required: true
  type: string
bgpvpn-network_association_id-path:
  description: |
      The ID of an association between a network and a BGP VPN.
  in: path
  required: true
  type: string
bgpvpn-port_association_id-path:
  description: |
      The ID of an association between a port and a BGP VPN.
  in: path
  required: true
  type: string
bgpvpn-router_association_id-path:
  description: |
      The ID of an association between a router and a BGP VPN.
  in: path
  required: true
  type: string
connection_id-path:
  description: |
    The ID of the IPsec site-to-site connection.
  in: path
  required: true
  type: string
conntrack_helper_id-path:
  description: |
    The ID of the conntrack helper.
  in: path
  required: true
  type: string
default_security_group_rule-id-path:
  description: |
    The ID of the security group default rule.
  in: path
  required: true
  type: string
dscp_rule_id:
  description: |
    The ID of the DSCP rule.
  in: path
  required: true
  type: string
endpoint_group_id-path:
  description: |
    The ID of the VPN endpoint group.
  in: path
  required: true
  type: string
extensions-alias-path:
  description: |
    The alias of an extension.
  in: path
  required: true
  type: string
fip_port_forwarding_id-path:
  description: |
    The ID of the floating IP port forwarding.
  in: path
  required: true
  type: string
firewall_group_id-path-required:
  description: |
    The ID of the firewall group.
  in: path
  required: true
  type: string
firewall_id:
  description: |
    The ID of the firewall.
  in: path
  required: true
  type: string
firewall_log_id:
  description: |
    The ID of the firewall log resource.
  in: path
  required: true
  type: string
firewall_policy_id-path:
  description: |
    The ID of the firewall policy.
  in: path
  required: true
  type: string
firewall_policy_id-path-required:
  description: |
    The ID of the firewall policy.
  in: path
  required: true
  type: string
firewall_rule_id:
  description: |
    The ID for the firewall rule.
  in: path
  required: true
  type: string
firewall_rule_id-path-required:
  description: |
    The ID for the firewall rule.
  in: path
  required: true
  type: string
flavor_id:
  description: |
    The UUID of the flavor.
  in: path
  required: true
  type: string
floatingip-id-path:
  description: |
    The ID of the floating IP address.
  in: path
  required: true
  type: string
ikepolicy_id-path:
  description: |
    The ID of the IKE policy.
  in: path
  required: true
  type: string
ipsecpolicy_id-path:
  description: |
    The ID of the IPsec policy.
  in: path
  required: true
  type: string
local_ip-id-path:
  description: |
    The ID of the Local IP
  in: path
  required: true
  type: string
local_ip_association-fixed_port_id-path:
  description: |
    The ID of the port associated with the Local IP.
  in: path
  required: true
  type: string
log_id-path:
  description: |
    The ID of the log resource.
  in: path
  required: true
  type: string
logging_resource_id:
  description: |
    The ID of the logging resource.
  in: path
  required: true
  type: string
metering_label-id-path:
  description: |
    The ID of the metering label.
  in: path
  required: true
  type: string
metering_label_rule-id-path:
  description: |
    The ID of the metering label rule.
  in: path
  required: true
  type: string
ndp_proxy_id-path:
  description: |
    The ID of the ndp proxy.
  in: path
  required: true
  type: string
network_id-path:
  description: |
    The ID of the network.
  in: path
  required: true
  type: string
network_segment_range_id-path:
  description: |
    The ID of the network segment range.
  in: path
  required: true
  type: string
port_id-path:
  description: |
    The ID of the port.
  in: path
  required: true
  type: string
profile_id:
  description: |
    The UUID of the service profile.
  in: path
  required: true
  type: string
project_id-path:
  description: |
    The ID of the project.
  in: path
  required: true
  type: string
qos-policy-id-path:
  description: |
    The ID of the QoS policy.
  in: path
  required: true
  type: string
qos-rule_id:
  description: |
    The ID of the QoS rule.
  in: path
  required: true
  type: string
qos-rule_type:
  description: |
    The name of the QoS rule type. It should be one of the types
    returned by the List QoS rule types API, for example
    ``bandwidth_limit`` or ``dscp_marking``.
  in: path
  required: true
  type: string
rbac_policy_id-path:
  description: |
    The ID of the RBAC policy.
  in: path
  required: true
  type: string
resource_id:
  description: |
    The ID of resource which the tag is set on.
  in: path
  required: true
  type: string
resource_type:
  description: |
    The type of resource which the tag is set on.
  in: path
  required: true
  type: string
router_id:
  description: |
    The ID of the router.
  in: path
  required: true
  type: string
router_name:
  description: |
    The name of the router.
  in: path
  required: true
  type: string
security_group-id-path:
  description: |
    The ID of the security group.
  in: path
  required: true
  type: string
security_group_rule-id-path:
  description: |
    The ID of the security group rule.
  in: path
  required: true
  type: string
segment_id-path:
  description: |
    The UUID of the segment.
  in: path
  required: true
  type: string
subnet_id-path:
  description: |
    The ID of the subnet.
  in: path
  required: true
  type: string
subnetpool_id:
  description: |
    The UUID of the subnet pool.
  in: path
  required: true
  type: string
tag:
  description: |
    The name for the tag.
  in: path
  required: true
  type: string
trunk_id:
  description: |
    The ID of the trunk.
  in: path
  required: true
  type: string
vpnservice_id-path:
  description: |
    The ID of the VPN service.
  in: path
  required: true
  type: string
# variables in query
address_group-sort_key:
  description: |
    Sorts by an address group attribute. You can specify multiple pairs of sort
    key and sort direction query parameters. The sort keys are limited to:

    - ``id``
    - ``name``
    - ``project_id``
    - ``shared``
    - ``tenant_id``
  in: query
  required: false
  type: string
address_scope-sort_key:
  description: |
    Sorts by an address scope attribute. You can specify multiple pairs of sort
    key and sort direction query parameters. The sort keys are limited to:

    - ``id``
    - ``ip_version``
    - ``name``
    - ``project_id``
    - ``shared``
    - ``tenant_id``
  in: query
  required: false
  type: string
address_scope_id-query:
  description: |
    Filter the subnet pool list result by the address scope that is assigned
    to the subnet pool.
  in: query
  required: false
  type: string
admin_state_up-query:
  description: |
    Filter the list result by the administrative state of the resource,
    which is up (``true``) or down (``false``).
  in: query
  required: false
  type: boolean
admin_state_up_trunk-query:
  description: |
    Filter the trunk list result by the administrative state of the trunk,
    which is up (``true``) or down (``false``).
  in: query
  required: false
  type: boolean
agent-sort_key:
  description: |
    Sorts by agent attributes. You can specify multiple pairs of sort key
    and sort direction query parameters. The sort keys are limited to:

    - ``admin_state_up``
    - ``agent_type``
    - ``alive``
    - ``binary``
    - ``created_at``
    - ``description``
    - ``heartbeat_timestamp``
    - ``host``
    - ``id``
    - ``started_at``
    - ``topic``
  in: query
  required: false
  type: string
agent_type-query:
  description: |
    Filter the list result by the type of agent such as ``Open vSwitch agent``
    or ``DHCP agent``.
  in: query
  required: false
  type: string
alive-query:
  description: |
    Filter the list result based on whether the agent is alive and running.
  in: query
  required: false
  type: boolean
availability_zone-query:
  description: |
    Filter the list result by the availability zone of the agent.
  in: query
  required: false
  type: string
binary-query:
  description: |
    Filter the list result by the executable command used to start the agent
    such as ``neutron-openvswitch-agent`` or ``neutron-dhcp-agent``.
  in: query
  required: false
  type: string
binding:host_id-query:
  description: |
    Filter the port list result by the ID of the host where the port resides.
  in: query
  required: false
  type: string
cidr-query:
  description: |
    Filter the subnet list result by the CIDR of the subnet.
  in: query
  required: false
  type: string
conntrack_helper-sort_key:
  description: |
    Sorts by a conntrack helper ID attribute. You can specify multiple pairs of
    sort key and sort direction query parameters. The sort keys are limited to:

    - ``id``
    - ``helper``
    - ``port``
    - ``protocol``
  in: query
  required: false
  type: string
conntrack_helper_helper-query:
  description: |
    Filter the list result by the used helper.
  in: query
  required: false
  type: string
conntrack_helper_port-query:
  description: |
    Filter the list result by the used port.
  in: query
  required: false
  type: integer
conntrack_helper_protocol-query:
  description: |
    Filter the list result by the used protocol.
  in: query
  required: false
  type: string
default_prefixlen-query:
  description: |
    Filter the subnet pool list result by the size of the prefix to allocate
    when the ``cidr`` or ``prefixlen`` attributes are omitted when you create
    the subnet. Default is ``min_prefixlen``.
  in: query
  required: false
  type: integer
default_quota-query:
  description: |
    Filter the subnet pool list result by the quota on the prefix space
    that can be allocated from the subnet pool for project subnets.
  in: query
  required: false
  type: integer
description-query:
  description: |
    Filter the list result by the human-readable description of the resource.
  in: query
  required: false
  type: string
description_taf-query:
  description: |
    Filter the list result by the human-readable description of the resource.
  in: query
  required: false
  type: string
description_tas-query:
  description: |
    Filter the list result by the human-readable description of the resource.
  in: query
  required: false
  type: string
device_id-query:
  description: |
    Filter the port list result by the ID of the device that uses this port.
    For example, a server instance or a logical router.
  in: query
  required: false
  type: string
device_owner-query:
  description: |
    Filter the port result list by the entity type that uses this port.
    For example, ``compute:nova`` (server instance), ``network:dhcp``
    (DHCP agent) or ``network:router_interface`` (router interface).
  in: query
  required: false
  type: string
direction-query:
  description: |
    Filter the security group rule list result by the direction in which
    the security group rule is applied, which is ``ingress`` or ``egress``.
  in: query
  required: false
  type: string
direction_taf-query:
  description: |
    Direction of the Tap flow. Possible options are: IN, OUT, BOTH
  in: query
  required: false
  type: string
dscp_mark-query:
  description: |
    Filter the list result by the DSCP mark value.
  in: query
  required: false
  type: integer
ethertype-query:
  description: |
    Filter the security group rule list result by the ethertype of
    network traffic. The value must be ``IPv4`` or ``IPv6``.
  in: query
  required: false
  type: string
excluded-query:
  description: |
    Filter the metering rule list result based on whether the metering
    rule exclude the traffic of a specific IP address with the
    ``remote_ip_prefix`` value.
  in: query
  required: false
  type: boolean
external_port-query:
  description: |
    Filter the list result by the TCP/UDP/other protocol port number of the
    floating IP.
  in: query
  required: false
  type: integer
external_port_range-query:
  description: |
    Filter the list result by the TCP/UDP/other protocol port range of the
    floating IP.
  in: query
  required: false
  type: string
fields:
  description: |
    The fields that you want the server to return.
    If no ``fields`` query parameter is specified,
    the networking API returns all attributes allowed by the policy settings.
    By using ``fields`` parameter, the API returns only the requested set of
    attributes. ``fields`` parameter can be specified multiple times.
    For example, if you specify ``fields=id&fields=name`` in the request URL,
    only ``id`` and ``name`` attributes will be returned.
  in: query
  required: false
  type: string
fip_port_forwarding-sort_key:
  description: |
    Sorts by a floating IP port forwarding attribute. You can specify multiple
    pairs of sort key and sort direction query parameters. The sort keys are
    limited to:

    - ``id``
    - ``internal_port_id``
    - ``external_port``
    - ``external_port_range``
    - ``protocol``
  in: query
  required: false
  type: string
fip_port_forwarding_protocol-query:
  description: |
    Filter the list result by the used protocol.
  in: query
  required: false
  type: string
fixed_ips-query:
  description: |
    Filter the port list result by the IP addresses for the port.
    This field has one or multiple entries.
    Each entry consists of IP address (``ip_address``), IP address substring
    (``ip_address_substr``) and/or the subnet ID from which
    the IP address is assigned (``subnet_id``).
  in: query
  required: false
  type: array
flavor-enabled-query:
  description: |
    Filter the flavor list result based on whether the flavor is enabled or
    not.
  in: query
  required: false
  type: boolean
flavor-service_type-query:
  description: |
    Filter the flavor list result by the type of the flavor.
  in: query
  required: false
  type: string
flavor-sort_key:
  description: |
    Sorts by a flavor attribute. You can specify multiple pairs of sort key
    and sort direction query parameters. The sort keys are limited to:

    - ``description``
    - ``enabled``
    - ``id``
    - ``name``
    - ``service_type``
  in: query
  required: false
  type: string
floating_ip_address-query:
  description: |
    Filter the floating IP list result by the floating IP address.
  in: query
  required: false
  type: string
floating_network_id-query:
  description: |
    Filter the floating IP list result by the ID of the network associated
    with the floating IP.
  in: query
  required: false
  type: string
floatingip-fixed_ip_address-query:
  description: |
    Filter the floating IP list result by the fixed IP address that
    is associated with the floating IP address.
  in: query
  required: false
  type: string
floatingip-port_id-query:
  description: |
    Filter the floating IP list result by the ID of a port associated with
    the floating IP.
  in: query
  required: false
  type: string
floatingip-router_id-query:
  description: |
    Filter the floating IP list result by the ID of the router for the
    floating IP.
  in: query
  required: false
  type: string
floatingip-sort_key:
  description: |
    Sorts by a floatingip attribute. You can specify multiple pairs of sort key
    and sort direction query parameters. The sort keys are limited to:

    - ``fixed_ip_address``
    - ``floating_ip_address``
    - ``floating_network_id``
    - ``id``
    - ``router_id``
    - ``status``
    - ``tenant_id``
    - ``project_id``
  in: query
  required: false
  type: string
floatingip-status-query:
  description: |
    Filter the floating IP list result by the status of the floating IP.
    Values are ``ACTIVE``, ``DOWN`` and ``ERROR``.
  in: query
  required: false
  type: string
host-query:
  description: |
    Filter the list result by the hostname of the system the agent is running
    on.
  in: query
  required: false
  type: string
id-query:
  description: |
    Filter the list result by the ID of the resource.
  in: query
  required: false
  type: string
internal_port_id-query:
  description: |
    Filter the list result by the ID of the internal Neutron port.
  in: query
  required: false
  type: string
ip_allocation-query:
  description: |
    Filter the port list result based on if the ports use ``deferred``,
    ``immediate`` or no IP allocation (``none``).
  in: query
  required: false
  type: string
ip_version-query:
  description: |
    Filter the list result by the IP protocol version.
    Valid value is ``4`` or ``6``.
  in: query
  required: false
  type: integer
local_ip-id-query:
  description: |
    Filter the Local IP list result by ID of Local IP
  in: query
  required: false
  type: string
local_ip-ip_mode-query:
  description: |
    Filter the Local IP list result by IP mode.
    Possible values are ``translate`` (DNAT) and ``passthrough`` (no DNAT)
  in: query
  required: false
  type: string
local_ip-local_port_id-query:
  description: |
    Filter the Local IP list result by ID of underlying Neutron port
  in: query
  required: false
  type: string
local_ip-sort_key:
  description: |
    Sorts by a Local IP attribute. You can specify multiple pairs of sort
    key and sort direction query parameters. The sort keys are limited to:

    - ``id``
    - ``name``
    - ``description``
    - ``project_id``
    - ``local_port_id``
    - ``network_id``
    - ``local_ip_address``
    - ``ip_mode``
  in: query
  required: false
  type: string
local_ip_address-query:
  description: |
    Filter the Local IP list result by IP address
  in: query
  required: false
  type: string
local_ip_association-fixed_ip-query:
  description: |
    Filter the Local IP Association list result by IP of associated ports
  in: query
  required: false
  type: string
local_ip_association-fixed_port_id-query:
  description: |
    Filter the Local IP Association list result by ID of associated ports
  in: query
  required: false
  type: string
local_ip_association-host-query:
  description: |
    Filter the Local IP Association list result by host of associated ports
  in: query
  required: false
  type: string
local_ip_association-sort_key:
  description: |
    Sorts by a Local IP Association attribute. You can specify multiple pairs
    of sort key and sort direction query parameters.
    The sort keys are limited to:

    - ``local_ip_id``
    - ``fixed_port_id``
    - ``fixed_ip``
    - ``host``
  in: query
  required: false
  type: string
log-sort_key:
  description: |
    Sorts by a log attribute. You can specify multiple pairs of sort key
    and sort direction query parameters. The sort keys are limited to:

    - ``enabled``
    - ``event``
    - ``id``
    - ``name``
    - ``project_id``
    - ``resource_id``
    - ``resource_type``
    - ``target_id``
  in: query
  required: false
  type: string
log_enabled-query:
  description: |
    Filter the log list result based on this log object is enabled (``true``)
    or disabled (``false``).
  in: query
  required: false
  type: boolean
log_event-query:
  description: |
    Filter the log list result by the type of security events,
    which is ``ACCEPT``, ``DROP``, or ``ALL``.
  in: query
  required: false
  type: string
mac_address-query:
  description: |
    Filter the port list result by the MAC address of the port.
  in: query
  required: false
  type: string
mac_learning_enabled-query:
  description: |
    Filter the list result by the mac_learning_enabled state of the resource,
    which is enabled (``true``) or disabled (``false``).
  in: query
  required: false
  type: boolean
max_burst_kbps-query:
  description: |
    Filter the list result by the maximum burst size (in kilobits).
  in: query
  required: false
  type: integer
max_burst_kpps-query:
  description: |
    Filter the list result by the max burst kpps (kilo packets per second) value.
  in: query
  required: false
  type: integer
max_kbps-response-query:
  description: |
    Filter the list result by the maximum KBPS (kilobits per second) value.
  in: query
  required: false
  type: integer
max_kpps-query:
  description: |
    Filter the list result by the max kpps (kilo packets per second) value.
  in: query
  required: false
  type: integer
max_prefixlen-query:
  description: |
    Filter the subnet pool list result by the maximum prefix size that can be
    allocated from the subnet pool.
  in: query
  required: false
  type: integer
metering_label-id-query:
  description: |
    Filter the metering rule list result by the ID of the metering label
    associated with this metering rule.
  in: query
  required: false
  type: string
metering_label-sort_key:
  description: |
    Sorts by a metering label attribute. You can specify multiple pairs of
    sort key and sort direction query parameters. The sort keys are limited to:

    - ``id``
    - ``shared``
    - ``name``
    - ``description``
    - ``tenant_id``
    - ``project_id``
  in: query
  required: false
  type: string
metering_label_rule-destination_ip_prefix-query:
  description: |
    The destination IP prefix that the metering rule is associated with; in
    this context, destination IP prefix represents the destination IP of the
    network packet. Therefore, for an ingress rule, the destination IP is
    the internal IP associated with some OpenStack VM. On the other hand,
    for an egress rule, the destination IP prefix is the IP of some external
    system that an application running inside some OpenStack virtual machine
    is trying to access. Moreover, instead of an IP, one can also use a CIDR
    as the destination IP prefix.
  in: query
  required: false
  type: string
metering_label_rule-direction-query:
  description: |
    Filter the metering rule list result by the direction in
    which the metering rule is applied, which is ``ingress`` or ``egress``.
  in: query
  required: false
  type: string
metering_label_rule-remote_ip_prefix-query:
  description: |
    (deprecated) Filter the metering rule list result by the source IP prefix
    that the metering rule associates with. By source IP prefix, one should
    read the internal/private IPs used in OpenStack.
  in: query
  required: false
  type: string
metering_label_rule-sort_key:
  description: |
    Sorts by a metering label attribute. You can specify multiple pairs of
    sort key and sort direction query parameters. The sort keys are limited to:

    - ``id``
    - ``metering_label_id``
    - ``excluded``
    - ``remote_ip_prefix``
    - ``direction``
  in: query
  required: false
  type: string
metering_label_rule-source_ip_prefix-query:
  description: |
    The source IP prefix that the metering rule is associated with; in this
    context, source IP prefix represents the source IP of the network packet.
    Therefore, for an ingress rule, the source IP is the IP of the system
    accessing something inside OpenStack. On the other hand, for an egress
    rule, the source IP is the internal IP associated with some OpenStack VM.
    Moreover, instead of an IP, one can also use a CIDR as the source IP
    prefix.
  in: query
  required: false
  type: string
min_kbps-query:
  description: |
    Filter the list result by the minimum KBPS (kilobits per second) value
    which should be available for port.
  in: query
  required: false
  type: integer
min_kpps-query:
  description: |
    Filter the list result by the min kpps (kilo packets per second) value.
  in: query
  required: false
  type: integer
min_prefixlen-query:
  description: |
    Filter the subnet pool list result by the smallest prefix that can be
    allocated from a subnet pool.
  in: query
  required: false
  type: integer
mirror_port_tas-query:
  description: |
    Port to which the Tap service is connected.
  in: query
  requried: true
  type: string
mtu-query:
  description: |
    Filter the network list result by the maximum transmission unit (MTU)
    value to address fragmentation. Minimum value is ``68`` for IPv4,
    and ``1280`` for IPv6.
  in: query
  required: false
  type: integer
name-query:
  description: |
    Filter the list result by the human-readable name of the resource.
  in: query
  required: false
  type: string
ndp_proxy-ip-address-query:
  description:
    The IPv6 address which the ``ndp proxy`` annunciate to external network.
  in: query
  required: false
  type: string
ndp_proxy-port-id-query:
  description:
    The ID of the port for the ndp proxy.
  in: query
  required: false
  type: string
ndp_proxy-router-id-query:
  description:
    The ID of the router for the ndp proxy.
  in: query
  required: false
  type: string
ndp_proxy-sort_key:
  description: |
    Sorts by a ndp proxy attribute. You can specify multiple pairs of sort key
    and sort direction query parameters. The sort keys are limited to:

    - ``id``
    - ``name``
    - ``tenant_id``
    - ``project_id``
    - ``router_id``
    - ``port_id``
    - ``ip_address``
  in: query
  required: false
  type: string
network-name-query:
  description: |
    Filter the list result by the human-readable name of the network.
  in: query
  required: false
  type: string
network-shared-query:
  description: |
    Filter the network list result based on if the network is shared across
    all tenants.
  in: query
  required: false
  type: boolean
network-sort_key:
  description: |
    Sorts by a network attribute. You can specify multiple pairs of sort key
    and sort direction query parameters. The sort keys are limited to:

    - ``admin_state_up``
    - ``availability_zone_hints``
    - ``id``
    - ``mtu``
    - ``name``
    - ``status``
    - ``tenant_id``
    - ``project_id``
  in: query
  required: false
  type: string
network-status-query:
  description: |
    Filter the network list result by network status. Values are ``ACTIVE``,
    ``DOWN``, ``BUILD`` or ``ERROR``.
  in: query
  required: false
  type: string
network_id-query:
  description: |
    Filter the list result by the ID of the attached network.
  in: query
  required: false
  type: string
network_ip_availability-network_id-query:
  description: |
    Filter the list result by the ID of the network whose IP availability
    detail is reported.
  in: query
  required: false
  type: string
network_is_default-query:
  description: |
    Filter the network list result based on if the network is default pool
    or not.
  in: query
  required: false
  type: boolean
network_segment_range-name-query:
  description: |
    Filter the network segment range list result based on the name of the
    range.
  in: query
  required: false
  type: string
network_segment_range-network_type-query:
  description: |
    Filter the list result by the type of physical network that this
    network segment range is mapped to. For example, ``vlan``, ``vxlan``, or
    ``gre``. Valid values depend on a networking back-end.
  in: query
  required: false
  type: string
network_segment_range-physical_network-query:
  description: |
    Filter the list result by the physical network where this
    network segment range is implemented.
  in: query
  required: false
  type: string
network_segment_range-sort_key:
  description: |
    Sorts by a network segment range attribute. You can specify multiple pairs
    of sort key and sort direction query parameters. The sort keys are limited
    to:

    - ``id``
    - ``name``
    - ``project_id``
    - ``tenant_id``
  in: query
  required: false
  type: string
network_segment_range_id-query:
  description: |
    Filter the network segment range list result based on the range ID.
  in: query
  required: false
  type: string
not-tags-any-query:
  description: |
    A list of tags to filter the list result by.
    Resources that match any tag in this list will be excluded.
    Tags in query must be separated by comma.
  in: query
  required: false
  type: string
not-tags-query:
  description: |
    A list of tags to filter the list result by.
    Resources that match all tags in this list will be excluded.
    Tags in query must be separated by comma.
  in: query
  required: false
  type: string
object_id-query:
  description: |
    Filter the RBAC policy list result by the ID of the ``object_type``
    resource. An ``object_type`` of ``network`` returns a network ID,
    an ``object_type`` of ``qos-policy`` returns a QoS policy ID,
    an ``object_type`` of ``security-group`` returns a security group ID,
    an `object_type`` of ``address-scope`` returns a address scope ID,
    an ``object_type`` of ``subnetpool`` returns a subnetpool ID,
    an ``object_type`` of ``address-group`` returns an address group ID and
    an ``object_type`` of ``bgpvpn`` returns a bgpvpn ID.
  in: query
  required: false
  type: string
object_type-query:
  description: |
    Filter the RBAC policy list result by the type of the object that the
    RBAC policy affects. Types include ``qos-policy``, ``network``,
    ``security-group``, ``address-scope``, ``subnetpool``, ``address-group`` or
    ``bgpvpn``.
  in: query
  required: false
  type: string
physical_network-query:
  description: |
    Filter the list result by the physical network where this
    network/segment is implemented.
  in: query
  required: false
  type: string
port-sort_key:
  description: |
    Sorts by a port attribute. You can specify multiple pairs of sort key
    and sort direction query parameters. The sort keys are limited to:

    - ``admin_state_up``
    - ``device_id``
    - ``device_owner``
    - ``id``
    - ``ip_allocation``
    - ``mac_address``
    - ``name``
    - ``network_id``
    - ``project_id``
    - ``status``
    - ``tenant_id``
  in: query
  required: false
  type: string
port-status-query:
  description: |
    Filter the port list result by the port status.
    Values are ``ACTIVE``, ``DOWN``, ``BUILD`` and ``ERROR``.
  in: query
  required: false
  type: string
port_range_max-query:
  description: |
    Filter the security group rule list result by the maximum port number
    in the range that is matched by the security group rule.
  in: query
  required: false
  type: integer
port_range_min-query:
  description: |
    Filter the security group rule list result by the minimum port number
    in the range that is matched by the security group rule.
  in: query
  required: false
  type: integer
project-domain_taas:
  description: |
    Domain the project belongs to (name or ID).
    This can be used in case collisions between project names exist.
  in: query
  requried: false
  type: string
project_id-query:
  description: |
    Filter the list result by the ID of the project that owns the resource.
  in: query
  required: false
  type: string
protocol-query:
  description: |
    Filter the security group rule list result by the IP protocol.
  in: query
  required: false
  type: string
provider:network_type-query:
  description: |
    Filter the list result by the type of physical network that this
    network/segment is mapped to. For example, ``flat``, ``vlan``, ``vxlan``,
    or ``gre``. Valid values depend on a networking back-end.
  in: query
  required: false
  type: string
provider:physical_network-query:
  description: |
    Filter the list result by the physical network where
    this network/segment is implemented.
  in: query
  required: false
  type: string
provider:segmentation_id-query:
  description: |
    Filter the list result by the ID of the isolated segment
    on the physical network.
  in: query
  required: false
  type: integer
qos-rule-direction-query:
  description: |
    Filter the list result by the direction of the traffic to which the QoS
    rule is applied. Valid values are ``egress`` and ``ingress``.
  in: query
  required: false
  type: string
qos-rule-minimum-packet-rate-direction-query:
  description: |
    Filter the list result by the direction of the traffic to which the QoS
    minimum packet rule is applied. Valid values are ``any``, ``egress`` and
    ``ingress``.
  in: query
  required: false
  type: string
qos-shared-query:
  description: |
    Filter the QoS policy list result based on whether this policy is shared
    across all projects.
  in: query
  required: false
  type: boolean
qos-sort_key:
  description: |
    Sorts by a QOS policy attribute. You can specify multiple pairs of sort key
    and sort direction query parameters. The sort keys are limited to:

    - ``id``
    - ``name``
    - ``project_id``
    - ``tenant_id``
  in: query
  required: false
  type: string
qos_bandwidth_limit_rule-sort_key:
  description: |
    Sorts by a bandwidth limit rule attribute. You can specify multiple pairs
    of sort key and sort direction query parameters. The sort keys are limited
    to:

    - ``direction``
    - ``id``
    - ``max_burst_kbps``
    - ``max_kbps``
  in: query
  required: false
  type: string
qos_dscp_marking_rule-sort_key:
  description: |
    Sorts by a DSCP marking rule attribute. You can specify multiple pairs of
    sort key and sort direction query parameters. The sort keys are limited to:

    - ``dscp_mark``
    - ``id``
  in: query
  required: false
  type: string
qos_is_default-query:
  description: |
    Filter the QoS policy list result based on whether this policy is the
    default policy.
  in: query
  required: false
  type: boolean
qos_minimum_bandwidth_rule-sort_key:
  description: |
    Sorts by a minimum bandwidth rule attribute. You can specify multiple pairs
    of sort key and sort direction query parameters. The sort keys are limited
    to:

    - ``direction``
    - ``id``
    - ``min_kbps``
  in: query
  required: false
  type: string
qos_minimum_packet_rate_rule-sort_key:
  description: |
    Sorts by a minimum packet rate rule attribute. You can specify multiple
    pairs of sort key and sort direction query parameters. The sort keys are
    limited to:

    - ``direction``
    - ``id``
    - ``min_kpps``
  in: query
  required: false
  type: string
qos_packet_rate_limit_rule-sort_key:
  description: |
    Sorts by a packet rate limit rule attribute. You can specify multiple pairs
    of sort key and sort direction query parameters. The sort keys are limited
    to:

    - ``direction``
    - ``id``
    - ``max_kpps``
    - ``max_burst_kpps``
  in: query
  required: false
  type: string
rbac-sort_key:
  description: |
    Sorts by a RBAC policy attribute. You can specify multiple pairs of sort
    key and sort direction query parameters. The sort keys are limited to:

    - ``action``
    - ``id``
    - ``object_id``
    - ``target_tenant``
    - ``tenant_id``
    - ``project_id``
  in: query
  required: false
  type: string
rbac_action-query:
  description: |
    Filter the RBAC policy list result by the action for the RBAC policy
    which is ``access_as_external`` or ``access_as_shared``.
  in: query
  required: false
  type: string
remote_address_group_id-query:
  description: |
    Filter the security group rule list result by the ID of the remote address
    group that associates with this security group rule.
  in: query
  required: false
  type: string
remote_address_group_id-request:
  description: |
    UUID of the remote address group that associates with the security group
    rule created from this template.
  in: query
  required: false
  type: string
remote_group_id-query:
  description: |
    Filter the security group rule list result by the ID of the remote group
    that associates with this security group rule.
  in: query
  required: false
  type: string
remote_group_id_template-query:
  description: |
    Filter the security group rule list result by the ID of the remote group
    that associates with this security group rule. This field can contains uuid
    of the security group or special word ``PARENT`` which means that in the
    real rule created from this template, uuid of the owner Security Group will
    be put as ``remote_group_id``.
  in: query
  required: false
  type: string
remote_ip_prefix-query:
  description: |
    Filter the list result by the remote IP prefix that is matched by
    this security group rule.
  in: query
  required: false
  type: string
resource-query:
  description: |
    Filter the list result by the resource type of the availability zone.
    The supported resource types are ``network`` and ``router``.
  in: query
  required: false
  type: string
resource_log_id-query:
  description: |
    Filter the log list result by the ID of resource (e.g security group ID).
  in: query
  required: false
  type: string
resource_log_type-query:
  description: |
    Filter the log list result by the resource type such as ``security_group``.
  in: query
  required: false
  type: string
resource_target_log_id-query:
  description: |
    Filter the log list result by the ID of resource that is the
    logging target.
  in: query
  required: false
  type: string
revision_number-query:
  description: |
    Filter the list result by the revision number of the resource.
  in: query
  required: false
  type: integer
router-sort_key:
  description: |
    Sorts by a router attribute. You can specify multiple pairs of sort key
    and sort direction query parameters. The sort keys are limited to:

    - ``admin_state_up``
    - ``flavor_id``
    - ``id``
    - ``name``
    - ``status``
    - ``tenant_id``
    - ``project_id``
  in: query
  required: false
  type: string
router:external-query:
  description: |
    Filter the network list result based on whether the network has an
    external routing facility that's not managed by the networking service.
  in: query
  required: false
  type: boolean
security_group-shared-query:
  description: |
    Filter the security group list result based on if the security group is
    shared to the requestor's project.
  in: query
  required: false
  type: boolean
security_group-sort_key:
  description: |
    Sorts by a security group attribute. You can specify multiple pairs of
    sort key and sort direction query parameters. The sort keys are limited to:

    - ``id``
    - ``name``
    - ``tenant_id``
    - ``project_id``
  in: query
  required: false
  type: string
security_group_rule-security_group_id-query:
  description: |
    Filter the security group rule list result by the ID of the security group
    that associates with this security group rule.
  in: query
  required: false
  type: string
security_group_rule-sort_key:
  description: |
    Sorts by a security group rule attribute. You can specify multiple pairs of
    sort key and sort direction query parameters. The sort keys are limited to:

    - ``direction``
    - ``ethertype``
    - ``id``
    - ``port_range_max``
    - ``port_range_min``
    - ``protocol``
    - ``remote_group_id``
    - ``remote_ip_prefix``
    - ``security_group_id``
    - ``tenant_id``
    - ``project_id``
  in: query
  required: false
  type: string
segment-sort_key:
  description: |
    Sorts by a segment attribute. You can specify multiple pairs of sort key
    and sort direction query parameters. The sort keys are limited to:

    - ``id``
    - ``name``
    - ``network_id``
    - ``network_type``
    - ``physical_network``
    - ``segmentation_id``
    - ``tenant_id``
    - ``project_id``
  in: query
  required: false
  type: string
service_profile-driver-query:
  description: |
    Filter the service profile list result by the driver that this profile
    uses.
  in: query
  required: false
  type: string
service_profile-enabled-query:
  description: |
    Filter the service profile list result based on whether this service
    profile is enabled or not.
  in: query
  required: false
  type: boolean
service_profile-sort_key:
  description: |
    Sorts by a service profile attribute. You can specify multiple pairs of
    sort key and sort direction query parameters. The sort keys are limited to:

    - ``description``
    - ``driver``
    - ``enabled``
    - ``id``
    - ``metainfo``
  in: query
  required: false
  type: string
shared-query:
  description: |
    Admin-only. Filter the list result based on whether the resource is
    shared across all projects.
  in: query
  required: false
  type: boolean
sort_dir:
  description: |
    Sort direction. A valid value is ``asc`` (ascending) or ``desc``
    (descending). You can specify multiple pairs of sort key and
    sort direction query parameters.
  in: query
  required: false
  type: string
source_port_taf-query:
  description: |
    Source port to which the Tap Flow is connected.
  in: query
  requried: true
  type: string
state-query:
  description: |
    Filter the list result by the state of the availability zone, which is
    either ``available`` or ``unavailable``.
  in: query
  required: false
  type: string
status_taf-query:
  description: |
    Human-readable description of the status for tap flow.
  in: query
  required: false
  type: string
status_tas-query:
  description: |
    Human-readable description of the status for tap service.
  in: query
  required: false
  type: string
subnet-dns_publish_fixed_ip-query:
  description: |
    Filter the subnet list result based on if ``dns_publish_fixed_ip`` is
    enabled or disabled for the subnet.
  in: query
  required: false
  type: boolean
subnet-enable_dhcp-query:
  description: |
    Filter the subnet list result based on if DHCP is enabled or disabled
    for the subnet.
  in: query
  required: false
  type: boolean
subnet-gateway_ip-query:
  description: |
    Filter the subnet list result by the gateway IP of this subnet.
  in: query
  required: false
  type: string
subnet-ip_version-query:
  description: |
    Filter the subnet list result by the IP protocol version.
    Value is ``4`` or ``6``.
  in: query
  required: false
  type: integer
subnet-ipv6_address_mode-query:
  description: |
    Filter the subnet list result by the IPv6 address modes specifies
    mechanisms for assigning IP addresses.
    Value is ``slaac``, ``dhcpv6-stateful``, ``dhcpv6-stateless`` or ``null``.
  in: query
  required: false
  type: string
subnet-ipv6_ra_mode-query:
  description: |
    Filter the subnet list result by the IPv6 router advertisement specifies
    whether the networking service should transmit ICMPv6 packets for a subnet.
    Value is ``slaac``, ``dhcpv6-stateful``, ``dhcpv6-stateless`` or ``null``.
  in: query
  required: false
  type: string
subnet-network_id-query:
  description: |
    Filter the subnet list result by the ID of the network to which
    the subnet belongs.
  in: query
  required: false
  type: string
subnet-segment_id-query:
  description: |
    Filter the subnet list result by the ID of a network segment the subnet
    is associated with.
    It is available when ``segment`` extension is enabled.
  in: query
  required: false
  type: string
subnet-sort_key:
  description: |
    Sorts by a subnet attribute. You can specify multiple pairs of sort key
    and sort direction query parameters. The sort keys are limited to:

    - ``cidr``
    - ``enable_dhcp``
    - ``gateway_ip``
    - ``id``
    - ``ip_version``
    - ``ipv6_address_mode``
    - ``ipv6_ra_mode``
    - ``name``
    - ``network_id``
    - ``segment_id``
    - ``subnetpool_id``
    - ``tenant_id``
    - ``project_id``
  in: query
  required: false
  type: string
subnet-subnetpool_id-query:
  description: |
    Filter the subnet list result by the ID of the subnet pool associated
    with the subnet.
  in: query
  required: false
  type: string
subnetpool-sort_key:
  description: |
    Sorts by a subnetpool attribute. You can specify multiple pairs of sort key
    and sort direction query parameters. The sort keys are limited to:

    - ``address_scope_id``
    - ``default_prefixlen``
    - ``default_quota``
    - ``id``
    - ``ip_version``
    - ``is_default``
    - ``max_prefixlen``
    - ``min_prefixlen``
    - ``name``
    - ``shared``
    - ``tenant_id``
    - ``project_id``
  in: query
  required: false
  type: string
subnetpool_is_default-query:
  description: |
    Filter the subnet pool list result based on if it is a default pool or not.
  in: query
  required: false
  type: boolean
taf_id-query:
  description: |
    The ID of the Tap flow.
  in: query
  required: false
  type: string
taf_name-query:
  description: |
    The name of the Tap flow.
  in: query
  required: true
  type: string
tags-any-query:
  description: |
    A list of tags to filter the list result by.
    Resources that match any tag in this list will be returned.
    Tags in query must be separated by comma.
  in: query
  required: false
  type: string
tags-query:
  description: |
    A list of tags to filter the list result by.
    Resources that match all tags in this list will be returned.
    Tags in query must be separated by comma.
  in: query
  required: false
  type: string
tap_service_id-query:
  description: |
    Tap Service to which the Tap Flow belongs.
  in: query
  required: false
  type: string
target_tenant-query:
  description: |
    Filter the RBAC policy list result by the ID of the tenant to which the
    RBAC policy will be enforced.
  in: query
  required: false
  type: string
tas_id-query:
  description: |
    The ID of the Tap Service.
  in: query
  required: false
  type: string
tas_name-query:
  description: |
    The name of the Tap Service.
  in: query
  required: true
  type: string
topic-query:
  description: |
    Filter the list result by the name of AMQP topic the agent is listening on
    such as ``dhcp_agent``.
  in: query
  required: false
  type: string
trunk-sort_key:
  description: |
    Sorts by a trunk attribute. You can specify multiple pairs of sort key
    and sort direction query parameters. The sort keys are limited to:

    - ``admin_state_up``
    - ``id``
    - ``name``
    - ``port_id``
    - ``project_id``
    - ``status``
    - ``tenant_id``
  in: query
  required: false
  type: string
trunk-status-query:
  description: |
    Filter the trunk list result by the status for the trunk. Possible values
    are  ``ACTIVE``, ``DOWN``, ``BUILD``, ``DEGRADED``, and ``ERROR``.
  in: query
  required: false
  type: string
trunk_port_id-query:
  description: |
    Filter the trunk list result by the ID of the parent port.
  in: query
  required: false
  type: string
verbose:
  description: |
    Show detailed information.
  in: query
  required: false
  type: boolean
vlan-filter_taf-query:
  description: |
    VLAN Ids to be mirrored in the form of range string.
  in: query
  required: false
  type: string
vlan_transparent-query:
  description: |
    Filter the network list by the VLAN transparency mode of the network,
    which is VLAN transparent (``true``) or not VLAN transparent (``false``).
  in: query
  required: false
  type: boolean

# variables in body
action:
  description: |
    The action that the API performs on traffic that
    matches the firewall rule.  Valid value is ``allow`` or ``deny``.
    Default is ``deny``.
  in: body
  required: false
  type: string
action-response:
  description: |
    The action that the API performs on traffic that
    matches the firewall rule.  Valid value is ``allow``, ``deny`` or ``reject``.
    Default is ``deny``.
  in: body
  required: true
  type: string
address:
  description: |
    The IP address of the member.
  format: ipv4
  in: body
  required: true
  type: string
address_group:
  description: |
    An ``address group`` object.
  in: body
  required: true
  type: object
address_group_id_body:
  description: |
    The ID of the address group.
  in: body
  required: true
  type: string
address_groups:
  description: |
    A list of ``address group`` objects.
  in: body
  required: true
  type: array
address_scope:
  description: |
    An ``address scope`` object.
  in: body
  required: true
  type: object
address_scope_id:
  description: |
    An address scope to assign to the subnet pool.
  in: body
  required: false
  type: object
address_scope_id_body:
  description: |
    The ID of the address scope.
  in: body
  required: true
  type: string
address_scopes:
  description: |
    A list of ``address scope`` objects.
  in: body
  required: true
  type: array
addresses:
  description: |
    A list of IP addresses.
  in: body
  required: true
  type: array
admin_state_up:
  description: |
    The administrative state of the resource, which is
    up (``true``) or down (``false``).
  in: body
  required: true
  type: boolean
admin_state_up-request:
  description: |
    The administrative state of the resource, which is
    up (``true``) or down (``false``).
    Default is ``true``.
  in: body
  required: false
  type: boolean
admin_state_up_trunk:
  description: |
    The administrative state of the trunk, which
    is up (``true``) or down (``false``).
  in: body
  required: false
  type: boolean
agent:
  description: |
    An ``agent`` object.
  in: body
  required: true
  type: object
  type: string
agent_resources_synced:
  description: |
    The value ``null`` means no resource view synchronization to Placement
    was attempted. ``true`` / ``false`` values signify the success of
    the last synchronization attempt. Therefore the relevant resources
    in Placement can only be considered up to date if this attribute is
    ``true``. This attribute is read-only, it is only supposed to be
    updated internally, but it is readable for debugging purposes. Not all
    agent types track resources via Placement, therefore the value ``null``
    does not necessarily means there is an error in the system.
  in: body
  required: false
  type: boolean
agent_type:
  description: |
    The type of agent such as ``Open vSwitch agent`` or ``DHCP agent``.
  in: body
  required: true
  type: string
agents:
  description: |
    A list of ``agent`` objects.
  in: body
  required: true
  type: array
alias:
  description: |
    The alias for the extension. For example,
    "FOXNSOX", "os- availability-zone", "os-extended-quotas", "os-
    share-unmanage" or "os-used-limits."
  in: body
  required: true
  type: string
alive:
  description: |
    Indicates the agent is alive and running.
  in: body
  required: true
  type: boolean
allowed_address_pairs:
  description: |
    A set of zero or more allowed address pair objects each where address pair
    object contains an ``ip_address`` and ``mac_address``. While the
    ``ip_address`` is required, the ``mac_address`` will be taken from the
    port if not specified. The value of ``ip_address`` can be an IP Address
    or a CIDR (if supported by the underlying extension plugin).
    A server connected to the port can send a packet with source address which
    matches one of the specified allowed address pairs.
  in: body
  required: true
  type: array
allowed_address_pairs-request:
  description: |
    A set of zero or more allowed address pair objects each where address pair
    object contains an ``ip_address`` and ``mac_address``. While the
    ``ip_address`` is required, the ``mac_address`` will be taken from the
    port if not specified. The value of ``ip_address`` can be an IP Address
    or a CIDR (if supported by the underlying extension plugin).
    A server connected to the port can send a packet with source address which
    matches one of the specified allowed address pairs.
  in: body
  required: false
  type: array
audited:
  description: |
    Each time that the firewall policy or its
    associated rules are changed, the API sets this attribute to
    ``false``. To audit the policy, explicitly set this attribute to
    ``true``.
  in: body
  required: true
  type: boolean
auth_algorithm:
  description: |
    The authentication hash algorithm. Valid values
    are ``sha1``, ``sha256``, ``sha384``, ``sha512``.
    The default is ``sha1``.
  in: body
  required: false
  type: string
auth_mode:
  description: |
    The authentication mode. A valid value is
    ``psk``, which is the default.
  in: body
  required: false
  type: string
availability_zone:
  description: |
    The availability zone of the agent.
  in: body
  required: true
  type: string
availability_zone_hints:
  description: |
    The availability zone candidate for the network.
  in: body
  required: true
  type: array
availability_zone_hints-request:
  description: |
    The availability zone candidate for the network.
  in: body
  required: false
  type: array
availability_zones:
  description: |
    The availability zone for the network.
  in: body
  required: true
  type: array
availability_zones-list:
  description: |
    A list of ``availability zone`` objects.
  in: body
  required: true
  type: array
bandwidth_limit_rule:
  description: |
    A ``bandwidth_limit_rule`` object.
  in: body
  required: true
  type: object
bandwidth_limit_rules:
  description: |
    A list of bandwidth limit rules associated with
    the QoS policy.
  in: body
  required: true
  type: array
bgp_peer_auth_type_body:
  description: |
    The authentication type for the BGP Peer, can be ``none`` or ``md5``.
    ``none`` by default.
  in: body
  required: true
  type: object
bgp_peer_body:
  description: |
    A BGP Peer object.
  in: body
  required: true
  type: object
bgp_peer_id_body:
  description: |
    The ID of the BGP Peer.
  in: body
  required: true
  type: string
bgp_peer_ip_body:
  description: |
    The ip address of the Peer.
  in: body
  required: true
  type: string
bgp_peer_name_body:
  description: |
    The user meaningful name of the BGP Peer.
  in: body
  required: true
  type: string
bgp_peer_password_body:
  description: |
    The authentication password for the specified authentication type.
  in: body
  required: true
  type: string
bgp_peer_remote_as_body:
  description: |
    The remote Autonomous System number of the BGP Peer.
  in: body
  required: true
  type: string
bgp_peers:
  description: |
    A list of ``bgp_peer`` objects. Each ``bgp_peer`` object represents
    real BGP infrastructure such as routers, route reflectors and route
    servers.
  in: body
  required: true
  type: array
bgp_speaker-id-body:
  description: |
    The ID of the BGP Speaker.
  in: body
  required: true
  type: string
bgp_speaker-name-body:
  description: |
    The user meaningful name of the BGP Speaker.
  in: body
  required: true
  type: string
bgp_speaker-networks-body:
  description: |
    The ID of the network to which the BGP Speaker is associated.
  in: body
  required: true
  type: string
bgp_speaker_advertise_fip_host_routes-body:
  description: |
    Whether to enable or disable the advertisement of floating ip host
    routes by the BGP Speaker. True by default.
  in: body
  required: true
  type: string
bgp_speaker_advertise_tenant_net-body:
  description: |
    Whether to enable or disable the advertisement of tenant network
    routes by the BGP Speaker. True by default.
  in: body
  required: true
  type: string
bgp_speaker_advertised_routes-body:
  description: |
    A list of routes (cidr-nexthop pairs) advertised by the BGP Speaker.
  in: body
  required: true
  type: array
bgp_speaker_cidr-body:
  description: |
    The cidr of the route advertised by the BGP Speaker.
  in: body
  required: true
  type: string
bgp_speaker_ip_version-body:
  description: |
    The IP version (4 or 6) of the BGP Speaker.
  in: body
  required: true
  type: string
bgp_speaker_local_as_body:
  description: |
    The local Autonomous System number of the BGP Speaker.
  in: body
  required: true
  type: string
bgp_speaker_nexthop-body:
  description: |
    The nexthop of the route advertised by the BGP Speaker.
  in: body
  required: true
  type: string
bgp_speaker_peer_id-body:
  description: |
    The id of the peer.
  in: body
  required: true
  type: string
bgp_speakers:
  description: |
    A list of ``bgp_speaker`` objects. Each ``bgp_speaker`` object acts as a
    route server using BGP routing protocol.
  in: body
  required: true
  type: array
bgpvpn:
  description: |
    A ``bgpvpn`` object represents an MPLS network with which Neutron routers
    and/or networks may be associated
  in: body
  required: true
  type: object
bgpvpn-advertise_extra_routes:
  description: |
      Boolean flag controlling whether or not the routes specified in the
      ``routes`` attribute of the router will be advertised to the BGPVPN.
  in: body
  required: true
  type: boolean
bgpvpn-advertise_extra_routes-request:
  description: |
      Boolean flag controlling whether or not the routes specified in the
      ``routes`` attribute of the router will be advertised to the BGPVPN
      (default: true).
  in: body
  required: false
  type: boolean
bgpvpn-advertise_fixed_ips:
  description: |
      Boolean flag controlling whether or not the fixed IPs of a port will
      be advertised to the BGPVPN.
  in: body
  required: true
  type: boolean
bgpvpn-advertise_fixed_ips-request:
  description: |
      Boolean flag controlling whether or not the fixed IPs of a port will
      be advertised to the BGPVPN (default: true).
  in: body
  required: false
  type: boolean
bgpvpn-export_targets:
  description: |
      Additional Route Targets that will be used for export.
  in: body
  required: false
  type: array
bgpvpn-export_targets-required:
  description: |
      Additional Route Targets that will be used for export.
  in: body
  required: true
  type: array
bgpvpn-id-body:
  description: |
      The ID of the BGP VPN.
  in: body
  required: true
  type: string
bgpvpn-import_targets:
  description: |
      Additional Route Targets that will be imported.
  in: body
  required: false
  type: array
bgpvpn-import_targets-required:
  description: |
      Additional Route Targets that will be imported.
  in: body
  required: true
  type: array
bgpvpn-local_pref:
  description: |
      The default BGP LOCAL_PREF of routes that will be advertised to the
      BGPVPN (unless overridden per-route).
  in: body
  required: true
  type: integer
bgpvpn-local_pref-request:
  description: |
      The default BGP LOCAL_PREF of routes that will be advertised to the
      BGPVPN (unless overridden per-route). Defaults to ``null``.
  in: body
  required: false
  type: integer
bgpvpn-name:
  description: |
      The user meaningful name of the BGP VPN.
  in: body
  required: false
  type: string
bgpvpn-name-required:
  description: |
      The user meaningful name of the BGP VPN.
  in: body
  required: true
  type: string
bgpvpn-network_association:
  description: |
    A ``network_association`` object represents the binding of a BGP VPN
    to a Neutron network.
  in: body
  required: true
  type: object
bgpvpn-network_association_id:
  description: |
      The ID of an association between a network and a BGP VPN.
  in: body
  required: true
  type: string
bgpvpn-network_associations:
  description: |
    A list of ``network_association`` objects which represent bindings
    of MPLS networks to Neutron networks.
  in: body
  required: true
  type: object
bgpvpn-network_id:
  description: |
        The ID of a Neutron network with which to associate the BGP VPN.
  in: body
  required: true
  type: string
bgpvpn-networks:
  description: |
       This read-only list of network IDs reflects the associations defined by
       Network association API resources.
  in: body
  required: false
  type: array
bgpvpn-networks-required:
  description: |
       This read-only list of network IDs reflects the associations defined by
       Network association API resources.
  in: body
  required: true
  type: array
bgpvpn-port_association:
  description: |
    A ``port_association`` object represents the binding of a BGP VPN
    to a Neutron port.
  in: body
  required: true
  type: object
bgpvpn-port_association_id:
  description: |
      The ID of an association between a port and a BGP VPN.
  in: body
  required: true
  type: string
bgpvpn-port_associations:
  description: |
    A list of ``port_association`` objects which represent bindings
    of MPLS networks to Neutron ports.
  in: body
  required: true
  type: array
bgpvpn-port_id:
  description: |
      The ID of a Neutron port with which to associate the BGP VPN.
  in: body
  required: true
  type: string
bgpvpn-ports:
  description: |
      This read-only list of port IDs reflects the associations defined by Port
      association API resources (only present if the ``bgpvpn-routes-control``
      API extension is enabled).
  in: body
  required: true
  type: array
bgpvpn-route_distinguishers:
  description: |
      List of route distinguisher strings. If this parameter is specified, one
      of these RDs will be used to advertise VPN routes.
  in: body
  required: false
  type: array
bgpvpn-route_distinguishers-required:
  description: |
      List of route distinguisher strings. If this parameter is specified, one
      of these RDs will be used to advertise VPN routes.
  in: body
  required: true
  type: array
bgpvpn-route_targets:
  description: |
      Route Targets that will be both imported and used for export.
  in: body
  required: false
  type: array
bgpvpn-route_targets-required:
  description: |
      Route Targets that will be both imported and used for export.
  in: body
  required: true
  type: array
bgpvpn-router_association:
  description: |
    A ``router_association`` object represents the binding of a BGP VPN
    to a Neutron router.
  in: body
  required: true
  type: object
bgpvpn-router_association_id:
  description: |
      The ID of an association between a router and a BGP VPN.
  in: body
  required: true
  type: string
bgpvpn-router_associations:
  description: |
    A list of ``router_association`` objects which represent bindings
    of MPLS networks to Neutron routers.
  in: body
  required: true
  type: object
bgpvpn-router_id:
  description: |
      The ID of a Neutron router with which to associate the BGP VPN.
  in: body
  required: true
  type: string
bgpvpn-routers:
  description: |
      This read-only list of router IDs reflects the associations defined by
      Router association API resources.
  in: body
  required: false
  type: array
bgpvpn-routers-required:
  description: |
      This read-only list of router IDs reflects the associations defined by
      Router association API resources.
  in: body
  required: true
  type: array
bgpvpn-routes:
  description: |
      List of routes, each route being a dict with at least a ``type`` key,
      which can be ``prefix`` or ``bgpvpn``.

      For the ``prefix`` type, the IP prefix (v4 or v6) to advertise
      is specified in the ``prefix`` key.

      For the ``bgpvpn`` type, the ``bgpvpn_id`` key specifies the BGPVPN from
      which routes will be readvertised with the association port as the
      nexthop (any route carrying an RT among ``route_targets`` or
      ``import_targets`` of this BGPVPN, will be re-announced toward the RTs
      of the associated BGPVPN (``export_targets`` + ``route_targets``), with
      their next-hop/label pointing to this port).

      For both types, the ``local_pref`` key can be used to control the
      value of the BGP LOCAL_PREF of the routes that will be advertised.
  in: body
  required: true
  type: array
bgpvpn-routes-request:
  description: |
      List of routes, each route being a dict with at least a ``type`` key,
      which can be ``prefix`` or ``bgpvpn``.

      For the ``prefix`` type, the IP prefix (v4 or v6) to advertise
      is specified in the ``prefix`` key.

      For the ``bgpvpn`` type, the ``bgpvpn_id`` key specifies the BGPVPN from
      which routes will be readvertised with the association port as the
      nexthop (any route carrying an RT among ``route_targets`` or
      ``import_targets`` of this BGPVPN, will be re-announced toward the RTs
      of the associated BGPVPN (``export_targets`` + ``route_targets``), with
      their next-hop/label pointing to this port).

      For both types, the ``local_pref`` key can be used to control the
      value of the BGP LOCAL_PREF of the routes that will be advertised.
  in: body
  required: false
  type: array
bgpvpn-type:
  description: |
      Selection of the type of VPN and the technology behind it. Allowed
      values are ``l2`` or ``l3``. The default is l3. ``l2`` indicates a Layer
      2 (i.e. bridged) attachment and ``l3`` indicates a Layer 3 (i.e.
      routed) attachment.
  in: body
  required: false
  type: string
bgpvpn-type-required:
  description: |
      Selection of the type of VPN and the technology behind it. Allowed
      values are ``l2`` or ``l3``. The default is l3. ``l2`` indicates a Layer
      2 (i.e. bridged) attachment and ``l3`` indicates a Layer 3 (i.e.
      routed) attachment.
  in: body
  required: true
  type: string
bgpvpn-vni:
  description: |
      The globally-assigned VXLAN ``vni`` for the BGP VPN.
  in: body
  required: false
  type: integer
bgpvpn-vni-required:
  description: |
      The globally-assigned VXLAN ``vni`` for the BGP VPN.
  in: body
  required: true
  type: integer
bgpvpns:
  description: |
    A list of ``bgpvpn`` objects. Each ``bgpvpn`` object represents an
    MPLS network with which Neutron routers and/or networks may be associated
  in: body
  required: true
  type: array
binary:
  description: |
    The executable command used to start the agent such as
    ``neutron-openvswitch-agent`` or ``neutron-dhcp-agent``.
  in: body
  required: true
  type: string
binding:host_id:
  description: |
    The ID of the host where the port resides.
  in: body
  required: true
  type: string
binding:host_id-request:
  description: |
    The ID of the host where the port resides.
    The default is an empty string.
  in: body
  required: false
  type: string
binding:profile:
  description: |
    A dictionary that enables the application running on the specific host to
    pass and receive vif port information specific to the networking back-end.
    The networking API does not define a specific format of this field.
    If the update request is null this response field will be {}.
  in: body
  required: true
  type: object
binding:profile-request:
  description: |
    A dictionary that enables the application running on the specific host to
    pass and receive vif port information specific to the networking back-end.
    This field is only meant for machine-machine communication for compute
    services like Nova, Ironic or Zun to pass information to a Neutron
    back-end. It should not be used by multiple services concurrently or by
    cloud end users. The existing counterexamples
    (``capabilities: [switchdev]`` for Open vSwitch hardware offload and
    ``trusted=true`` for Trusted Virtual Functions) are due to be cleaned up.
    The networking API does not define a specific format of this field.
    The default is an empty dictionary.
    If you update it with null then it is treated like {} in the response.
    Since the port-mac-address-override extension the ``device_mac_address``
    field of the binding:profile can be used to provide the MAC address of the
    physical device a direct-physical port is being bound to. If provided, then
    the ``mac_address`` field of the port resource will be updated to the MAC
    from the active binding.
  in: body
  required: false
  type: object
binding:vif_details:
  description: |
    A dictionary which contains additional information on the port.
    Currently the following fields are defined: ``port_filter`` and
    ``ovs_hybrid_plug``.
    ``port_filter`` is a boolean indicating the networking service
    provides port filtering features such as security group and/or
    anti MAC/IP spoofing.
    ``ovs_hybrid_plug`` is a boolean used to inform an API consumer
    like nova that the hybrid plugging strategy for OVS should be used.
  in: body
  required: true
  type: object
binding:vif_type:
  description: |
    The type of which mechanism is used for the port.
    An API consumer like nova can use this to determine an appropriate way to
    attach a device (for example an interface of a virtual server) to the port.
    Available values currently defined includes
    ``ovs``, ``bridge``, ``macvtap``, ``hw_veb``, ``hostdev_physical``,
    ``vhostuser``, ``distributed`` and ``other``.
    There are also special values: ``unbound`` and ``binding_failed``.
    ``unbound`` means the port is
    not bound to a networking back-end. ``binding_failed`` means an error
    that the port failed to be bound to a networking back-end.
  in: body
  required: true
  type: string
binding:vnic_type:
  description: |
    The type of vNIC which this port should be attached to. This is used to
    determine which mechanism driver(s) to be used to bind the port.
    The valid values are ``normal``, ``macvtap``, ``direct``, ``baremetal``,
    ``direct-physical``, ``virtio-forwarder``, ``smart-nic``
    and ``remote-managed``.
    What type of vNIC is actually available depends on deployments.
  in: body
  required: true
  type: string
binding:vnic_type-request:
  description: |
    The type of vNIC which this port should be attached to. This is used to
    determine which mechanism driver(s) to be used to bind the port.
    The valid values are ``normal``, ``macvtap``, ``direct``, ``baremetal``,
    ``direct-physical``, ``virtio-forwarder``, ``smart-nic``
    and ``remote-managed``.
    What type of vNIC is actually available depends on deployments.
    The default is ``normal``.
  in: body
  required: false
  type: string
bindings:
  description: |
    A ``binding`` object.
  in: body
  required: true
  type: object
cidr:
  description: |
    The CIDR of the subnet.
  in: body
  required: true
  type: string
configurations:
  description: |
    An object containing configuration specific key/value pairs; the semantics
    of which are determined by the binary name and type.
  in: body
  required: true
  type: object
connection_id-body-response:
  description: |
    The ID of the IPsec site-to-site connection.
  in: body
  required: false
  type: string
conntrack_helper:
  description: |
    A router ``conntrack helper`` object.
  in: body
  required: true
  type: object
conntrack_helper_helper-body:
  description: |
    The netfilter conntrack helper module.
  in: body
  required: true
  type: string
conntrack_helper_helper-update:
  description: |
    The netfilter conntrack helper module.
  in: body
  required: false
  type: string
conntrack_helper_id-body:
  description: |
    The ID of the conntrack helper.
  in: body
  required: true
  type: string
conntrack_helper_port-body:
  description: |
    The network port for the netfilter conntrack target rule.
  in: body
  required: true
  type: integer
conntrack_helper_port-update:
  description: |
    The network port for the netfilter conntrack target rule.
  in: body
  required: false
  type: integer
conntrack_helper_protocol-body:
  description: |
    The network protocol for the netfilter conntrack target rule.
  in: body
  required: true
  type: string
conntrack_helper_protocol-update:
  description: |
    The network protocol for the netfilter conntrack target rule.
  in: body
  required: false
  type: string
conntrack_helpers:
  description: |
    A list of ``router conntrack helpers`` objects.
  in: body
  required: true
  type: array
created_at_resource:
  description: |
    Time at which the resource has been created (in UTC ISO8601 format).
  in: body
  required: true
  type: string
data_plane_status:
  description: |
    Status of the underlying data plane of a port.
  in: body
  required: true
  type: string
data_plane_status-request:
  description: |
    Status of the underlying data plane of a port.
  in: body
  required: false
  type: string
default:
  description: |
    Defines whether the provider is the default for
    the service type. If this value is ``true``, the provider is the
    default. If this value is ``false``, the provider is not the
    default.
  in: body
  required: true
  type: boolean
default_prefixlen:
  description: |
    The size of the prefix to allocate when the
    ``cidr`` or ``prefixlen`` attributes are omitted when you create
    the subnet. Default is ``min_prefixlen``.
  in: body
  required: false
  type: integer
default_quota:
  description: |
    A per-project quota on the prefix space that can
    be allocated from the subnet pool for project subnets. Default is
    no quota is enforced on allocations from the subnet pool. For IPv4
    subnet pools, ``default_quota`` is measured in units of /32. For
    IPv6 subnet pools, ``default_quota`` is measured units of /64. All
    projects that use the subnet pool have the same prefix quota
    applied.
  in: body
  required: false
  type: integer
default_security_group_rule-id:
  description: |
    The ID of the security group default rule.
  in: body
  required: true
  type: string
description:
  description: |
    A human-readable description for the resource.
  in: body
  required: true
  type: string
description-request:
  description: |
    A human-readable description for the resource.
    Default is an empty string.
  in: body
  required: false
  type: string
description-request-put:
  description: |
    A human-readable description for the resource.
  in: body
  required: false
  type: string
description_resource:
  description: |
    The description for the resource.
  in: body
  required: true
  type: string
description_taf:
  description: |
    The description for this Tap Flow.
  in: body
  required: true
  type: string
description_tas:
  description: |
    The description for this Tap Service.
  in: body
  required: true
  type: string
destination_firewall_group_id-body-optional:
  description: |
    The ID of the remote destination firewall group.
  in: body
  required: false
  type: string
destination_firewall_group_id-body-required:
  description: |
    The ID of the remote destination firewall group.
  in: body
  required: true
  type: string
destination_ip_address:
  description: |
    The destination IPv4 or IPv6 address or CIDR. No
    default.
  in: body
  required: false
  type: string
destination_ip_address-response:
  description: |
    The destination IPv4 or IPv6 address or CIDR. No
    default.
  in: body
  required: true
  type: string
destination_port:
  description: |
    The destination port or port range.  A valid
    value is a port number, as an integer, or a port range, in the
    format of a ``:`` separated range. For a port range, include both
    ends of the range. For example, ``80:90``.
  in: body
  required: false
  type: string
destination_port-response:
  description: |
    The destination port or port range.  A valid
    value is a port number, as an integer, or a port range, in the
    format of a ``:`` separated range. For a port range, include both
    ends of the range. For example, ``80:90``.
  in: body
  required: true
  type: string
device_id:
  description: |
    The ID of the device that uses this port.
    For example, a server instance or a logical router.
  in: body
  required: true
  type: string
device_id-request:
  description: |
    The ID of the device that uses this port.
    For example, a server instance or a logical router.
  in: body
  required: false
  type: string
device_owner:
  description: |
    The entity type that uses this port.
    For example, ``compute:nova`` (server instance), ``network:dhcp``
    (DHCP agent) or ``network:router_interface`` (router interface).
  in: body
  required: true
  type: string
device_owner-request:
  description: |
    The entity type that uses this port.
    For example, ``compute:nova`` (server instance), ``network:dhcp``
    (DHCP agent) or ``network:router_interface`` (router interface).
  in: body
  required: false
  type: string
device_profile:
  description: |
    A port device profile is a reference for Cyborg project and is a named
    set of the user requirements for one or more acceletators.
    https://docs.openstack.org/api-ref/accelerator/#device-profiles
  in: body
  required: False
  type: string
device_profile-request:
  description: |
    A port device profile is a reference for Cyborg project and is a named
    set of the user requirements for one or more acceletators.
    https://docs.openstack.org/api-ref/accelerator/#device-profiles
  in: body
  required: False
  type: string
direction:
  description: |
    Ingress or egress, which is the direction in
    which the security group rule is applied.
  in: body
  required: true
  type: string
direction_taf:
  description: |
    Direction of the Tap flow. Possible options are: IN, OUT, BOTH
  in: body
  required: true
  type: string
dns_assignment:
  description: |
    Data assigned to a port by the Networking internal DNS including the
    ``hostname``, ``ip_address`` and ``fqdn``.
  in: body
  required: true
  type: object
dns_domain:
  description: |
    A valid DNS domain.
  in: body
  required: true
  type: string
dns_domain-request:
  description: |
    A valid DNS domain.
  in: body
  required: false
  type: string
dns_name:
  description: |
    A valid DNS name.
  in: body
  required: true
  type: string
dns_name-request:
  description: |
    A valid DNS name.
  in: body
  required: false
  type: string
dpd:
  description: |
    A dictionary with dead peer detection (DPD)
    protocol controls.
  in: body
  required: false
  type: object
dscp_mark:
  description: |
    The DSCP mark value.
  in: body
  required: false
  type: integer
dscp_mark-response:
  description: |
    The DSCP mark value.
  in: body
  required: true
  type: integer
dscp_marking_rule:
  description: |
    A ``dscp_marking_rule`` object.
  in: body
  required: true
  type: object
dscp_marking_rules:
  description: |
    A list of ``dscp_marking_rule`` objects.
  in: body
  required: true
  type: array
egress_firewall_policy_id-body-optional:
  description: |
    The ID of the egress firewall policy for the firewall group.
  in: body
  required: false
  type: string
egress_firewall_policy_id-body-required:
  description: |
    The ID of the egress firewall policy for the firewall group.
  in: body
  required: true
  type: string
enabled:
  description: |
    Set to ``false`` to disable this rule in the
    firewall policy. Facilitates selectively turning off rules without
    having to disassociate the rule from the firewall policy. Valid
    value is ``true`` or ``false``. Default is ``true``.
  in: body
  required: false
  type: boolean
enabled-body-required:
  description: |
    Indicates whether this resource is enabled or
    disabled.
  in: body
  required: true
  type: boolean
enabled-response:
  description: |
    Set to ``false`` to disable this rule in the
    firewall policy. Facilitates selectively turning off rules without
    having to disassociate the rule from the firewall policy. Valid
    value is ``true`` or ``false``. Default is ``true``.
  in: body
  required: true
  type: boolean
encapsulation_mode:
  description: |
    The encapsulation mode. A valid value is
    ``tunnel`` or ``transport``. Default is ``tunnel``.
  in: body
  required: false
  type: string
encryption_algorithm:
  description: |
    The encryption algorithm. A valid value is
    ``3des``, ``aes-128``, ``aes-192``, ``aes-256``, and so on.
    Default is ``aes-128``.
  in: body
  required: false
  type: string
endpoint_group_id-body-response:
  description: |
    The ID of the VPN endpoint group.
  in: body
  required: true
  type: string
endpoints:
  description: |
    List of endpoints of the same type, for the
    endpoint group. The values will depend on type.
  in: body
  required: true
  type: array
ethertype:
  description: |
    Must be IPv4 or IPv6, and addresses represented
    in CIDR must match the ingress or egress rules.
  in: body
  required: true
  type: string
ethertype-request:
  description: |
    Must be IPv4 or IPv6, and addresses represented
    in CIDR must match the ingress or egress rules.
  in: body
  required: false
  type: string
excluded:
  description: |
    Indicates whether to count the traffic of a specific IP address with the
    ``remote_ip_prefix``, ``source_ip_prefix``, or ``destination_ip_prefix``
    values.
  in: body
  required: true
  type: boolean
excluded-request:
  description: |
    Indicates whether to count the traffic of a specific IP address with the
    ``remote_ip_prefix``, ``source_ip_prefix``, or ``destination_ip_prefix``
    values. Default is ``false``.
  in: body
  required: false
  type: boolean
expected_codes:
  description: |
    The list of HTTP status codes expected in
    response from the member to declare it healthy. Specify one of the
    following values:

    - A single value, such as ``200``
    - A list, such as ``200, 202``
    - A range, such as ``200-204``

    The default is 200.
  in: body
  required: false
  type: string
expected_codes-response:
  description: |
    The list of HTTP status codes expected in
    response from the member to declare it healthy. Specify one of the
    following values:

    - A single value, such as ``200``
    - A list, such as ``200, 202``
    - A range, such as ``200-204``

    The default is 200.
  in: body
  required: true
  type: string
extension:
  description: |
    An ``extension`` object.
  in: body
  required: true
  type: object
extension-alias-body:
  description: |
    The alias for the extension. For example "quotas" or
    "security-group".
  in: body
  required: true
  type: string
extension-description:
  description: |
    The human-readable description for the resource.
  in: body
  required: true
  type: string
extension-links:
  description: |
     List of links related to the extension.
  in: body
  required: true
  type: array
extension-name:
  description: |
    Human-readable name of the resource.
  in: body
  required: true
  type: string
extension-updated:
  description: |
    The date and timestamp when the extension was
    last updated.
  in: body
  required: true
  type: string
extensions:
  description: |
    A list of ``extension`` objects.
  in: body
  required: true
  type: array
external_port:
  description: |
    The TCP/UDP/other protocol port number of the port forwarding's floating IP
    address.
  in: body
  required: false
  type: integer
external_port-update:
  description: |
    The TCP/UDP/other protocol port number of the port forwarding's floating IP
    address.
  in: body
  required: false
  type: integer
external_port_range:
  description: |
    The TCP/UDP/other protocol port range of the port forwarding's floating IP
    address.
  in: body
  required: false
  type: string
external_v4_ip:
  description: |
    Read-only external (public) IPv4 address that is
    used for the VPN service. The VPN plugin sets this address if an
    IPv4 interface is available.
  in: body
  required: true
  type: string
external_v6_ip:
  description: |
    Read-only external (public) IPv6 address that is
    used for the VPN service. The VPN plugin sets this address if an
    IPv6 interface is available.
  in: body
  required: true
  type: string
extra_dhcp_opts:
  description: |
    A set of zero or more extra DHCP option pairs. An
    option pair consists of an option value and name.
  in: body
  required: true
  type: array
extra_dhcp_opts-request:
  description: |
    A set of zero or more extra DHCP option pairs. An
    option pair consists of an option value and name.
  in: body
  required: false
  type: array
fip-distributed:
  description: |
    ``true`` indicates a distributed floatingip.
    It is available when ``floating-ip-distributed`` extension is enabled.
  in: body
  required: true
  type: boolean
fip-distributed-request:
  description: |
    ``true`` indicates a distributed floatingip.
    It is available when ``floating-ip-distributed`` extension is enabled.
  in: body
  required: false
  type: boolean
fip_port_forwarding:
  description: |
    A ``floating IP port forwarding`` object.
  in: body
  required: true
  type: object
fip_port_forwarding-description:
  description: |
    A text describing the rule, which helps users to
    manage/find easily theirs rules.
  in: body
  required: false
  type: string
fip_port_forwarding_id-body:
  description: |
    The ID of the floating IP port forwarding.
  in: body
  required: true
  type: string
fip_port_forwarding_protocol-body:
  description: |
    The IP protocol used in the floating IP port forwarding.
  in: body
  required: true
  type: string
fip_port_forwarding_protocol-update:
  description: |
    The IP protocol used in the floating IP port forwarding.
  in: body
  required: false
  type: string
fip_port_forwardings:
  description: |
    A list of ``floating IP port forwardings`` objects.
  in: body
  required: true
  type: array
firewall:
  description: |
    A ``firewall`` object.
  in: body
  required: true
  type: object
firewall-status:
  description: |
    The status of the firewall service. Values are
    ``ACTIVE``, ``INACTIVE``, ``ERROR``, ``DOWN``,
    ``PENDING_CREATE``, ``PENDING_UPDATE``, or ``PENDING_DELETE``.
  in: body
  required: true
  type: string
firewall_group_admin_state_up-body-optional:
  description: |
    The administrative state of the firewall group, which
    is up (``true``) or down (``false``). Default is ``true``.
  in: body
  required: false
  type: boolean
firewall_group_admin_state_up-body-required:
  description: |
    The administrative state of the firewall group, which
    is up (``true``) or down (``false``). Default is ``true``.
  in: body
  required: true
  type: boolean
firewall_group_description-body-optional:
  description: |
    A human-readable description of the firewall group.
  in: body
  required: false
  type: object
firewall_group_description-body-required:
  description: |
    A human-readable description of the firewall group.
  in: body
  required: true
  type: object
firewall_group_id-body-required:
  description: |
    The ID of the firewall group.
  in: body
  required: true
  type: string
firewall_group_name-body-optional:
  description: |
    A human-readable name for the firewall group.
  in: body
  required: false
  type: string
firewall_group_name-body-required:
  description: |
    A human-readable name for the firewall group.
  in: body
  required: true
  type: string
firewall_group_object:
  description: |
    A ``firewall_group`` object.
  in: body
  required: true
  type: object
firewall_group_ports-body-optional:
  description: |
    A list of the IDs of the ports associated with the firewall group.
  in: body
  required: false
  type: array
firewall_group_ports-body-required:
  description: |
    A list of the IDs of the ports associated with the firewall group.
  in: body
  required: true
  type: array
firewall_group_shared-body-optional:
  description: |
    Indicates whether this firewall group is shared across all projects.
  in: body
  required: false
  type: boolean
firewall_group_shared-body-required:
  description: |
    Indicates whether this firewall group is shared across all projects.
  in: body
  required: true
  type: boolean
firewall_group_status-body-required:
  description: |
    The status of the firewall group. Valid values are ``ACTIVE``,
    ``INACTIVE``, ``ERROR``, ``PENDING_UPDATE``, or
    ``PENDING_DELETE``.
  in: body
  required: true
  type: string
firewall_groups_object:
  description: |
    A list of ``firewall_group`` objects.
  in: body
  required: true
  type: array
firewall_id-body:
  description: |
    The ID of the FWaaS v1 firewall.
  in: body
  required: true
  type: string
firewall_list:
  description: |
    A list of the IDs of firewalls associated with
    the firewall policy.
  in: body
  required: true
  type: array
firewall_log:
  description: |
    A ``firewall_log`` object.
  in: body
  required: true
  type: object
firewall_log_id-body:
  description: |
    The ID of the firewall log resource.
  in: body
  required: true
  type: string
firewall_logs:
  description: |
    A list of ``firewall_log`` objects.
  in: body
  required: true
  type: array
firewall_policies:
  description: |
    A list of ``firewall_policy`` objects.
  in: body
  required: true
  type: array
firewall_policies_object:
  description: |
    A list of ``firewall_policy`` objects.
  in: body
  required: true
  type: array
firewall_policy:
  description: |
    A ``firewall_policy`` object.
  in: body
  required: true
  type: object
firewall_policy_audited-body-optional:
  description: |
    Each time that the firewall policy or its associated rules are
    changed, the API sets this attribute to ``false``. To audit the
    policy, explicitly set this attribute to ``true``.
  in: body
  required: false
  type: boolean
firewall_policy_audited-body-required:
  description: |
    Each time that the firewall policy or its associated rules are
    changed, the API sets this attribute to ``false``. To audit the
    policy, explicitly set this attribute to ``true``.
  in: body
  required: true
  type: boolean
firewall_policy_description-body-optional:
  description: |
    A human-readable name of the firewall policy.
  in: body
  required: false
  type: string
firewall_policy_description-body-required:
  description: |
    A human-readable name of the firewall policy.
  in: body
  required: true
  type: string
firewall_policy_id:
  description: |
    Read-only attribute that the API populates with
    the ID of the firewall policy when you associate this firewall
    rule with a policy.  You can associate a firewall rule with one
    policy at a time. You can update this association can to a
    different firewall policy.  If you do not associate the rule with
    any policy, this attribute is ``null``.
  in: body
  required: false
  type: string
firewall_policy_id-body:
  description: |
    The ID of the policy that is associated with
    the firewall.
  in: body
  required: true
  type: string
firewall_policy_id-body-required:
  description: |
    The ID of the firewall policy.
  in: body
  required: true
  type: string
firewall_policy_name-body-optional:
  description: |
    A human-readable name of the firewall policy.
  in: body
  required: false
  type: string
firewall_policy_name-body-required:
  description: |
    A human-readable name of the firewall policy.
  in: body
  required: true
  type: string
firewall_policy_object:
  description: |
    A ``firewall_policy`` object.
  in: body
  required: true
  type: object
firewall_policy_shared-body-optional:
  description: |
    Set to ``true`` to make this firewall policy
    visible to other projects. Default is ``false``.
  in: body
  required: false
  type: boolean
firewall_policy_shared-body-required:
  description: |
    Set to ``true`` to make this firewall policy
    visible to other projects. Default is ``false``.
  in: body
  required: true
  type: boolean
firewall_rule:
  description: |
    A ``firewall_rule`` object.
  in: body
  required: true
  type: object
firewall_rule_action-body-optional:
  description: |
    The action that the API performs on traffic that
    matches the firewall rule.  Valid values are ``allow`` or ``deny``.
    Default is ``deny``.
  in: body
  required: false
  type: string
firewall_rule_action-body-required:
  description: |
    The action that the API performs on traffic that
    matches the firewall rule.  Valid values are ``allow`` or ``deny``.
    Default is ``deny``.
  in: body
  required: true
  type: string
firewall_rule_description-body-optional:
  description: |
    A human-readable description of the firewall rule.
  in: body
  required: false
  type: string
firewall_rule_description-body-required:
  description: |
    A human-readable description of the firewall rule.
  in: body
  required: true
  type: string
firewall_rule_destination_ip_address-body-optional:
  description: |
    The destination IPv4 or IPv6 address or CIDR for the firewall rule. No
    default.
  in: body
  required: false
  type: string
firewall_rule_destination_ip_address-body-required:
  description: |
    The destination IPv4 or IPv6 address or CIDR for the firewall rule. No
    default.
  in: body
  required: true
  type: string
firewall_rule_destination_port-body-optional:
  description: |
    The destination port or port range for the firewall rule. A valid
    value is a port number, as an integer, or a port range, in the
    format of a ``:`` separated range. For a port range, include both
    ends of the range. For example, ``80:90``.
  in: body
  required: false
  type: string
firewall_rule_destination_port-body-required:
  description: |
    The destination port or port range for the firewall rule. A valid
    value is a port number, as an integer, or a port range, in the
    format of a ``:`` separated range. For a port range, include both
    ends of the range. For example, ``80:90``.
  in: body
  required: true
  type: string
firewall_rule_enabled-body-optional:
  description: |
    Set to ``false`` to disable this rule in the firewall policy.
    Facilitates selectively turning off rules without having to
    disassociate the rule from the firewall policy. Valid values are
    ``true`` or ``false``. Default is ``true``.
  in: body
  required: false
  type: boolean
firewall_rule_enabled-body-required:
  description: |
    Set to ``false`` to disable this rule in the firewall policy.
    Facilitates selectively turning off rules without having to
    disassociate the rule from the firewall policy. Valid values are
    ``true`` or ``false``. Default is ``true``.
  in: body
  required: true
  type: boolean
firewall_rule_id-body:
  description: |
    The ID of the firewall rule.
  in: body
  required: true
  type: string
firewall_rule_id-body-required:
  description: |
    The ID of the firewall rule.
  in: body
  required: true
  type: string
firewall_rule_insert_after-body-required:
  description: |
    The ID of the firewall_rule to insert the new rule after. The new
    rule will be inserted immediately after the specified firewall_rule.
    If both ``before`` and ``after`` values are supplied, the ``after`` value
    will be ignored. To insert a rule into a policy with no rules yet,
    the both the ``before`` and the ``after`` values must be "".
  in: body
  required: true
  type: string
firewall_rule_insert_before-body-required:
  description: |
    The ID of the firewall_rule to insert the new rule before. The new
    rule will be inserted immediately before the specified firewall_rule.
    If both ``before`` and ``after`` values are supplied, the ``after`` value
    will be ignored. To insert a rule into a policy with no rules yet,
    the both the ``before`` and the ``after`` values must be "".
  in: body
  required: true
  type: string
firewall_rule_ip_version-body-optional:
  description: |
    The IP protocol version for the firewall rule. Valid values are
    ``4`` or ``6``. Default is ``4``.
  in: body
  required: false
  type: integer
firewall_rule_ip_version-body-required:
  description: |
    The IP protocol version for the firewall rule. Valid values
    are ``4`` or ``6``. Default is ``4``.
  in: body
  required: true
  type: integer
firewall_rule_name-body-optional:
  description: |
     A human-readable name of the firewall rule.
  in: body
  required: false
  type: string
firewall_rule_name-body-required:
  description: |
     A human-readable name of the firewall rule.
  in: body
  required: true
  type: string
firewall_rule_object:
  description: |
    A ``firewall_rule`` object.
  in: body
  required: true
  type: object
firewall_rule_protocol-body-optional:
  description: |
    The IP protocol for the firewall rule. Possible values are ``icmp``, ``tcp``,
    ``udp``, or ``null``.
  in: body
  required: false
  type: string
firewall_rule_protocol-body-required:
  description: |
    The IP protocol for the firewall rule. Possible values are ``icmp``, ``tcp``,
    ``udp``, or ``null``.
  in: body
  required: true
  type: string
firewall_rule_shared-body-optional:
  description: |
    Indicates whether this firewall rule is shared across all projects.
  in: body
  required: false
  type: boolean
firewall_rule_shared-body-required:
  description: |
    Indicates whether this firewall rule is shared across all projects.
  in: body
  required: true
  type: boolean
firewall_rule_source_ip_address-body-optional:
  description: |
    The source IPv4 or IPv6 address or CIDR for the firewall rule. No
    default.
  in: body
  required: false
  type: string
firewall_rule_source_ip_address-body-required:
  description: |
    The source IPv4 or IPv6 address or CIDR for the firewall rule. No
    default.
  in: body
  required: true
  type: string
firewall_rule_source_port-body-optional:
  description: |
    The source port or port range for the firewall rule. A valid
    value is a port number, as an integer, or a port range, in the
    format of a ``:`` separated range. For a port range, include both
    ends of the range. For example, ``80:90``.
  in: body
  required: false
  type: string
firewall_rule_source_port-body-required:
  description: |
    The source port or port range for the firewall rule. A valid
    value is a port number, as an integer, or a port range, in the
    format of a ``:`` separated range. For a port range, include both
    ends of the range. For example, ``80:90``.
  in: body
  required: true
  type: string
firewall_rules:
  description: |
    A list of the IDs for firewall rule associated
    with the firewall policy.
  in: body
  required: true
  type: array
firewall_rules-body-optional:
  description: |
    A list of the IDs of the firewall rules associated
    with the firewall policy.
  in: body
  required: false
  type: array
firewall_rules-body-required:
  description: |
    A list of the IDs of the firewall rules associated
    with the firewall policy.
  in: body
  required: true
  type: array
firewall_rules_id:
  description: |
    A list of rules to associate with the firewall
    policy.
  in: body
  required: false
  type: array
firewall_rules_object:
  description: |
    A list of ``firewall_rule`` objects.
  in: body
  required: true
  type: object
firewalls:
  description: |
    A list of ``firewall_rule`` objects.
  in: body
  required: true
  type: array
fixed_ips:
  description: |
    The IP addresses for the port. If the port has multiple IP addresses,
    this field has multiple entries. Each entry consists of IP address
    (``ip_address``) and the subnet ID from which the IP address
    is assigned (``subnet_id``).
  in: body
  required: true
  type: array
fixed_ips-request:
  description: |
    The IP addresses for the port.
    If you would like to assign multiple IP addresses for the port,
    specify multiple entries in this field.
    Each entry consists of IP address (``ip_address``) and the subnet ID
    from which the IP address is assigned (``subnet_id``).

    * If you specify both a subnet ID and an IP address, OpenStack Networking
      tries to allocate the IP address on that subnet to the port.
    * If you specify only a subnet ID, OpenStack Networking allocates
      an available IP from that subnet to the port.
    * If you specify only an IP address, OpenStack Networking
      tries to allocate the IP address if the address is a valid IP
      for any of the subnets on the specified network.
  in: body
  required: false
  type: array
flavor:
  description: |
    A ``flavor`` object.
  in: body
  required: true
  type: object
flavor-description:
  description: |
    The human-readable description for the flavor.
  in: body
  required: true
  type: string
flavor-description-request:
  description: |
    The human-readable description for the flavor.
  in: body
  required: false
  type: string
flavor-enabled:
  description: |
    Indicates whether the flavor is enabled or not. Default is true.
  in: body
  required: true
  type: boolean
flavor-enabled-request:
  description: |
    Indicates whether the flavor is enabled or not. Default is true.
  in: body
  required: false
  type: boolean
flavor-id:
  description: |
    The ID of the flavor.
  in: body
  required: true
  type: string
flavor-id-request:
  description: |
    The ID of the flavor.
  in: body
  required: false
  type: string
flavor-id-response:
  description: |
    The ID of the flavor.
  in: body
  required: true
  type: string
flavor-name:
  description: |
    Name of the flavor.
  in: body
  required: true
  type: string
flavor-name-request:
  description: |
    Name of the flavor.
  in: body
  required: false
  type: string
flavor-service_profiles:
  description: |
    Service profile UUIDs associated with this flavor.
  in: body
  required: true
  type: array
flavor-service_type:
  description: |
    Service type for the flavor. Example: FIREWALL.
  in: body
  required: true
  type: string
flavors:
  description: |
    A list of ``flavor`` objects.
  in: body
  required: true
  type: array
floating_ip_address:
  description: |
    The floating IP address.
  in: body
  required: true
  type: string
floating_ip_address-request:
  description: |
    The floating IP address.
  in: body
  required: false
  type: string
floating_network_id:
  description: |
    The ID of the network associated with the
    floating IP.
  in: body
  required: true
  type: string
floating_port_details:
  description: |
    The information of the port that this floating IP associates with.
    In particular, if the floating IP is associated with a port, this field
    contains some attributes of the associated port, including ``name``,
    ``network_id``, ``mac_address``, ``admin_state_up``, ``status``,
    ``device_id`` and ``device_owner``. If the floating IP is not associated
    with a port, this field is ``null``.
  in: body
  required: true
  type: string
floatingip:
  description: |
    A ``floatingip`` object. When you associate a
    floating IP address with a VM, the instance has the same public IP
    address each time that it boots, basically to maintain a
    consistent IP address for maintaining DNS assignment.
  in: body
  required: true
  type: object
floatingip-fixed_ip_address:
  description: |
    The fixed IP address that is associated with the
    floating IP address.
  in: body
  required: true
  type: string
floatingip-fixed_ip_address-request:
  description: |
    The fixed IP address that is associated with the floating IP.
    If an internal port has multiple associated IP addresses,
    the service chooses the first IP address unless you explicitly
    define a fixed IP address in the ``fixed_ip_address`` parameter.
  in: body
  required: false
  type: string
floatingip-id:
  description: |
    The ID of the floating IP address.
  in: body
  required: true
  type: string
floatingip-port_forwardings:
  description: |
    The associated port forwarding resources for the floating IP. If the
    floating IP has multiple port forwarding resources, this field has
    multiple entries. Each entry consists of network IP protocol
    (``protocol``), the fixed IP address of internal neutron port
    (``internal_ip_address``), the TCP or UDP port or port range used by
    internal neutron port (``internal_port``) or (``internal_port_range``)
    and the TCP or UDP port or port range used by floating IP
    (``external_port``) or (``external_port_range``).
  in: body
  required: true
  type: array
floatingip-port_id:
  description: |
    The ID of a port associated with the floating IP.
  in: body
  required: true
  type: string
floatingip-port_id-post-request:
  description: |
    The ID of a port associated with the floating IP.
    To associate the floating IP with a fixed IP at creation time,
    you must specify the identifier of the internal port.
  in: body
  required: false
  type: string
floatingip-port_id-put-request:
  description: |
    The ID of a port associated with the floating IP.
    To associate the floating IP with a fixed IP,
    you must specify the ID of the internal port.
    To disassociate the floating IP, ``null`` should be specified.
  in: body
  required: true
  type: string
floatingip-router_id:
  description: |
    The ID of the router for the floating IP.
  in: body
  required: true
  type: string
floatingip-status:
  description: |
    The status of the floating IP. Values are
    ``ACTIVE``, ``DOWN`` and ``ERROR``.
  in: body
  required: true
  type: string
floatingip-subnet_id:
  description: |
    The subnet ID on which you want to create the floating IP.
  in: body
  required: false
  type: string
floatingip_pools:
  description: |
    A list of ``floatingip_pools`` objects.
  in: body
  required: true
  type: array
floatingips:
  description: |
    A list of ``floatingip`` objects.
  in: body
  required: true
  type: array
fw_event:
  description: |
    Type of firewall events to log.
    ``ACCEPT``, ``DROP``, or ``ALL``.
  in: body
  required: true
  type: string
fw_event-request:
  description: |
    Type of firewall events to log.
    ``ACCEPT``, ``DROP``, or ``ALL``.
    Default is ``ALL``.
  in: body
  required: false
  type: string
fw_event-request-put:
  description: |
    Type of firewall events to log.
    ``ACCEPT``, ``DROP``, or ``ALL``.
  in: body
  required: false
  type: string
heartbeat_timestamp:
  description: |
    Time at which the last heartbeat was received.
  in: body
  required: true
  type: string
hints:
  description: |
    Admin-only. The following values control Open vSwitch's Userspace Tx
    packet steering feature:

    - ``{"openvswitch": {"other_config": {"tx-steering": "hash|thread"}}}``
  in: body
  required: true
  type: object
hints-request:
  description: |
    Admin-only. A dict, at the top level keyed by mechanism driver
    aliases (as defined in setup.cfg). To following values can be used to
    control Open vSwitch's Userspace Tx packet steering feature:

    - ``{"openvswitch": {"other_config": {"tx-steering": "hash"}}}``
    - ``{"openvswitch": {"other_config": {"tx-steering": "thread"}}}``

    If omitted the default is defined by Open vSwitch.
    The field cannot be longer than 4095 characters.
  in: body
  required: false
  type: object
host:
  description: |
    The hostname of the system the agent is running on.
  in: body
  required: true
  type: string
id:
  description: |
    The ID of the resource.
  in: body
  required: true
  type: string
id_autotopology:
  description: |
    The ID of the network for the auto allocated topology.
  in: body
  required: true
  type: string
id_resource:
  description: |
    The ID for the resource.
  in: body
  required: true
  type: string
ike_version:
  description: |
    The IKE version. A valid value is ``v1`` or
    ``v2``. Default is ``v1``.
  in: body
  required: false
  type: string
ikepolicies:
  description: |
    A list of ``ikepolicy`` objects.
  in: body
  required: true
  type: array
ikepolicy:
  description: |
    An ``ikepolicy`` object.
  in: body
  required: true
  type: object
ikepolicy_id-body-request:
  description: |
    The ID of the IKE policy.
  in: body
  required: false
  type: string
ikepolicy_id-body-response:
  description: |
    The ID of the IKE policy.
  in: body
  required: true
  type: string
ingress_firewall_policy_id-body-optional:
  description: |
    The ID of the ingress firewall policy for the firewall group.
  in: body
  required: false
  type: string
ingress_firewall_policy_id-body-required:
  description: |
    The ID of the ingress firewall policy for the firewall group.
  in: body
  required: true
  type: string
initiator:
  description: |
    Indicates whether this VPN can only respond to
    connections or both respond to and initiate connections. A valid
    value is ``response- only`` or ``bi-directional``. Default is
    ``bi-directional``.
  in: body
  required: false
  type: string
insert_after:
  description: |
    The ID of the firewall_rule. A new
    firewall_rule will be inserted after this firewall_rule.
  in: body
  required: false
  type: string
insert_before:
  description: |
    The ID of the firewall_rule. A new
    firewall_rule will be inserted before this firewall_rule.
  in: body
  required: false
  type: string
interfaces:
  description: |
    Router interfaces
  in: body
  required: true
  type: string
internal_ip_address:
  description: |
    The fixed IPv4 address of the Neutron port associated to the floating IP
    port forwarding.
  in: body
  required: true
  type: string
internal_ip_address-response:
  description: |
    The fixed IPv4 address of the Neutron port associated to the floating IP
    port forwarding.
  in: body
  required: true
  type: string
internal_port:
  description: |
    The TCP/UDP/other protocol port number of the Neutron port fixed IP
    address associated to the floating ip port forwarding.
  in: body
  required: false
  type: integer
internal_port-update:
  description: |
    The TCP/UDP/other protocol port number of the Neutron port fixed IP
    address associated to the floating ip port forwarding.
  in: body
  required: false
  type: integer
internal_port_id:
  description: |
    The ID of the Neutron port associated to the floating IP port forwarding.
  in: body
  required: true
  type: string
internal_port_id-update:
  description: |
    The ID of the Neutron port associated to the floating IP port forwarding.
  in: body
  required: false
  type: string
internal_port_range:
  description: |
    The TCP/UDP/other protocol port range of the Neutron port fixed IP
    address associated to the floating ip port forwarding.
  in: body
  required: false
  type: string
interval:
  description: |
    The dead peer detection (DPD) interval, in
    seconds. A valid value is a positive integer. Default is 30.
  in: body
  required: false
  type: integer
ip_address:
  description: |
    The IP address of an allowed address pair.
  in: body
  required: false
  type: string
ip_allocation:
  description: |
    Indicates when ports use either ``deferred``, ``immediate`` or no IP
    allocation (``none``).
  in: body
  required: true
  type: string
ip_version:
  description: |
    The IP protocol version. Valid value is ``4`` or
    ``6``. Default is ``4``.
  in: body
  required: false
  type: integer
ip_version-required:
  description: |
    The IP protocol version. Valid value is ``4`` or ``6``.
  in: body
  required: true
  type: integer
ip_version-response:
  description: |
    The IP protocol version. Valid value is ``4`` or
    ``6``. Default is ``4``.
  in: body
  required: true
  type: integer
ipsec_site_connection:
  description: |
    An ``ipsec_site_connection`` object.
  in: body
  required: true
  type: object
ipsec_site_connection-action:
  description: |
    The dead peer detection (DPD) action. A valid
    value is ``clear``, ``hold``, ``restart``, ``disabled``, or
    ``restart-by-peer``. Default value is ``hold``.
  in: body
  required: true
  type: string
ipsec_site_connection-status:
  description: |
    Indicates whether the IPsec connection is
    currently operational. Values are ``ACTIVE``, ``DOWN``, ``BUILD``,
    ``ERROR``, ``PENDING_CREATE``, ``PENDING_UPDATE``, or
    ``PENDING_DELETE``.
  in: body
  required: true
  type: string
ipsec_site_connection-timeout:
  description: |
    The dead peer detection (DPD) timeout in seconds.
    A valid value is a positive integer that is greater than the DPD
    ``interval`` value. Default is 120.
  in: body
  required: true
  type: integer
ipsecpolicies:
  description: |
    A list of ``ipsecpolicy`` objects.
  in: body
  required: true
  type: array
ipsecpolicy:
  description: |
    An ``ipsecpolicy`` object.
  in: body
  required: true
  type: object
ipsecpolicy_id-body-request:
  description: |
    The ID of the IPsec policy.
  in: body
  required: false
  type: string
ipsecpolicy_id-body-response:
  description: |
    The ID of the IPsec policy.
  in: body
  required: true
  type: string
ipv4_address_scope:
  description: |
    The ID of the IPv4 address scope that the network is associated with.
  in: body
  required: true
  type: string
ipv6_address_scope:
  description: |
    The ID of the IPv6 address scope that the network is associated with.
  in: body
  required: true
  type: string
l2_adjacency:
  description: |
    Indicates whether L2 connectivity is available throughout
    the ``network``.
  in: body
  required: true
  type: boolean
lifetime:
  description: |
    The lifetime of the security association. The
    lifetime consists of a unit and integer value. You can omit either
    the unit or value portion of the lifetime. Default unit is seconds
    and default value is 3600.
  in: body
  required: false
  type: object
links:
  description: |
    The share links.
  in: body
  required: true
  type: array
local_ep_group_id:
  description: |
    The ID for the endpoint group that contains
    private subnets for the local side of the connection. Yo must
    specify this parameter with the ``peer_ep_group_id`` parameter
    unless in backward- compatible mode where ``peer_cidrs`` is
    provided with a ``subnet_id`` for the VPN service.
  in: body
  required: false
  type: string
local_id:
  description: |
    An ID to be used instead of the external IP address for a virtual
    router used in traffic between instances on different networks in
    east-west traffic. Most often, local ID would be domain name, email
    address, etc. If this is not configured then the external IP address
    will be used as the ID.
  in: body
  required: false
  type: string
local_ip:
  description: |
    A ``local_ip`` object represents a Local IP that could be associated
    with multiple ports
  in: body
  required: true
  type: object
local_ip-id:
  description: |
    The ID of the Local IP.
  in: body
  required: true
  type: string
local_ip-ip_mode:
  description: |
    The IP mode of the Local IP.
    Possible values are ``translate`` (DNAT) and ``passthrough`` (no DNAT)
  in: body
  required: true
  type: string
local_ip-ip_mode-request:
  description: |
    The requested IP mode of the Local IP.
    Possible values are ``translate`` (DNAT) and ``passthrough`` (no DNAT)
  in: body
  required: false
  type: string
local_ip-local_port_id:
  description: |
    The ID of underlying port of the Local IP.
  in: body
  required: true
  type: string
local_ip-local_port_id-request:
  description: |
    The requested ID of the underlying port of the Local IP
  in: body
  required: true
  type: string
local_ip-network_id:
  description: |
    The ID of the network of the Local IP.
  in: body
  required: true
  type: string
local_ip-network_id-request:
  description: |
    The requested ID of the network of the Local IP
  in: body
  required: true
  type: string
local_ip_address:
  description: |
    The actual IP address of the Local IP.
  in: body
  required: true
  type: string
local_ip_address-request:
  description: |
    The requested actual IP address of the Local IP.
  in: body
  required: false
  type: string
local_ip_association:
  description: |
    A ``local_ip_association`` object represents a Local IP Association
    with a port
  in: body
  required: true
  type: object
local_ip_association-fixed_ip:
  description: |
    The IP of the port associated with the Local IP.
  in: body
  required: false
  type: string
local_ip_association-fixed_ip-request:
  description: |
    The requested IP of the port associated with the Local IP.
  in: body
  required: false
  type: string
local_ip_association-fixed_port_id:
  description: |
    The ID of the port associated with the Local IP.
  in: body
  required: true
  type: string
local_ip_association-fixed_port_id-request:
  description: |
    The requested ID of the port associated with the Local IP.
  in: body
  required: true
  type: string
local_ip_association-host:
  description: |
    The host of the port associated with the Local IP.
  in: body
  required: false
  type: string
local_ip_associations:
  description: |
    A list of ``local_ip_association`` objects. Each ``local_ip_association``
    object represents a Local IP Association with a port
  in: body
  required: true
  type: array
local_ip_id:
  description: |
    The ID of the associated Local IP.
  in: body
  required: true
  type: string
local_ips:
  description: |
    A list of ``local_ip`` objects. Each ``local_ip`` object represents a
    Local IP that could be associated with multiple ports
  in: body
  required: true
  type: array
location:
  description: |
    Full URL to a service or server.
  format: uri
  in: body
  required: true
  type: string
log:
  description: |
    A ``log`` object.
  in: body
  required: true
  type: object
log_agent_heartbeats:
  description: |
    Log agent heartbeats configuration.
  in: body
  required: true
  type: boolean
log_enabled:
  description: |
    Indicates whether this log object is enabled or disabled.
  in: body
  required: true
  type: boolean
log_enabled-request:
  description: |
    Indicates whether this log object is enabled or disabled.
    Default is true.
  in: body
  required: false
  type: boolean
log_enabled-request-put:
  description: |
    Indicates whether this log object is enabled or disabled.
  in: body
  required: false
  type: boolean
log_event:
  description: |
    Type of security events to log.
    ``ACCEPT``, ``DROP``, or ``ALL``.
  in: body
  required: true
  type: string
log_event-request:
  description: |
    Type of security events to log.
    ``ACCEPT``, ``DROP``, or ``ALL``.
    Default is ``ALL``.
  in: body
  required: false
  type: string
log_id:
  description: |
    The ID of the log object.
  in: body
  required: true
  type: string
loggable_resources:
  description: |
    A list of ``loggable_resource`` object.
  in: body
  required: true
  type: object
logging_resource:
  description: |
    A ``logging_resource`` object.
  in: body
  required: true
  type: object
logging_resource_enabled:
  description: |
    Indicates whether this logging resource is enabled or disabled.
  in: body
  required: true
  type: boolean
logging_resource_enabled-request:
  description: |
    Indicates whether this logging resource is enabled or disabled.
    Default is false.
  in: body
  required: false
  type: boolean
logging_resource_enabled-request-put:
  description: |
    Indicates whether this logging resource is enabled or disabled.
  in: body
  required: false
  type: boolean
logging_resource_id-body:
  description: |
    The ID of the logging resource.
  in: body
  required: true
  type: string
logging_resources:
  description: |
    A list of ``logging_resource`` objects.
  in: body
  required: true
  type: array
logs:
  description: |
    A list of ``log`` objects.
  in: body
  required: true
  type: array
mac_address:
  description: |
    The MAC address of the port. If the port uses the ``direct-physical``
    ``vnic_type`` then the value of this field is overwritten with the MAC
    address provided in the active binding:profile if any.
  in: body
  required: true
  type: string
mac_address-request:
  description: |
    The MAC address of the port.
    If unspecified, a MAC address is automatically generated.
  in: body
  required: false
  type: string
mac_address-request-put:
  description: |
    The MAC address of the port.
    By default, only administrative users and users with advsvc role
    can change this value.
  in: body
  required: false
  type: string
mac_learning_enabled:
  description: |
    A boolean value that indicates if MAC Learning is enabled on the
    associated port.
  in: body
  required: false
  type: boolean
mac_learning_enabled-request:
  description: |
    A boolean value that indicates if MAC Learning is enabled on the
    associated port.
  in: body
  required: false
  type: boolean
max_burst_kbps:
  description: |
    The maximum burst size (in kilobits). Default is ``0``.
  in: body
  required: false
  type: integer
max_burst_kbps-response:
  description: |
    The maximum burst size (in kilobits).
  in: body
  required: true
  type: integer
max_burst_kpps:
  description: |
    The max burst kpps (kilo packets per second) value.
  in: body
  required: true
  type: integer
max_burst_kpps-response:
  description: |
    The max burst kpps (kilo packets per second) value.
  in: body
  required: true
  type: integer
max_kbps:
  description: |
    The maximum KBPS (kilobits per second) value. If you specify this
    value, must be greater than 0 otherwise max_kbps will have no value.
  in: body
  required: false
  type: integer
max_kbps-response:
  description: |
    The maximum KBPS (kilobits per second) value. If you specify this
    value, must be greater than 0 otherwise max_kbps will have no value.
  in: body
  required: true
  type: integer
max_kpps:
  description: |
    The max kpps (kilo packets per second) value.
  in: body
  required: true
  type: integer
max_kpps-response:
  description: |
    The max kpps (kilo packets per second) value.
  in: body
  required: true
  type: integer
max_prefixlen:
  description: |
    The maximum prefix size that can be allocated
    from the subnet pool. For IPv4 subnet pools, default is ``32``.
    For IPv6 subnet pools, default is ``128``.
  in: body
  required: false
  type: integer
metainfo:
  description: |
    JSON-formatted meta information.
  in: body
  required: false
  type: string
metering_label:
  description: |
    A ``metering_label`` object.
  in: body
  required: true
  type: object
metering_label-id:
  description: |
    The ID of the metering label.
  in: body
  required: true
  type: string
metering_label-id-body:
  description: |
    The metering label ID associated with this
    metering rule.
  in: body
  required: true
  type: string
metering_label-shared:
  description: |
    Indicates whether this metering label is shared
    across all projects.
  in: body
  required: true
  type: boolean
metering_label-shared-request:
  description: |
    Indicates whether this metering label is shared
    across all projects.
  in: body
  required: false
  type: boolean
metering_label_rule:
  description: |
    A ``metering_label_rule`` object.
  in: body
  required: true
  type: object
metering_label_rule-direction:
  description: |
    Ingress or egress, which is the direction in
    which the metering rule is applied.
  in: body
  required: true
  type: string
metering_label_rule-id:
  description: |
    The ID of the metering label rule.
  in: body
  required: true
  type: string
metering_label_rule-remote_ip_prefix:
  description: |
    (deprecated) The source IP prefix that is matched by this metering rule. By
    source IP prefix, one should read the internal/private IPs used in
    OpenStack.
  in: body
  required: true
  type: string
metering_label_rules:
  description: |
    A list of ``metering_label_rule`` objects.
  in: body
  required: true
  type: array
metering_labels:
  description: |
    A list of ``metering_label`` objects.
  in: body
  required: true
  type: array
min_kbps:
  description: |
    The minimum KBPS (kilobits per second) value which should be available for
    port.
  in: body
  required: true
  type: integer
min_kbps-response:
  description: |
    The minimum KBPS (kilobits per second) value which should be available for
    port.
  in: body
  required: true
  type: integer
min_kpps:
  description: |
    The minimum kilo (1000) packets per second (kpps) value.
  in: body
  required: true
  type: integer
min_kpps-response:
  description: |
    The minimum kilo (1000) packets per second (kpps) value.
  in: body
  required: true
  type: integer
min_kpps-update:
  description: |
    The minimum kilo (1000) packets per second (kpps) value.
  in: body
  required: false
  type: integer
min_prefixlen:
  description: |
    The smallest prefix that can be allocated from a
    subnet pool. For IPv4 subnet pools, default is ``8``. For IPv6
    subnet pools, default is ``64``.
  in: body
  required: false
  type: integer
minimum_bandwidth_rule:
  description: |
    A ``minimum_bandwidth_rule`` object.
  in: body
  required: true
  type: object
minimum_bandwidth_rules:
  description: |
    A list of ``minimum_bandwidth_rule`` objects associated with
    the QoS policy.
  in: body
  required: true
  type: array
minimum_packet_rate_rule:
  description: |
    A ``minimum_packet_rate_rule`` object.
  in: body
  required: true
  type: object
minimum_packet_rate_rules:
  description: |
    A list of ``minimum_packet_rate_rule`` objects associated with
    the QoS policy.
  in: body
  required: true
  type: array
mirror_port_tas:
  description: |
    Port to which the Tap service is connected.
  in: body
  required: true
  type: string
mtu:
  description: |
    The maximum transmission unit (MTU) value to
    address fragmentation. Minimum value is 68 for IPv4, and 1280 for
    IPv6.
  in: body
  required: true
  type: integer
mtu-request:
  description: |
    The maximum transmission unit (MTU) value to
    address fragmentation. Minimum value is 68 for IPv4, and 1280 for
    IPv6.
  in: body
  required: false
  type: integer
name:
  description: |
    Human-readable name of the resource.
  in: body
  required: true
  type: string
name-request:
  description: |
    Human-readable name of the resource.
    Default is an empty string.
  in: body
  required: false
  type: string
name-request-put:
  description: |
    Human-readable name of the resource.
  in: body
  required: false
  type: string
name-segment:
  description: |
    Human-readable name of the segment.
  in: body
  required: false
  type: string
name_resource:
  description: |
    The name of the resource.
  in: body
  required: false
  type: string
ndp_proxies:
  description: |
    A list of ``ndp proxy`` object.
  in: body
  required: true
  type: array
ndp_proxy:
  description: |
    A ``ndp proxy`` object.
  in: body
  required: true
  type: object
ndp_proxy_id-body:
  description: |
    The ID of the ndp proxy
  in: body
  required: true
  type: string
ndp_proxy_ip_address-body:
  description: |
    The IPv6 address which the ``ndp proxy`` annunciate to external network.
  in: body
  required: true
  type: string
ndp_proxy_ip_address-body-request:
  description: |
    The IPv6 address which the ``ndp proxy`` annunciate to external network.
  in: body
  required: false
  type: string
ndp_proxy_port_id-body:
  description: |
    The ID of the port for the ndp proxy.
  in: body
  required: true
  type: string
ndp_proxy_router_id-body:
  description: |
    The ID of the router for the ndp proxy.
  in: body
  required: true
  type: string
network:
  description: |
    A ``network`` object.
  in: body
  required: true
  type: object
network-admin_state_up:
  description: |
    The administrative state of the network, which is
    up (``true``) or down (``false``).
  in: body
  required: true
  type: boolean
network-admin_state_up-request:
  description: |
    The administrative state of the network, which is
    up (``true``) or down (``false``).
  in: body
  required: false
  type: boolean
network-ha:
  description: |
    The high availability input flag when creating a network.
  in: body
  required: false
  type: boolean
network-id:
  description: |
    The ID of the network.
  in: body
  required: true
  type: string
network-name:
  description: |
    Human-readable name of the network.
  in: body
  required: true
  type: string
network-name-request:
  description: |
    Human-readable name of the network.
  in: body
  required: False
  type: string
network-port_security_enabled:
  description: |
    The port security status of the network. Valid values are
    enabled (``true``) and disabled (``false``).
    This value is used as the default value of ``port_security_enabled``
    field of a newly created port.
  in: body
  required: true
  type: boolean
network-port_security_enabled-request:
  description: |
    The port security status of the network. Valid values are
    enabled (``true``) and disabled (``false``).
    This value is used as the default value of ``port_security_enabled``
    field of a newly created port.
  in: body
  required: false
  type: boolean
network-shared:
  description: |
    Indicates whether this network is shared across all tenants. By default,
    only administrative users can change this value.
  in: body
  required: true
  type: boolean
network-status:
  description: |
    The network status. Values are ``ACTIVE``, ``DOWN``, ``BUILD`` or ``ERROR``.
  in: body
  required: true
  type: string
network-subnets:
  description: |
    The associated subnets.
  in: body
  required: true
  type: array
network_id:
  description: |
    The ID of the attached network.
  in: body
  required: true
  type: string
network_ip_availabilities:
  description: |
    The ``network_ip_availabilities`` object.
  in: body
  required: true
  type: array
network_ip_availability:
  description: |
    A ``network_ip_availability`` object.
  in: body
  required: true
  type: object
network_ip_availability-network_id:
  description: |
    The ID of the network whose IP availability detail is reported.
  in: body
  required: true
  type: string
network_ip_availability-subnet_id:
  description: |
    The ID of the subnet whose IP availability detail is reported.
  in: body
  required: true
  type: string
network_is_default:
  description: |
    The network is default pool or not.
  in: body
  required: true
  type: boolean
network_is_default-request:
  description: |
    The network is default or not.
  in: body
  required: false
  type: boolean
network_segment_range-available:
  description: |
    List of available segmentation IDs in the network segment range.
  in: body
  required: true
  type: list
network_segment_range-default:
  description: |
    Defines whether the network segment range is the default that is loaded
    from the host ML2 config file.
  in: body
  required: true
  type: boolean
network_segment_range-maximum-body-optional:
  description: |
    The maximum segmentation ID of the network segment range.
  in: body
  required: false
  type: integer
network_segment_range-maximum-body-required:
  description: |
    The maximum segmentation ID of the network segment range.
  in: body
  required: true
  type: integer
network_segment_range-minimum-body-optional:
  description: |
    The minimum segmentation ID of the network segment range.
  in: body
  required: false
  type: integer
network_segment_range-minimum-body-required:
  description: |
    The minimum segmentation ID of the network segment range.
  in: body
  required: true
  type: integer
network_segment_range-name:
  description: |
      Human-readable name of the network segment range.
  in: body
  required: false
  type: string
network_segment_range-network_type:
  description: |
    The type of physical network that maps to this network segment range
    resource. For example, ``vlan``, ``vxlan``, or ``gre``. Valid values depend
    on a networking back-end.
  in: body
  required: true
  type: string
network_segment_range-physical_network-body-optional:
  description: |
    The physical network where this network segment range is implemented.
  in: body
  required: false
  type: string
network_segment_range-physical_network-body-required:
  description: |
    The physical network where this network segment range is implemented.
  in: body
  required: true
  type: string
network_segment_range-shared:
  description: |
    Indicates whether this network segment range is shared across all projects.
  in: body
  required: true
  type: boolean
network_segment_range-used:
  description: |
    Mapping of which segmentation ID in the network segment range is used by
    which project.
  in: body
  required: true
  type: dict
network_segment_range_id:
  description: |
    The UUID of the network segment range.
  in: body
  required: true
  type: string
network_type:
  description: |
    The type of physical network that maps to this
    network resource. For example, ``flat``, ``vlan``, ``vxlan``, or
    ``gre``.
  in: body
  required: true
  type: string
networks:
  description: |
    A list of ``network`` objects.
  in: body
  required: true
  type: array
numa_affinity_policy:
  description: |
    The port NUMA affinity policy requested during the virtual machine
    scheduling. Values: ``None``, ``required``, ``preferred`` or ``legacy``.
  in: body
  required: False
  type: string
numa_affinity_policy-request:
  description: |
    The port NUMA affinity policy requested during the virtual machine
    scheduling. Values: ``None``, ``required``, ``preferred`` or ``legacy``.
  in: body
  required: False
  type: string
object_id:
  description: |
    The ID of the ``object_type`` resource. An ``object_type`` of ``network``
    returns a network ID, an ``object_type`` of ``qos-policy`` returns a QoS
    policy ID, an ``object_type`` of ``security-group`` returns a security
    group ID, an ``object_type`` of ``address-scope`` returns a address scope
    ID, an ``object_type`` of ``subnetpool`` returns a subnetpool ID and
    an ``object_type`` of ``address-group`` returns an address group ID.
  in: body
  required: true
  type: string
object_type:
  description: |
    The type of the object that the RBAC policy affects. Types include
    ``qos-policy``, ``network``, ``security-group``, ``address-scope``,
    ``subnetpool`` or ``address-group``.
  in: body
  required: true
  type: string
packet_rate_limit_rule:
  description: |
    A ``packet_rate_limit_rule`` object.
  in: body
  required: true
  type: object
packet_rate_limit_rules:
  description: |
    A list of ``packet_rate_limit_rule`` objects associated with
    the QoS policy.
  in: body
  required: true
  type: array
peer_address:
  description: |
    The peer gateway public IPv4 or IPv6 address or
    FQDN.
  in: body
  required: true
  type: string
peer_cidrs:
  description: |
    (Deprecated) Unique list of valid peer private
    CIDRs in the form < net_address > / < prefix > .
  in: body
  required: false
  type: array
peer_ep_group_id:
  description: |
    The ID for the endpoint group that contains
    private CIDRs in the form < net_address > / < prefix > for the
    peer side of the connection. You must specify this parameter with
    the ``local_ep_group_id`` parameter unless in backward-compatible
    mode where ``peer_cidrs`` is provided with a ``subnet_id`` for the
    VPN service.
  in: body
  required: false
  type: string
peer_id:
  description: |
    The peer router identity for authentication. A
    valid value is an IPv4 address, IPv6 address, e-mail address, key
    ID, or FQDN. Typically, this value matches the ``peer_address``
    value.
  in: body
  required: true
  type: string
pfs:
  description: |
    Perfect forward secrecy (PFS). A valid value is
    ``Group2``, ``Group5``, ``Group14``, and so on. Default is
    ``Group5``.
  in: body
  required: false
  type: string
phase1_negotiation_mode:
  description: |
    The IKE mode. A valid value is ``main``, which is
    the default.
  in: body
  required: false
  type: string
physical_network:
  description: |
    The physical network where this network/segment is implemented.
  in: body
  required: false
  type: string
policies:
  description: |
    A list of QoS ``policy`` objects.
  in: body
  required: true
  type: array
policy:
  description: |
    A QoS ``policy`` object.
  in: body
  required: true
  type: object
port:
  description: |
    A ``port`` object.
  in: body
  required: true
  type: object
port-resource:
  description: |
    Expose Placement resources (i.e.: ``minimum-bandwidth``) and
    traits (i.e.: ``vnic-type``, ``physnet``) requested by a port to
    Nova and Placement. A ``resource_request`` object contains
    ``request_groups`` and ``same_subtree`` keys. ``request_groups`` is a list
    of dicts, where each dict represents one group of resources and traits
    that needs to be fulfilled from a single resource provider. Every dict in
    the list must contain ``id``, ``required`` and ``resources`` keys. The
    ``id`` field is a string which represents a unique UUID that is generated
    for each group by combining the ``port_id`` and UUIDs of the QoS rules
    contributing to the group via the UUID5 method. ``required`` key contains
    the traits (generated from the ``vnic_type`` and the ``physnet``) required
    by the port, and a ``resources`` key contains a mapping of requested
    resource class name and requested amount from the QoS policy.
    ``same_subtree`` key contains a list of ``id`` values from every resource
    group.
  in: body
  required: false
  type: object
port-security_groups:
  description: |
    The IDs of security groups applied to the port.
  in: body
  required: true
  type: array
port-security_groups-request:
  description: |
    The IDs of security groups applied to the port.
  in: body
  required: false
  type: array
port-status:
  description: |
    The port status. Values are ``ACTIVE``, ``DOWN``,
    ``BUILD`` and ``ERROR``.
  in: body
  required: true
  type: string
port_id:
  description: |
    The ID of the port.
  in: body
  required: true
  type: string
port_id-request:
  description: |
    The ID of the port.
  in: body
  required: false
  type: string
port_id_subport:
  description: |
    The ID of the subport.
  in: body
  required: true
  type: string
port_range_max:
  description: |
    The maximum port number in the range that is
    matched by the security group rule. If the protocol is TCP, UDP,
    DCCP, SCTP or UDP-Lite this value must be greater than or equal to
    the ``port_range_min`` attribute value. If the protocol is ICMP,
    this value must be an ICMP code.
  in: body
  required: true
  type: integer
port_range_max-request:
  description: |
    The maximum port number in the range that is
    matched by the security group rule. If the protocol is TCP, UDP,
    DCCP, SCTP or UDP-Lite this value must be greater than or equal to
    the ``port_range_min`` attribute value. If the protocol is ICMP,
    this value must be an ICMP code.
  in: body
  required: false
  type: integer
port_range_min:
  description: |
    The minimum port number in the range that is
    matched by the security group rule. If the protocol is TCP, UDP,
    DCCP, SCTP or UDP-Lite this value must be less than or equal to
    the ``port_range_max`` attribute value. If the protocol is ICMP,
    this value must be an ICMP type.
  in: body
  required: true
  type: integer
port_range_min-request:
  description: |
    The minimum port number in the range that is
    matched by the security group rule. If the protocol is TCP, UDP,
    DCCP, SCTP or UDP-Lite this value must be less than or equal to
    the ``port_range_max`` attribute value. If the protocol is ICMP,
    this value must be an ICMP type.
  in: body
  required: false
  type: integer
port_security_enabled:
  description: |
    The port security status. A valid value is
    enabled (``true``) or disabled (``false``).
    If port security is enabled for the port,
    security group rules and anti-spoofing rules are applied to
    the traffic on the port. If disabled, no such rules are applied.
  in: body
  required: true
  type: boolean
port_security_enabled-request:
  description: |
    The port security status. A valid value is
    enabled (``true``) or disabled (``false``).
    If port security is enabled for the port,
    security group rules and anti-spoofing rules are applied to
    the traffic on the port. If disabled, no such rules are applied.
  in: body
  required: false
  type: boolean
ports:
  description: |
    A list of ``port`` objects.
  in: body
  required: true
  type: array
position:
  description: |
    Read-only attribute that the API assigns to this
    rule when it associates it with a firewall policy. This value
    indicates the position of this rule in that firewall policy. This
    position number starts at 1. If the firewall rule is not
    associated with any policy, the position is ``null``.
  in: body
  required: true
  type: integer
prefixes:
  description: |
    A list of subnet prefixes to assign to the subnet
    pool. The API merges adjacent prefixes and treats them as a single
    prefix.  Each subnet prefix must be unique among all subnet
    prefixes in all subnet pools that are associated with the address
    scope.
  in: body
  required: true
  type: array
prefixes-response:
    description: |
      A list of the subnet prefixes currently assigned to the subnet
      pool. Adjacent prefixes are merged and treated as a single prefix.
    in: body
    required: true
    type: array
prefixes_remove:
  description: |
    A list of subnet prefixes to remove from the subnet pool.
    The API splits larger prefixes when a subset prefix is removed,
    and merges any resulting adjacent prefixes to treat them as a single
    prefix.
  in: body
  required: true
  type: array
project_id:
  description: |
    The ID of the project.
  in: body
  required: true
  type: string
project_id-autotopology:
  description: |
    The ID of the project owning the auto allocated topology.
  in: body
  required: true
  type: string
project_id-body-optional:
  description: |
    The ID of the project that owns the resource.
  in: body
  required: false
  type: string
project_id-body-required:
  description: |
    The ID of the project that owns the resource.
  in: body
  required: true
  type: string
project_id-request:
  description: |
    The ID of the project that owns the resource.
    Only administrative and users with advsvc role can specify
    a project ID other than their own.
    You cannot change this value through authorization policies.
  in: body
  required: false
  type: string
propagate_uplink_status:
  description: |
    The uplink status propagation of the port. Valid values are
    enabled (``true``) and disabled (``false``).
  in: body
  required: true
  type: boolean
propagate_uplink_status-request:
  description: |
    The uplink status propagation of the port. Valid values are
    enabled (``true``) and disabled (``false``).
  in: body
  required: false
  type: boolean
protocol:
  description: |
    The IP protocol can be represented by a string, an integer, or ``null``.
    Valid string or integer values are ``any`` or ``0``, ``ah`` or ``51``,
    ``dccp`` or ``33``, ``egp`` or ``8``, ``esp`` or ``50``, ``gre`` or ``47``,
    ``icmp`` or ``1``, ``icmpv6`` or ``58``, ``igmp`` or ``2``,
    ``ipip`` or ``4``, ``ipv6-encap`` or ``41``,
    ``ipv6-frag`` or ``44``, ``ipv6-icmp`` or ``58``, ``ipv6-nonxt`` or ``59``,
    ``ipv6-opts`` or ``60``, ``ipv6-route`` or ``43``, ``ospf`` or ``89``,
    ``pgm`` or ``113``, ``rsvp`` or ``46``, ``sctp`` or ``132``,
    ``tcp`` or ``6``, ``udp`` or ``17``, ``udplite`` or ``136``,
    ``vrrp`` or ``112``. Additionally, any integer value between [0-255] is
    also valid. The string ``any`` (or integer ``0``) means ``all`` IP
    protocols. See the constants in ``neutron_lib.constants`` for the most
    up-to-date list of supported strings.
  in: body
  required: true
  type: string
protocol-request:
  description: |
    The IP protocol can be represented by a string, an integer, or ``null``.
    Valid string or integer values are ``any`` or ``0``, ``ah`` or ``51``,
    ``dccp`` or ``33``, ``egp`` or ``8``, ``esp`` or ``50``, ``gre`` or ``47``,
    ``icmp`` or ``1``, ``icmpv6`` or ``58``, ``igmp`` or ``2``,
    ``ipip`` or ``4``, ``ipv6-encap`` or ``41``,
    ``ipv6-frag`` or ``44``, ``ipv6-icmp`` or ``58``, ``ipv6-nonxt`` or ``59``,
    ``ipv6-opts`` or ``60``, ``ipv6-route`` or ``43``, ``ospf`` or ``89``,
    ``pgm`` or ``113``, ``rsvp`` or ``46``, ``sctp`` or ``132``,
    ``tcp`` or ``6``, ``udp`` or ``17``, ``udplite`` or ``136``,
    ``vrrp`` or ``112``. Additionally, any integer value between [0-255] is
    also valid. The string ``any`` (or integer ``0``) means ``all`` IP
    protocols. See the constants in ``neutron_lib.constants`` for the most
    up-to-date list of supported strings.
  in: body
  required: false
  type: string
protocol-response:
  description: |
    The IP protocol. Valid value is ``icmp``,
    ``tcp``, ``udp``, or ``null``. No default.
  in: body
  required: true
  type: string
protocol_port:
  description: |
    The TCP or UDP port on which to listen.
  in: body
  required: true
  type: integer
protocol_port-request:
  description: |
    The TCP or UDP port on which to listen.
  in: body
  required: true
  type: integer
provider:network_type:
  description: |
    The type of physical network that this network is mapped to.
    For example, ``flat``, ``vlan``, ``vxlan``, or ``gre``.
    Valid values depend on a networking back-end.
  in: body
  required: true
  type: string
provider:network_type-request:
  description: |
    The type of physical network that this network should be mapped to.
    For example, ``flat``, ``vlan``, ``vxlan``, or ``gre``.
    Valid values depend on a networking back-end.
  in: body
  required: false
  type: string
provider:physical_network:
  description: |
    The physical network where this network/segment is implemented.
  in: body
  required: true
  type: string
provider:physical_network-request:
  description: |
    The physical network where this network should be implemented.
    The Networking API v2.0 does not provide a way to list available
    physical networks. For example, the Open vSwitch plug-in configuration
    file defines a symbolic name that maps to specific bridges on each
    compute host.
  in: body
  required: false
  type: string
provider:segmentation_id:
  description: |
    The ID of the isolated segment on the physical network.
    The ``network_type`` attribute defines the segmentation model.
    For example, if the ``network_type`` value is vlan, this ID is a vlan
    identifier. If the ``network_type`` value is gre, this ID is a gre key.
    ``Note`` that only the segmentation-id of VLAN type networks can be
    changed!
  in: body
  required: true
  type: integer
provider:segmentation_id-request:
  description: |
    The ID of the isolated segment on the physical network.
    The ``network_type`` attribute defines the segmentation model.
    For example, if the ``network_type`` value is vlan, this ID is a vlan
    identifier. If the ``network_type`` value is gre, this ID is a gre key.
  in: body
  required: false
  type: integer
psk:
  description: |
    The pre-shared key. A valid value is any string.
  in: body
  required: true
  type: string
qos-backend-drivers:
  description: |
      List of loaded QoS drivers with supported
      rule type parameters with possible values for each.
      Each driver is represented by a dict with the keys
      ``name`` and ``supported_parameters``.
      Field ``name`` contains the name of a backend driver.
      Field ``supported_parameters`` contains a list of dicts with
      ``parameter_name``, ``parameter_type`` and ``parameter_values``
      fields.
      The valid values for ``parameter_type`` are ``choices`` or ``range``.
      If ``parameter_type`` is ``choices`` then ``parameter_values``
      contains a list of acceptable values, otherwise it contains
      a dict with keys of ``start`` and ``end`` which define the range
      of acceptable values.
  in: body
  required: true
  type: list
qos-rule-direction:
  description: |
    The direction of the traffic to which the QoS
    rule is applied, as seen from the point of view
    of the ``port``.
    Valid values are ``egress`` and ``ingress``.
    Default value is ``egress``.
  in: body
  required: false
  type: string
qos-rule-direction-response:
  description: |
    The direction of the traffic to which the QoS
    rule is applied, as seen from the point of view
    of the ``port``.
    Valid values are ``egress`` and ``ingress``.
    Default value is ``egress``.
  in: body
  required: true
  type: string
qos-rule-direction-update:
  description: |
    The direction of the traffic to which the QoS
    rule is applied, as seen from the point of view
    of the ``port``.
    Valid values are ``egress`` and ``ingress``.
  in: body
  required: false
  type: string
qos-rule-direction-update-response:
  description: |
    The direction of the traffic to which the QoS
    rule is applied, as seen from the point of view
    of the ``port``.
    Valid values are ``egress`` and ``ingress``.
  in: body
  required: true
  type: string
qos-rule-minimum-packet-rate-direction:
  description: |
    The direction of the traffic to which the QoS
    minimum packet rate rule is applied, as seen
    from the point of view of the ``port``. Valid
    values are ``any``, ``egress`` and
    ``ingress``.
  in: body
  required: true
  type: string
qos-rule-minimum-packet-rate-direction-update:
  description: |
    The direction of the traffic to which the QoS
    minimum packet rate rule is applied, as seen
    from the point of view of the ``port``. Valid
    values are ``any``, ``egress`` and
    ``ingress``.
  in: body
  required: false
  type: string
qos-rule-type:
  description: |
    The type of QoS rule.
  in: body
  required: true
  type: string
qos-rule-type-all-rules:
  description: |
    Set to ``true`` to return all QoS rule types implemented in the Neutron
    server.
  in: body
  required: false
  type: boolean
qos-rule-type-all-supported:
  description: |
    Set to ``true`` to return all QoS rule types supported by any loaded
    driver.
  in: body
  required: false
  type: boolean
qos-rule-types:
  description: |
    A list of QoS ``rule_type`` objects.
  in: body
  required: true
  type: array
qos-rules:
  description: |
    A set of zero or more policy rules.
  in: body
  required: true
  type: array
qos-shared:
  description: |
    Indicates whether this policy is shared across
    all projects.
  in: body
  required: true
  type: boolean
qos-shared-request:
  description: |
    Set to ``true`` to share this policy with other
    projects. Default is ``false``.
  in: body
  required: false
  type: boolean
qos_bandwidth_limit_rule-id:
  description: |
    The ID of the QoS Bandwidth limit rule.
  in: body
  required: true
  type: string
qos_dscp_marking_rule-id:
  description: |
    The ID of the QoS DSCP marking rule.
  in: body
  required: true
  type: string
qos_is_default:
  description: |
    If ``true``, the QoS ``policy`` is the default policy.
  in: body
  required: true
  type: boolean
qos_is_default-request:
  description: |
    If ``true``, the QoS ``policy`` is the default policy.
  in: body
  required: false
  type: boolean
qos_minimum_bandwidth_rule-id:
  description: |
    The ID of the QoS minimum bandwidth rule.
  in: body
  required: true
  type: string
qos_minimum_packet_rate_rule-id:
  description: |
    The ID of the QoS minimum packet rate rule.
  in: body
  required: true
  type: string
qos_network_policy_id-floatingip-response:
  description: |
    The ID of the QoS policy of the network where this floating IP is plugged.
  in: body
  required: true
  type: string
qos_network_policy_id-port-response:
  description: |
    The ID of the QoS policy of the network where this port is plugged.
  in: body
  required: true
  type: string
qos_packet_rate_limit_rule-id:
  description: |
    The ID of the QoS packet rate limit rule.
  in: body
  required: true
  type: string
qos_policy-name:
  description: |
      Human-readable name of the resource.
  in: body
  required: false
  type: string
qos_policy_id:
  description: |
    The ID of the QoS policy.
  in: body
  required: true
  type: string
qos_policy_id-floatingip-request:
  description: |
    The ID of the QoS policy associated with the floating IP.
  in: body
  required: false
  type: string
qos_policy_id-floatingip-response:
  description: |
    The ID of the QoS policy associated with the floating IP.
  in: body
  required: true
  type: string
qos_policy_id-network-request:
  description: |
    The ID of the QoS policy associated with the network.
  in: body
  required: false
  type: string
qos_policy_id-network-response:
  description: |
    The ID of the QoS policy associated with the network.
  in: body
  required: true
  type: string
qos_policy_id-port-request:
  description: |
    QoS policy associated with the port.
  in: body
  required: false
  type: string
qos_policy_id-port-response:
  description: |
    The ID of the QoS policy associated with the port.
  in: body
  required: true
  type: string
quota:
  description: |
    A ``quota`` object.
  in: body
  required: true
  type: object
quota-check-limit:
  description: |
    A flag used in the ``quota`` update command. If enabled, the Quota engine
    will first check the resource usage before applying the new quota limit.
  in: body
  required: false
  type: object
quota-detail:
  description: |
    A ``quota`` detail object. Each key in the object corresponds to a resource
    type (``network``, ``port``, etc.) having a quota. The value for each
    resource type is itself an object (the quota set) containing the quota's
    ``used``, ``limit`` and ``reserved`` integer values.
  in: body
  required: true
  type: object
quota-floatingip:
  description: |
    The number of floating IP addresses allowed for
    each project.  A value of ``-1`` means no limit.
  in: body
  required: true
  type: integer
quota-floatingip-request:
  description: |
    The number of floating IP addresses allowed for
    each project.  A value of ``-1`` means no limit.
  in: body
  required: false
  type: integer
quota-network:
  description: |
    The number of networks allowed for each project.
    A value of ``-1`` means no limit.
  in: body
  required: true
  type: integer
quota-network-request:
  description: |
    The number of networks allowed for each project.
    A value of ``-1`` means no limit.
  in: body
  required: false
  type: integer
quota-port:
  description: |
    The number of ports allowed for each project.
    A value of ``-1`` means no limit.
  in: body
  required: true
  type: integer
quota-port-request:
  description: |
    The number of ports allowed for each project.
    A value of ``-1`` means no limit.
  in: body
  required: false
  type: integer
quota-rbac_policy:
  description: |
    The number of role-based access control (RBAC)
    policies for each project. A value of ``-1`` means
    no limit.
  in: body
  required: true
  type: integer
quota-rbac_policy-request:
  description: |
    The number of role-based access control (RBAC)
    policies for each project. A value of ``-1`` means
    no limit.
  in: body
  required: false
  type: integer
quota-router:
  description: |
    The number of routers allowed for each project.
    A value of ``-1`` means no limit.
  in: body
  required: true
  type: integer
quota-router-request:
  description: |
    The number of routers allowed for each project.
    A value of ``-1`` means no limit.
  in: body
  required: false
  type: integer
quota-security_group:
  description: |
    The number of security groups allowed for each
    project. A value of ``-1`` means no limit.
  in: body
  required: true
  type: integer
quota-security_group-request:
  description: |
    The number of security groups allowed for each
    project. A value of ``-1`` means no limit.
  in: body
  required: false
  type: integer
quota-security_group_rule:
  description: |
    The number of security group rules allowed for
    each project. A value of ``-1`` means no limit.
  in: body
  required: true
  type: integer
quota-security_group_rule-request:
  description: |
    The number of security group rules allowed for
    each project. A value of ``-1`` means no limit.
  in: body
  required: false
  type: integer
quota-subnet:
  description: |
    The number of subnets allowed for each project.
    A value of ``-1`` means no limit.
  in: body
  required: true
  type: integer
quota-subnet-request:
  description: |
    The number of subnets allowed for each project.
    A value of ``-1`` means no limit.
  in: body
  required: false
  type: integer
quota-subnetpool:
  description: |
    The number of subnet pools allowed for each
    project. A value of ``-1`` means no limit.
  in: body
  required: true
  type: integer
quota-subnetpool-request:
  description: |
    The number of subnet pools allowed for each
    project. A value of ``-1`` means no limit.
  in: body
  required: false
  type: integer
quotas:
  description: |
    A list of quota objects.
  in: body
  required: true
  type: array
rbac_action:
  description: |
    Action for the RBAC policy which is ``access_as_external`` or
    ``access_as_shared``.
  in: body
  required: true
  type: string
rbac_policy_id:
  description: |
    The ID of the RBAC policy.
  in: body
  required: true
  type: string
remote_address_group_id:
  description: |
    The remote address group UUID to associate with this
    security group rule.
  in: body
  required: true
  type: string
remote_group_id:
  description: |
    The remote group UUID to associate with this
    security group rule. You can specify either the
    ``remote_group_id`` or ``remote_ip_prefix`` attribute in the
    request body.
  in: body
  required: true
  type: string
remote_group_id-request:
  description: |
    The remote group UUID to associate with this
    security group rule. You can specify either the
    ``remote_group_id`` or ``remote_ip_prefix`` attribute in the
    request body.
  in: body
  required: false
  type: string
remote_group_id_template:
  description: |
    The remote group UUID to associate with this
    security group rule. You can specify either the
    ``remote_group_id`` or ``remote_ip_prefix`` attribute in the
    request body. Special word ``PARENT`` can be specified and it means that
    in the real rule created from this template, uuid of the owner Security
    Group will be put as ``remote_group_id``.
  in: body
  required: false
  type: string
remote_ip_prefix:
  description: |
    The remote IP prefix that is matched by this security group rule.
  in: body
  required: true
  type: string
remote_ip_prefix-request:
  description: |
    The remote IP prefix that is matched by this security group rule.
  in: body
  required: false
  type: string
resource:
  description: |
    The resource type of the availability zone. The supported resource types
    are ``network`` and ``router``.
  in: body
  required: true
  type: string
resource-collection:
  description: |
    Collection name of the resource.
  in: body
  required: true
  type: string
resource-href:
  description: |
    Link to the resource.
  in: body
  required: true
  type: string
resource-links:
  description: |
    List of links related to the resource. Each link is a dict with 'href' and 'rel'.
  in: body
  required: true
  type: array
resource-name:
  description: |
    Name of the resource.
  in: body
  required: true
  type: string
resource-rel:
  description: |
    Relationship between link and the resource.
  in: body
  required: true
  type: string
resource_log_id:
  description: |
    The ID of resource log (e.g security group ID).
  in: body
  required: true
  type: string
resource_log_id-request:
  description: |
    The ID of resource log (e.g security group ID).
  in: body
  required: false
  type: string
resource_log_type:
  description: |
    The resource log type such as 'security_group'.
  in: body
  required: true
  type: string
resource_target_log_id:
  description: |
    The ID of resource target log such as port ID.
  in: body
  required: true
  type: string
resource_target_log_id-request:
  description: |
    The ID of resource target log such as port ID.
  in: body
  required: false
  type: string
resource_versions:
  description: |
    version resource
  in: body
  required: true
  type: string
resources:
  description: |
    List of resource objects.
  in: body
  required: true
  type: array
revision_number:
  description: |
    The revision number of the resource.
  in: body
  required: true
  type: integer
route_mode:
  description: |
    The route mode. A valid value is ``static``,
    which is the default.
  in: body
  required: false
  type: string
router:
  description: |
    A ``router`` object.
  in: body
  required: true
  type: object
router-availability_zone_hints:
  description: |
    The availability zone candidates for the router.
    It is available when ``router_availability_zone`` extension is enabled.
  in: body
  required: true
  type: array
router-availability_zone_hints-request:
  description: |
    The availability zone candidates for the router.
    It is available when ``router_availability_zone`` extension is enabled.
  in: body
  required: false
  type: array
router-availability_zones:
  description: |
    The availability zone(s) for the router.
    It is available when ``router_availability_zone`` extension is enabled.
  in: body
  required: true
  type: array
router-conntrack_helpers:
  description: |
    The associated conntrack helper resources for the roter. If the
    router has multiple conntrack helper resources, this field has
    multiple entries. Each entry consists of netfilter conntrack helper
    (``helper``), the network protocol (``protocol``), the network port
    (``port``).
  in: body
  required: true
  type: array
router-destination:
  description: |
    The destination CIDR.
  in: body
  required: true
  type: string
router-distributed:
  description: |
    ``true`` indicates a distributed router.
    It is available when ``dvr`` extension is enabled.
  in: body
  required: true
  type: boolean
router-distributed-request:
  description: |
    ``true`` indicates a distributed router.
    It is available when ``dvr`` extension is enabled.
  in: body
  required: false
  type: boolean
router-enable_default_route_bfd:
  description: |
    ``true`` indicates that Neutron will enable BFD sessions for default routes
    inferred from the external gateway port subnets.
    Available when ``external-gateway-multihoming`` extension is enabled.
  in: body
  required: false
  type: boolean
router-enable_default_route_ecmp:
  description: |
    ``true`` indicates that Neutron will add ECMP default routes if multiple
    are available via different gateway ports.
    Available when ``external-gateway-multihoming`` extension is enabled.
  in: body
  required: false
  type: boolean
router-enable_ndp_proxy:
  description: |
    Enable NDP proxy attribute. ``true`` means NDP proxy is enabled for the
    router, the IPv6 address of internal subnets attached to the router can be
    published to external by create ``ndp_proxy``. ``false`` means NDP proxy is
    disabled, the IPv6 address of internal subnets attached to the router can
    not be published to external by ``ndp_proxy``. It is available when
    ``router-extend-ndp-proxy`` extension is enabled.
  in: body
  required: true
  type: boolean
router-enable_ndp_proxy-request:
  description: |
    Enable NDP proxy attribute. Default is ``false``, To persist this attribute
    value, set the ``enable_ndp_proxy_by_default`` option in the
    ``neutron.conf`` file. It is available when ``router-extend-ndp-proxy``
    extension is enabled.
  in: body
  required: false
  type: boolean
router-enable_snat:
  description: |
    Enable Source NAT (SNAT) attribute.
    ``true`` means Network Address Translation (NAT) is enabled
    for traffic generated by subnets attached to the router
    when the traffic is sent to/received from the external network.
    ``false`` means no NAT is applied for traffic from/to the external network.
    It is available when ``ext-gw-mode`` extension is enabled.
  in: body
  required: true
  type: boolean
router-enable_snat-request:
  description: |
    Enable Source NAT (SNAT) attribute. Default is
    ``true``. To persist this attribute value, set the
    ``enable_snat_by_default`` option in the ``neutron.conf`` file.
    It is available when ``ext-gw-mode`` extension is enabled.
  in: body
  required: false
  type: boolean
router-external_fixed_ips:
  description: |
    IP address(es) of the external gateway of the router.
    It is a list of IP addresses. Each element of the list
    is a dictionary of ``ip_address`` and ``subnet_id``.
  in: body
  required: true
  type: array
router-external_fixed_ips-request:
  description: |
    IP address(es) of the external gateway interface of the router.
    It is a list of IP addresses you would like to assign to the
    external gateway interface. Each element of ths list is
    a dictionary of ``ip_address`` and ``subnet_id``.
  in: body
  required: false
  type: array
router-external_gateway_info:
  description: |
    The external gateway information of the router.
    If the router has an external gateway, this would be a dict with
    ``network_id``, ``enable_snat``, ``external_fixed_ips``,
    ``qos_policy_id``, ``enable_default_route_ecmp`` and
    ``enable_default_route_bfd``.
    Otherwise, this would be ``null``.
  in: body
  required: true
  type: object
router-external_gateway_info-request:
  description: |
    The external gateway information of the router.
    If the router has an external gateway, this would be a dict with
    ``network_id``, ``enable_snat``, ``external_fixed_ips`` and
    ``qos_policy_id``.
    Otherwise, this would be ``null``.
  in: body
  required: false
  type: object
router-external_gateway_ports:
  description: |
    The external gateway ports.
  in: body
  required: true
  type: string
router-external_gateways:
  description: |
    The list of external gateways of the router.
  in: body
  required: true
  type: array
router-flavor_id:
  description: |
    The ID of the flavor associated with the router.
  in: body
  required: true
  type: string
router-flavor_id-optional:
  description: |
    The ID of the flavor associated with the router.
  in: body
  required: false
  type: string
router-floating_ips:
  description: |
    Number of floating IPs
  in: body
  required: true
  type: string
router-gw-port-id:
  description: |
    router gateway port ID
  in: body
  required: true
  type: string
router-ha:
  description: |
    ``true`` indicates a highly-available router.
    It is available when ``l3-ha`` extension is enabled.
  in: body
  required: true
  type: boolean
router-ha-request:
  description: |
    ``true`` indicates a highly-available router.
    It is available when ``l3-ha`` extension is enabled.
  in: body
  required: false
  type: boolean
router-ha-vr-id:
  description: |
    router VR ID.
  in: body
  required: true
  type: string
router-ha_state:
  description: |
    router ha state.
  in: body
  required: true
  type: string
router-handle_internal_only_routers:
  description: |
    Router configuration to handle internal
    only routers.
  in: body
  required: true
  type: boolean
router-id-body:
  description: |
    The ID of the router.
  in: body
  required: true
  type: string
router-interface_driver:
  description: |
    Type of interface driver,
    i.e. ``neutron.agent.linux.interface.OVSInterfaceDriver``.
  in: body
  required: true
  type: string
router-network_id:
  description: |
    Network ID which the router gateway is connected to.
  in: body
  required: true
  type: string
router-network_id-interface:
  description: |
    Network ID which the router interface is connected to.
  in: body
  required: true
  type: string
router-nexthop:
  description: |
    The IP address of the next hop for the corresponding destination.
    The next hop IP address must be a part of one of the subnets to
    which the router interfaces are connected.
  in: body
  required: true
  type: string
router-port_id:
  description: |
    The ID of the port which represents the router interface.
  in: body
  required: true
  type: string
router-port_id-request:
  description: |
    The ID of the port.
    One of ``subnet_id`` or ``port_id`` must be specified.
  in: body
  required: false
  type: string
router-project_id-interface:
  description: |
    The ID of the project who owns the router interface.
  in: body
  required: true
  type: string
router-routes:
  description: |
    The extra routes configuration for L3 router.
    A list of dictionaries with ``destination`` and ``nexthop`` parameters.
    It is available when ``extraroute`` extension is enabled.
  in: body
  required: true
  type: array
router-routes-request:
  description: |
    The extra routes configuration for L3 router.
    A list of dictionaries with ``destination`` and ``nexthop`` parameters.
    It is available when ``extraroute`` extension is enabled.
    Default is an empty list (``[]``).
  in: body
  required: false
  type: array
router-service_type_id:
  description: |
    The ID of the service type associated with the router.
  in: body
  required: true
  type: string
router-service_type_id-request:
  description: |
    The ID of the service type associated with the router.
  in: body
  required: false
  type: string
router-status:
  description: |
    The router status.
  in: body
  required: true
  type: string
router-subnet_id:
  description: |
    The ID of the subnet which the router interface belongs to.
  in: body
  required: true
  type: string
router-subnet_id-request:
  description: |
    The ID of the subnet.
    One of ``subnet_id`` or ``port_id`` must be specified.
  in: body
  required: false
  type: string
router-subnet_ids:
  description: |
    A list of the ID of the subnet which the router interface belongs to.
    The list contains only one member.
  in: body
  required: true
  type: array
router:external:
  description: |
    Defines whether the network may be used for creation of floating IPs. Only
    networks with this flag may be an external gateway for routers.
    The network must have an external routing facility that is not managed by
    the networking service. If the network is updated from external to internal
    the unused floating IPs of this network are automatically deleted when
    extension ``floatingip-autodelete-internal`` is present.
  in: body
  required: true
  type: boolean
router:external-request:
  description: |
    Indicates whether the network has an external routing facility that's not
    managed by the networking service.
  in: body
  required: false
  type: boolean
router_ids:
  description: |
    A list of IDs for routers that are associated
    with the firewall.
  in: body
  required: false
  type: array
router_ids-response:
  description: |
    A list of IDs for routers that are associated
    with the firewall.
  in: body
  required: true
  type: array
routers:
  description: |
    A list of ``router`` objects.
  in: body
  required: true
  type: array
security_group:
  description: |
    A ``security_group`` object.
  in: body
  required: true
  type: object
security_group-id:
  description: |
    The ID of the security group.
  in: body
  required: true
  type: string
security_group-shared-response:
  description: |
    Indicates whether this security group is shared to the requestor's project.
  in: body
  required: true
  type: boolean
security_group_default_rule:
  description: |
    A ``default_security_group_rule`` object.
  in: body
  required: true
  type: object
security_group_id:
  description: |
    The security group UUID to associate with this
    security group rule.
  in: body
  required: true
  type: string
security_group_rule:
  description: |
    A ``security_group_rule`` object.
  in: body
  required: true
  type: object
security_group_rule-belongs-to-default-sg:
  description: |
    Indicates if the security group rule belongs to the default security
    group of the project or not.
  in: body
  required: true
  type: boolean
security_group_rule-id:
  description: |
    The ID of the security group rule.
  in: body
  required: true
  type: string
security_group_rule-security_group_id:
  description: |
    The security group ID to associate with this
    security group rule.
  in: body
  required: true
  type: string
security_group_rules:
  description: |
    A list of ``security_group_rule`` objects.
    Refer to :ref:`Security group rules <security_group_rules>` for details.
  in: body
  required: true
  type: array
security_groups:
  description: |
    One or more security group UUIDs.
  in: body
  required: false
  type: array
security_groups-obj:
  description: |
    A list of ``security_group`` objects.
  in: body
  required: true
  type: array
segment_id:
  description: |
    The UUID of the segment.
  in: body
  required: true
  type: string
segmentation_id:
  description: |
    The segmentation ID for the subport.
  in: body
  required: false
  type: integer
segmentation_type:
  description: |
    The segmentation type for the subport. Possible values include ``vlan``
    and ``inherit``. When ``inherit`` is specified, a port gets its
    segmentation type from the network its connected to.
  in: body
  required: true
  type: string
segmentation_type-request:
  description: |
    The segmentation type for the subport. Possible values include ``vlan``
    and ``inherit``. When ``inherit`` is specified, a port gets its
    segmentation type from the network its connected to.
  in: body
  required: false
  type: string
segments:
  description: |
    A list of provider ``segment`` objects.
  in: body
  required: true
  type: array
segments-request:
  description: |
    A list of provider ``segment`` objects.
  in: body
  required: false
  type: array
service_profile:
  description: |
    A ``service_profile`` object.
  in: body
  required: true
  type: object
service_profile-description:
  description: |
    The human-readable description for the service profile.
  in: body
  required: true
  type: string
service_profile-description-request:
  description: |
    The human-readable description for the service profile.
  in: body
  required: false
  type: string
service_profile-driver:
  description: |
    Provider driver to use for this profile.
  in: body
  required: true
  type: string
service_profile-driver-request:
  description: |
    Provider driver to use for this profile.
  in: body
  required: false
  type: string
service_profile-enabled:
  description: |
    Indicates whether this service profile is enabled or not.
    Default is ``true``.
  in: body
  required: true
  type: boolean
service_profile-enabled-request:
  description: |
    Indicates whether this service profile is enabled or not.
    Default is ``true``.
  in: body
  required: false
  type: boolean
service_profile-id:
  description: |
    The UUID of the service profile.
  in: body
  required: true
  type: string
service_profile-metainfo:
  description: |
    JSON-formatted meta information of the service profile.
  in: body
  required: true
  type: string
service_profile-metainfo-request:
  description: |
    JSON-formatted meta information of the service profile.
  in: body
  required: false
  type: string
service_profiles:
  description: |
    Service profile UUIDs associated with this
    flavor.
  in: body
  required: true
  type: array
service_providers:
  description: |
    A list of ``service_provider`` objects.
  in: body
  required: true
  type: array
service_type:
  description: |
    The service type, which is ``CORE``, ``DUMMY``,
    ``FIREWALL``, ``FLAVORS``, ``L3_ROUTER_NAT``, ``METERING``, ``QOS``,
    or ``VPN``.
  in: body
  required: true
  type: string
shared:
  description: |
    Indicates whether this resource is shared across all projects.
    By default, only administrative users can change this value.
  in: body
  required: false
  type: boolean
shared-response:
  description: |
    Indicates whether this resource is shared across all projects.
  in: body
  required: true
  type: boolean
source_firewall_group_id-body-optional:
  description: |
    The ID  of the remote source firewall group.
  in: body
  required: no
  type: string
source_firewall_group_id-body-required:
  description: |
    The ID  of the remote source firewall group.
  in: body
  required: true
  type: string
source_ip_address:
  description: |
    The source IPv4 or IPv6 address or CIDR.
  in: body
  required: false
  type: string
source_port:
  description: |
    The source port or port range.  A valid value is
    a port number, as an integer, or a port range, in the format of a
    ``:`` separated range. For a port range, include both ends of the
    range. For example, ``80:90``.
  in: body
  required: true
  type: string
source_port-response:
  description: |
    The source port or port range.  A valid value is
    a port number, as an integer, or a port range, in the format of a
    ``:`` separated range. For a port range, include both ends of the
    range. For example, ``80:90``.
  in: body
  required: false
  type: string
source_port_taf:
  description: |
    Source port to which the Tap Flow is connected.
  in: body
  required: true
  type: string
started_at:
  description: |
    Time at which the agent was started.
  in: body
  required: true
  type: string
state:
  description: |
    The state of the availability zone, which is either ``available`` or
    ``unavailable``.
  in: body
  required: true
  type: string
stateful_enabled:
  description: |
    Indicates if the security group is stateful or stateless.
  in: body
  required: false
  type: boolean
status_description:
  description: |
    Human-readable description of the status.
  in: body
  required: true
  type: string
status_taf:
  description: |
    Human-readable description of the status for tap flow.
  in: body
  required: true
  type: string
status_tas:
  description: |
    Human-readable description of the status for tap service.
  in: body
  required: true
  type: string
sub_ports:
  description: |
    A list of ports associated with the trunk.
  in: body
  required: true
  type: array
subnet-allocation_pools:
  description: |
    Allocation pools with ``start`` and ``end`` IP addresses
    for this subnet.
  in: body
  required: true
  type: array
subnet-allocation_pools-request:
  description: |
    Allocation pools with ``start`` and ``end`` IP addresses
    for this subnet. If allocation_pools are not specified, OpenStack
    Networking automatically allocates pools for covering all IP addresses
    in the CIDR, excluding the address reserved for the subnet gateway by
    default.
  in: body
  required: false
  type: array
subnet-dns_nameservers:
  description: |
    List of dns name servers associated with the subnet.
  in: body
  required: true
  type: array
subnet-dns_nameservers-request:
  description: |
    List of dns name servers associated with the subnet. Default is an
    empty list.
  in: body
  required: false
  type: array
subnet-dns_publish_fixed_ip:
  description: |
    Whether to publish DNS records for IPs from this subnet.
  in: body
  required: true
  type: boolean
subnet-dns_publish_fixed_ip-request:
  description: |
    Whether to publish DNS records for IPs from this subnet. Default
    is ``false``.
  in: body
  required: false
  type: boolean
subnet-enable_dhcp:
  description: |
    Indicates whether dhcp is enabled or disabled
    for the subnet.
  in: body
  required: true
  type: boolean
subnet-enable_dhcp-request:
  description: |
    Indicates whether dhcp is enabled or disabled
    for the subnet. Default is ``true``.
  in: body
  required: false
  type: boolean
subnet-gateway_ip:
  description: |
    Gateway IP of this subnet. If the value is ``null`` that implies no
    gateway is associated with the subnet.
  in: body
  required: true
  type: string
subnet-gateway_ip-request:
  description: |
    Gateway IP of this subnet. If the value is ``null`` that implies no
    gateway is associated with the subnet. If the gateway_ip is not
    specified, OpenStack Networking allocates an address from the CIDR
    for the gateway for the subnet by default.
  in: body
  required: false
  type: string
subnet-host_routes:
  description: |
    Additional routes for the subnet. A list of dictionaries with
    ``destination`` and ``nexthop`` parameters.
  in: body
  required: true
  type: array
subnet-host_routes-request:
  description: |
    Additional routes for the subnet. A list of dictionaries with
    ``destination`` and ``nexthop`` parameters. Default value is
    an empty list.
  in: body
  required: false
  type: array
subnet-id-body:
  description: |
    The ID of the subnet.
  in: body
  required: true
  type: string
subnet-ip_version:
  description: |
    The IP protocol version. Value is ``4`` or ``6``.
  in: body
  required: true
  type: integer
subnet-ipv6_address_mode:
  description: |
    The IPv6 address modes specifies mechanisms for assigning IP addresses.
    Value is ``slaac``, ``dhcpv6-stateful``, ``dhcpv6-stateless`` or ``null``.
  in: body
  required: true
  type: string
subnet-ipv6_address_mode-request:
  description: |
    The IPv6 address modes specifies mechanisms for assigning IP addresses.
    Value is ``slaac``, ``dhcpv6-stateful``, ``dhcpv6-stateless``.
  in: body
  required: false
  type: string
subnet-ipv6_ra_mode:
  description: |
    The IPv6 router advertisement specifies whether the networking service
    should transmit ICMPv6 packets, for a subnet. Value is ``slaac``,
    ``dhcpv6-stateful``, ``dhcpv6-stateless`` or ``null``.
  in: body
  required: true
  type: string
subnet-ipv6_ra_mode-request:
  description: |
    The IPv6 router advertisement specifies whether the networking service
    should transmit ICMPv6 packets, for a subnet. Value is ``slaac``,
    ``dhcpv6-stateful``, ``dhcpv6-stateless``.
  in: body
  required: false
  type: string
subnet-name:
  description: |
    Human-readable name of the resource.
  in: body
  required: true
  type: string
subnet-name-request:
  description: |
    Human-readable name of the resource. Default is an empty string.
  in: body
  required: false
  type: string
subnet-name-update-request:
  description: |
    Human-readable name of the resource.
  in: body
  required: false
  type: string
subnet-network_id:
  description: |
    The ID of the network to which the subnet belongs.
  in: body
  required: true
  type: string
subnet-obj:
  description: |
    A ``subnet`` object.
  in: body
  required: true
  type: object
subnet-prefixlen-request:
  description: |
    The prefix length to use for subnet allocation from a subnet pool.
    If not specified, the ``default_prefixlen`` value of the subnet pool
    will be used.
  in: body
  required: false
  type: integer
subnet-segment_id:
  description: |
    The ID of a network segment the subnet is associated with.
    It is available when ``segment`` extension is enabled.
  in: body
  required: true
  type: string
subnet-segment_id-request:
  description: |
    The ID of a network segment the subnet is associated with.
    It is available when ``segment`` extension is enabled.
  in: body
  required: false
  type: string
subnet-service_types:
  description: |
    The service types associated with the subnet.
  in: body
  required: true
  type: array
subnet-service_types-optional:
  description: |
    The service types associated with the subnet.
  in: body
  required: false
  type: array
subnet-subnetpool_id:
  description: |
    The ID of the subnet pool associated with the subnet.
  in: body
  required: true
  type: string
subnet-subnetpool_id-request:
  description: |
    The ID of the subnet pool associated with the subnet.
  in: body
  required: false
  type: string
subnet_id:
  description: |
    If you specify only a subnet UUID, OpenStack
    Networking allocates an available IP from that subnet to the port.
    If you specify both a subnet UUID and an IP address, OpenStack
    Networking tries to allocate the address to the port.
  in: body
  required: false
  type: string
subnet_ip_availability:
  description: |
    A list of dictionaries showing subnet IP availability.
    It contains information for every subnet associated to the network.
  in: body
  required: true
  type: array
subnet_name:
  description: |
    The name of the subnet.
  in: body
  required: true
  type: string
subnetpool:
  description: |
    A ``subnetpool`` object.
  in: body
  required: true
  type: object
subnetpool_id_body:
  description: |
    The ID of the subnet pool.
  in: body
  required: true
  type: string
subnetpool_is_default:
  description: |
    The subnetpool is default pool or not.
  in: body
  required: true
  type: boolean
subnetpool_is_default-request:
  description: |
    The subnetpool is default pool or not.
  in: body
  required: false
  type: boolean
subnetpools:
  description: |
    A list of ``subnetpool`` objects.
  in: body
  required: true
  type: array
subnets-obj:
  description: |
    A list of ``subnet`` objects.
  in: body
  required: true
  type: array
taf_id:
  description: |
    The id for the Tap Flow.
  in: body
  required: true
  type: string
taf_name:
  description: |
    The name for the Tap Flow.
  in: body
  required: true
  type: string
tags:
  description: |
    The list of tags on the resource.
  in: body
  required: true
  type: array
tap_service_id:
  description: |
    Tap Service to which the Tap Flow belongs.
  in: body
  required: true
  type: string
target_tenant:
  description: |
    The ID of the tenant to which the RBAC policy will be enforced.
  in: body
  required: true
  type: string
tas_id:
  description: |
    Tha id for the Tap Service.
  in: body
  required: true
  type: string
tas_name:
  description: |
    Tha name for the Tap Flow.
  in: body
  required: true
  type: string
topic:
  description: |
    The name of AMQP topic the agent is listening on such as
    ``dhcp_agent``. A special value of ``N/A`` is used when the
    agent doesn't use an AMQP topic.
  in: body
  required: true
  type: string
total_ips:
  description: |
    The total number of IP addresses in a network.
  in: body
  required: true
  type: integer
transform_protocol:
  description: |
    The transform protocol. A valid value is ``ESP``,
    ``AH``, or ``AH- ESP``. Default is ``ESP``.
  in: body
  required: false
  type: string
trunk-status:
  description: |
    The status for the trunk. Possible values are  ``ACTIVE``,
    ``DOWN``, ``BUILD``, ``DEGRADED``, and ``ERROR``.
  in: body
  required: true
  type: string
trunk_details:
  description: |
    The details about the trunk.
  in: body
  required: false
  type: dict
trunk_port_id:
  description: |
    The ID of the parent port.
  in: body
  required: true
  type: string
units:
  description: |
    The units for the lifetime of the security
    association. The lifetime consists of a unit and integer value.
    You can omit either the unit or value portion of the lifetime.
    Default unit is seconds and default value is 3600.
  in: body
  required: false
  type: string
updated:
  description: |
    The date and time stamp when the extension was
    last updated.
  in: body
  required: true
  type: string
updated_at_resource:
  description: |
    Time at which the resource has been updated (in UTC ISO8601 format).
  in: body
  required: true
  type: string
use_default_subnetpool:
  description: |
    Whether to allocate this subnet from the default subnet pool.
  in: body
  required: false
  type: boolean
used_in_default_sg:
  description: |
    Whether this security group rule template should be used in default
    security group created automatically for each new project. Default value
    is ``False``.
  in: body
  required: false
  type: boolean
used_in_default_sg-query:
  description: |
    Fiter by security group rule templates which should be used in default
    security group created automatically for each new project.
  in: body
  required: false
  type: boolean
used_in_non_default_sg:
  description: |
    Whether this security group rule template should be used in custom
    security groups created by project user. Default value is ``True``.
  in: body
  required: false
  type: boolean
used_in_non_default_sg-query:
  description: |
    Fiter by security group rule templates which should be used in custom
    security groups created by project users.
  in: body
  required: false
  type: boolean
used_ips:
  description: |
    The number of used IP addresses of all subnets in
    a network.
  in: body
  required: true
  type: integer
value:
  description: |
    The lifetime value, as a positive integer. The
    lifetime consists of a unit and integer value. You can omit either
    the unit or value portion of the lifetime. Default unit is seconds
    and default value is 3600.
  in: body
  required: false
  type: integer
version-href:
  description: |
    Link to the API.
  in: body
  required: true
  type: string
version-id:
  description: |
    Version of the API.
  in: body
  required: true
  type: string
version-links:
  description: |
    List of version links. Each link is a dict with 'href' and 'rel'.
  in: body
  required: true
  type: array
version-rel:
  description: |
    Relationship of link with the version.
  in: body
  required: true
  type: string
version-status:
  description: |
    Status of the API, which can be ``CURRENT``, ``STABLE`` or ``DEPRECATED``.
  in: body
  required: true
  type: string
versions:
  description: |
    List of versions.
  in: body
  required: true
  type: array
vlan-filter_taf:
  description: |
    VLAN Ids to be mirrored in the form of range string.
  in: body
  required: true
  type: boolean
vlan_transparent:
  description: |
    Indicates the VLAN transparency mode of the network, which is
    VLAN transparent (``true``) or not VLAN transparent (``false``).
  in: body
  required: true
  type: boolean
vlan_transparent-request:
  description: |
    Indicates the VLAN transparency mode of the network, which is
    VLAN transparent (``true``) or not VLAN transparent (``false``).
  in: body
  required: false
  type: boolean
vpn_endpoint_type:
  description: |
    The type of the endpoints in the group. A valid
    value is ``subnet``, ``cidr``, ``network``, ``router``, or
    ``vlan``. Only ``subnet`` and ``cidr`` are supported
    at this moment.
  in: body
  required: true
  type: string
vpnservice:
  description: |
    A ``vpnservice`` object.
  in: body
  required: true
  type: object
vpnservice-status:
  description: |
    Indicates whether IPsec VPN service is currently
    operational. Values are ``ACTIVE``, ``DOWN``, ``BUILD``, ``ERROR``,
    ``PENDING_CREATE``, ``PENDING_UPDATE``, or ``PENDING_DELETE``.
  in: body
  required: true
  type: string
vpnservice_id-body-request:
  description: |
    The ID of the VPN service.
  in: body
  required: false
  type: string
vpnservice_id-body-response:
  description: |
    The ID of the VPN service.
  in: body
  required: true
  type: string
vpnservices:
  description: |
    A list of VPN service objects.
  in: body
  required: true
  type: array
