openapi: 3.0.3
info:
  title: Open Traffic Generator API
  description: "Open Traffic Generator API defines a model-driven, vendor-neutral\
    \ and standard \ninterface for emulating layer 2-7 network devices and generating\
    \ test traffic.\n\nContributions can be made in the following ways:\n- [open an\
    \ issue](https://github.com/open-traffic-generator/models/issues) in the models\
    \ repository\n- [fork the models repository](https://github.com/open-traffic-generator/models)\
    \ and submit a PR"
  version: 1.29.0
  contact:
    url: https://github.com/open-traffic-generator/models
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
  x-model-guide: https://github.com/open-traffic-generator/models/blob/master/MODEL-GUIDE.md
servers:
- url: /
paths:
  /config:
    post:
      tags:
      - Configuration
      operationId: set_config
      description: |-
        Sets configuration resources on the traffic generator.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Config'
      responses:
        '200':
          $ref: '#/components/responses/Success'
          x-field-uid: 1
        default:
          $ref: '#/components/responses/Failure'
          x-field-uid: 2
    get:
      tags:
      - Configuration
      operationId: get_config
      responses:
        '200':
          description: |-
            Config response from the traffic generator
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Config'
          x-field-uid: 1
        default:
          $ref: '#/components/responses/Failure'
          x-field-uid: 2
    patch:
      tags:
      - Configuration
      operationId: update_config
      description: |-
        Updates specific attributes of resources configured on the traffic generator. The fetched configuration shall reflect the updates applied successfully.
        The Response.Warnings in the Success response is available for implementers to disclose additional information about a state change including any implicit changes that are outside the scope of the state change.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Config.Update'
      responses:
        '200':
          $ref: '#/components/responses/Success'
          x-field-uid: 1
        default:
          $ref: '#/components/responses/Failure'
          x-field-uid: 2
  /control/state:
    post:
      tags:
      - Control
      operationId: set_control_state
      description: |-
        Sets the operational state of configured resources.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Control.State'
      responses:
        '200':
          $ref: '#/components/responses/Success'
          x-field-uid: 1
        default:
          $ref: '#/components/responses/Failure'
          x-field-uid: 2
  /control/action:
    post:
      tags:
      - Control
      operationId: set_control_action
      description: |-
        Triggers actions against configured resources.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Control.Action'
      responses:
        '200':
          description: |-
            Response for actions triggered against configured resources.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Control.Action.Response'
          x-field-uid: 1
        default:
          $ref: '#/components/responses/Failure'
          x-field-uid: 2
  /monitor/metrics:
    description: |-
      Metrics API
    post:
      tags:
      - Monitor
      operationId: get_metrics
      requestBody:
        description: |-
          Request to traffic generator for metrics of choice
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Metrics.Request'
      responses:
        '200':
          description: |-
            Response from traffic generator for chosen metrics
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metrics.Response'
          x-field-uid: 1
        default:
          $ref: '#/components/responses/Failure'
          x-field-uid: 2
  /monitor/states:
    description: |-
      States API
    post:
      tags:
      - Monitor
      operationId: get_states
      requestBody:
        description: |-
          Request to traffic generator for states of choice
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/States.Request'
      responses:
        '200':
          description: |-
            Response from traffic generator for chosen states
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/States.Response'
          x-field-uid: 1
        default:
          $ref: '#/components/responses/Failure'
          x-field-uid: 2
  /monitor/capture:
    description: |-
      Capture results API
    post:
      tags:
      - Monitor
      operationId: get_capture
      requestBody:
        description: |-
          Capture results request to the traffic generator.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Capture.Request'
      responses:
        '200':
          description: |-
            Capture results response from the traffic generator.
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
          x-field-uid: 1
        default:
          $ref: '#/components/responses/Failure'
          x-field-uid: 2
  /capabilities/version:
    get:
      tags:
      - Capabilities
      operationId: get_version
      responses:
        '200':
          description: |-
            Version details from API server
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Version'
          x-field-uid: 1
        default:
          $ref: '#/components/responses/Failure'
          x-field-uid: 2
components:
  responses:
    Success:
      description: "The request has succeeded with no application content but the\
        \ server \nmay return a list of detailed warnings."
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Warning'
    Failure:
      description: |-
        The request did not succeed and server has responded with error details.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    Config:
      description: |-
        A container for all models that are part of the configuration.
      type: object
      properties:
        ports:
          description: |-
            The ports that will be configured on the traffic generator.
          type: array
          items:
            $ref: '#/components/schemas/Port'
          x-field-uid: 1
        lags:
          description: |-
            The LAGs that will be configured on the traffic generator.
          type: array
          items:
            $ref: '#/components/schemas/Lag'
          x-field-uid: 2
        layer1:
          description: |-
            The layer1 settings that will be configured on the traffic generator.
            Since layer1 settings usually vary across variety of test ports, these
            most likely won't be portable.
          type: array
          items:
            $ref: '#/components/schemas/Layer1'
          x-field-uid: 3
        captures:
          description: |-
            The capture settings that will be configured on the traffic generator.
          type: array
          items:
            $ref: '#/components/schemas/Capture'
          x-field-uid: 4
        devices:
          description: "The emulated devices that will be configured on the traffic\
            \ generator.\nEach device contains configurations for network interfaces\
            \ and \nprotocols running on top of those interfaces."
          type: array
          items:
            $ref: '#/components/schemas/Device'
          x-field-uid: 5
        flows:
          description: |-
            The flows that will be configured on the traffic generator.
          type: array
          items:
            $ref: '#/components/schemas/Flow'
          x-field-uid: 6
        events:
          $ref: '#/components/schemas/Event'
          x-field-uid: 7
        options:
          $ref: '#/components/schemas/Config.Options'
          x-field-uid: 8
        lldp:
          description: |-
            LLDP protocol that will be configured on traffic generator.
          type: array
          items:
            $ref: '#/components/schemas/Lldp'
          x-field-uid: 9
        stateful_flows:
          $ref: '#/components/schemas/StatefulFlow'
          x-field-uid: 10
    Config.Options:
      description: |-
        Global configuration options.
      type: object
      properties:
        port_options:
          $ref: '#/components/schemas/Port.Options'
          x-field-uid: 1
        protocol_options:
          $ref: '#/components/schemas/Protocol.Options'
          x-field-uid: 2
        per_port_options:
          type: array
          items:
            $ref: '#/components/schemas/PerPort.Options'
          x-field-uid: 3
    Port:
      description: |-
        An abstract test port.
      type: object
      properties:
        location:
          description: |-
            The location of a test port.  It is the endpoint where packets will emit from.
            Test port locations can be the following:
              - physical appliance with multiple ports
              - physical chassis with multiple cards and ports
              - local interface
              - virtual machine, docker container, kubernetes cluster

            The test port location format is implementation specific. Use the /results/capabilities API to determine what formats an  implementation supports for the location property.
            Get the configured location state by using the /results/port API.
          type: string
          x-field-uid: 1
        name:
          x-field-uid: 2
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
      required:
      - name
    Port.Options:
      description: "Common port options that apply to all configured Port objects. "
      type: object
      properties:
        location_preemption:
          description: |-
            Preempt all the test port locations as defined by the  Port.Port.properties.location. If the test ports defined by their location values are in use and  this value is true, the test ports will be preempted.
          type: boolean
          default: false
          x-field-uid: 1
    Lag:
      description: |-
        The container for LAG (ports group) - aggregation of multiple LAG members (ports)
      type: object
      properties:
        ports:
          type: array
          items:
            $ref: '#/components/schemas/Lag.Port'
          minItems: 1
          maxItems: 32
          x-field-uid: 1
        protocol:
          $ref: '#/components/schemas/Lag.Protocol'
          x-field-uid: 2
        min_links:
          description: |-
            Specifies the mininum number of member interfaces that must be active for the aggregate interface to be available.
            If the aggregate interface is not available due to min-links criterion not being met, LACPDUs continue to be transmitted and received by the member interfaces if LACP is enabled, but other PDUs are not transmitted or received.
          type: integer
          format: uint32
          maximum: 32
          default: 1
          x-field-uid: 3
        name:
          x-field-uid: 4
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
      required:
      - name
    Lag.Port:
      description: |-
        The container for a port's ethernet interface and LAG protocol settings
      type: object
      required:
      - port_name
      - ethernet
      properties:
        port_name:
          description: "The name of a port object that will be part of the LAG. \n\
            \nx-constraint:\n- /components/schemas/Port/properties/name\n"
          type: string
          x-constraint:
          - /components/schemas/Port/properties/name
          x-field-uid: 1
        lacp:
          $ref: '#/components/schemas/Lag.Port.Lacp'
          x-field-uid: 2
        ethernet:
          $ref: '#/components/schemas/Device.EthernetBase'
          x-field-uid: 3
    Lag.Protocol:
      type: object
      properties:
        choice:
          description: |-
            The type of controlling protocol for the LAG (ports group).
          type: string
          default: lacp
          x-field-uid: 1
          x-enum:
            lacp:
              x-field-uid: 1
            static:
              x-field-uid: 2
          enum:
          - lacp
          - static
        lacp:
          $ref: '#/components/schemas/Lag.Protocol.Lacp'
          x-field-uid: 2
        static:
          $ref: '#/components/schemas/Lag.Protocol.Static'
          x-field-uid: 3
    Lag.Protocol.Static:
      description: |-
        The container for static link aggregation protocol settings.
      type: object
      properties:
        lag_id:
          description: |-
            The static lag id
          type: integer
          format: uint32
          maximum: 65535
          default: 0
          x-field-uid: 1
    Lag.Protocol.Lacp:
      description: |-
        The container for link aggregation control protocol settings of a LAG (ports group).
      type: object
      properties:
        actor_system_id:
          description: |-
            The actor system id
          type: string
          format: mac
          default: 00:00:00:00:00:00
          x-field-uid: 1
        actor_system_priority:
          description: |-
            The actor system priority
          type: integer
          format: uint32
          maximum: 65535
          default: 0
          x-field-uid: 2
        actor_key:
          description: |-
            The actor key
          type: integer
          format: uint32
          maximum: 65535
          default: 0
          x-field-uid: 3
    Lag.Port.Lacp:
      description: |-
        The container for link aggregation control protocol settings of a LAG member (port).
      type: object
      properties:
        actor_port_number:
          description: |-
            The actor port number
          type: integer
          format: uint32
          maximum: 65535
          default: 0
          x-field-uid: 1
        actor_port_priority:
          description: |-
            The actor port priority
          type: integer
          format: uint32
          maximum: 65535
          default: 1
          x-field-uid: 2
        actor_activity:
          description: |-
            Sets the value of LACP actor activity as either passive or active.
            Passive indicates the port's preference for not transmitting  LACPDUs unless its partner's control is Active.
            Active indicates the port's preference to participate in the  protocol regardless of the partner's control value.
          type: string
          default: active
          x-field-uid: 3
          x-enum:
            passive:
              x-field-uid: 1
            active:
              x-field-uid: 2
          enum:
          - passive
          - active
        lacpdu_periodic_time_interval:
          x-constants:
            fast: 1
            slow: 30
            auto: 0
          description: |-
            This field defines how frequently LACPDUs are sent to the link partner
          type: integer
          format: uint32
          maximum: 65535
          default: 0
          x-field-uid: 4
        lacpdu_timeout:
          x-constants:
            short: 3
            long: 90
            auto: 0
          description: |-
            This timer is used to detect whether received protocol information has expired
          type: integer
          format: uint32
          maximum: 65535
          default: 0
          x-field-uid: 5
    Device.EthernetBase:
      description: |-
        Base Ethernet interface.
      type: object
      required:
      - name
      properties:
        mac:
          description: |-
            Media Access Control address.The implementation should ensure that the 'mac' field is explicitly configured by the user for  all types of interfaces as denoted by 'connection' attribute except 'simulated_link' where 'mac' is not mandatory.
          type: string
          format: mac
          x-field-uid: 1
        mtu:
          description: |-
            Maximum Transmission Unit.
          type: integer
          format: uint32
          maximum: 65535
          default: 1500
          x-field-uid: 2
        vlans:
          description: |-
            List of VLANs
          type: array
          items:
            $ref: '#/components/schemas/Device.Vlan'
          x-field-uid: 3
        name:
          x-field-uid: 4
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
    Device.Ethernet:
      description: |-
        An Ethernet interface with IPv4 and IPv6 addresses. The implementation should ensure that the 'mac' field is explicitly configured by the user for  all types of interfaces as denoted by 'connection' attribute except 'simulated_link' where MAC is not mandatory.
      type: object
      properties:
        connection:
          description: |-
            Device connection to physical, LAG or another device.
          $ref: '#/components/schemas/Ethernet.Connection'
          x-field-uid: 2
        ipv4_addresses:
          description: "List of IPv4 addresses and their gateways. "
          type: array
          items:
            $ref: '#/components/schemas/Device.Ipv4'
          x-field-uid: 3
        ipv6_addresses:
          description: |-
            List of global IPv6 addresses and their gateways.
            The Link Local IPv6 address will be automatically generated.
          type: array
          items:
            $ref: '#/components/schemas/Device.Ipv6'
          x-field-uid: 4
        mac:
          x-field-uid: 5
          description: |-
            Media Access Control address.The implementation should ensure that the 'mac' field is explicitly configured by the user for  all types of interfaces as denoted by 'connection' attribute except 'simulated_link' where 'mac' is not mandatory.
          type: string
          format: mac
        mtu:
          x-field-uid: 6
          description: |-
            Maximum Transmission Unit.
          type: integer
          format: uint32
          maximum: 65535
          default: 1500
        vlans:
          x-field-uid: 7
          description: |-
            List of VLANs
          type: array
          items:
            $ref: '#/components/schemas/Device.Vlan'
        name:
          x-field-uid: 8
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
        dhcpv4_interfaces:
          description: "List of DHCPv4 Clients Configuration. "
          type: array
          items:
            $ref: '#/components/schemas/Device.Dhcpv4client'
          x-field-uid: 9
        dhcpv6_interfaces:
          description: |-
            List of DHCPv6 Clients Configuration.
          type: array
          items:
            $ref: '#/components/schemas/Device.Dhcpv6client'
          x-field-uid: 10
      required:
      - name
    Ethernet.Connection:
      description: |-
        Ethernet interface connection to a port, LAG, VXLAN tunnel or a Simulated Internal Link used to create simulated topologies behind an emulated router.
      type: object
      properties:
        choice:
          description: |-
            port_name, lag_name, vxlan_name or simulated_link
          type: string
          x-field-uid: 1
          x-enum:
            port_name:
              x-field-uid: 1
            lag_name:
              x-field-uid: 2
            vxlan_name:
              x-field-uid: 3
            simulated_link:
              x-field-uid: 4
          enum:
          - port_name
          - lag_name
          - vxlan_name
          - simulated_link
        port_name:
          description: |
            Name of the port that the Ethernet interface is configured on.

            x-constraint:
            - /components/schemas/Port/properties/name
          type: string
          x-constraint:
          - /components/schemas/Port/properties/name
          x-field-uid: 2
        lag_name:
          description: |
            Name of the LAG that the Ethernet interface is configured on.

            x-constraint:
            - /components/schemas/Lag/properties/name
          type: string
          x-constraint:
          - /components/schemas/Lag/properties/name
          x-field-uid: 3
        vxlan_name:
          description: |
            Name of the VXLAN instance (or VXLAN tunnel) that this Ethernet interface is connected to.

            x-constraint:
            - #/components/schemas/Vxlan.V4Tunnel/properties/name
            - #/components/schemas/Vxlan.V6Tunnel/properties/name
          type: string
          x-constraint:
          - '#/components/schemas/Vxlan.V4Tunnel/properties/name'
          - '#/components/schemas/Vxlan.V6Tunnel/properties/name'
          x-field-uid: 4
        simulated_link:
          x-field-uid: 5
          $ref: '#/components/schemas/Ethernet.SimulatedLink'
    Ethernet.SimulatedLink:
      description: |-
        Details of the internal link which can be used to create simulated device topologies behind an emulated router. MAC, VLAN and MTU information for the internal links are not used for purposes of emulating Simulated Topologies ( e.g. by ISIS Emulated Router behind which this is configured )
      type: object
      properties:
        remote_simulated_link:
          type: string
          description: "Name of the remote end of the simulated interface which also\
            \ must be a simulated_link on a device which might be acting either as\
            \ an unconnected device in a simulated topology \n( all ethernet links\
            \ of type simulated_link ) or an emulated device connected to the Device\
            \ Under Test (has at atleast one ethernet interface with connection to\
            \ the port or\n lag connected to the DUT)\n\nx-constraint:\n- #/components/schemas/Device.Ethernet/properties/name\n"
          x-constraint:
          - '#/components/schemas/Device.Ethernet/properties/name'
          x-field-uid: 1
        link_type:
          description: "By default, simulated links are treated as Primary links ,\
            \ which means that the intention is for connected device to advertise\
            \ this and full topology of devices connected to it.\ne.g. when advertised\
            \ as ISIS Simulated Topology.\n\nAll simulated links inside one topology\
            \ subset would normally can point to only other unconnected devices in\
            \ the same topology or to the 'root' emulated device.\nIf a link is designated\
            \ as secondary , only that link information will be advertised by the\
            \ IGP e.g. ISIS , and not the entire topology behind it.\nThe optional\
            \ secondary option allows emulation of external link scenarios where a\
            \ simulated device (e.g. part of a ISIS simulated topology ) is advertised\
            \ as reachable part of the topology \nby the emulated router behind which\
            \ this is configured , as well as the other end of the secondary link\
            \ which could be \n- 1) either a simulated device behind a different emulated\
            \ router.\n- 2) or an emulated router on same or different port.\nThis\
            \ allows emulation of scenarios where one device/router is emulated to\
            \ be reachable from different Emulated Routers connected to the Device\
            \ Under Test. (e.g. for FRR scenarios)\n\nIf an implementation does not\
            \ support multiple primary links from same simulated topology i.e. full\
            \ topology advertised via multiple emulated routers, it should return\
            \ an error \nduring set_config operation with such a topology."
          type: string
          default: primary
          x-enum:
            primary:
              x-field-uid: 1
            secondary:
              x-field-uid: 2
          x-field-uid: 2
          enum:
          - primary
          - secondary
    Device.Vlan:
      description: |-
        Emulated VLAN protocol.
      type: object
      properties:
        tpid:
          description: |-
            Tag protocol identifier
          type: string
          default: x8100
          x-field-uid: 1
          x-enum:
            x8100:
              x-field-uid: 1
            x88A8:
              x-field-uid: 2
            x9100:
              x-field-uid: 3
            x9200:
              x-field-uid: 4
            x9300:
              x-field-uid: 5
          enum:
          - x8100
          - x88A8
          - x9100
          - x9200
          - x9300
        priority:
          description: |-
            Priority code point
          type: integer
          format: uint32
          maximum: 7
          default: 0
          x-field-uid: 2
        id:
          description: |-
            VLAN identifier
          type: integer
          format: uint32
          maximum: 4095
          default: 1
          x-field-uid: 3
        name:
          x-field-uid: 4
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
      required:
      - name
    Device.Ipv4:
      description: |-
        An IPv4 interface with gateway
      type: object
      required:
      - gateway
      - address
      - name
      properties:
        gateway:
          description: |-
            The IPv4 address of the gateway
          type: string
          format: ipv4
          x-field-uid: 1
        gateway_mac:
          $ref: '#/components/schemas/Device.Ipv4GatewayMAC'
          x-field-uid: 2
        address:
          x-field-uid: 3
          description: |-
            The IPv4 address
          type: string
          format: ipv4
        prefix:
          x-field-uid: 4
          description: |-
            The prefix of the IPv4 address.
          type: integer
          format: uint32
          minimum: 1
          maximum: 32
          default: 24
        name:
          x-field-uid: 5
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
    Device.Ipv4Loopback:
      description: |-
        An IPv4 Loopback interface.
      type: object
      required:
      - eth_name
      - name
      properties:
        eth_name:
          description: |
            The unique name of the Ethernet interface behind which this Loopback  interface will be created.

            x-constraint:
            - /components/schemas/Device.Ethernet/properties/name
          type: string
          x-constraint:
          - /components/schemas/Device.Ethernet/properties/name
          x-field-uid: 1
        address:
          description: |-
            The IPv4 Loopback address with prefix length of 32.
          type: string
          format: ipv4
          default: 0.0.0.0
          x-field-uid: 2
        name:
          x-field-uid: 3
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
    Device.Ipv4GatewayMAC:
      description: |-
        By default auto(resolved gateway mac) is set.  Setting a value would mean that ARP will not be used for learning MAC of connected device. The user-configured MAC address will be used for auto-filling the destination
         MAC address in the control and data packets sent from this IPv4 endpoint
        whenever applicable.
      type: object
      properties:
        choice:
          description: |-
            auto or configured value.
          type: string
          default: auto
          x-field-uid: 1
          x-enum:
            auto:
              x-field-uid: 1
            value:
              x-field-uid: 2
          enum:
          - auto
          - value
        auto:
          description: |-
            The OTG implementation can provide a system generated value for this property. If the OTG is unable to generate a value the default value must be used.
          type: string
          format: mac
          default: 00:00:00:00:00:00
          x-field-uid: 2
        value:
          type: string
          format: mac
          default: 00:00:00:00:00:00
          x-field-uid: 3
    Device.Ipv6:
      description: |-
        An IPv6 interface with gateway.
      type: object
      required:
      - gateway
      - address
      - name
      properties:
        gateway:
          description: |-
            The IPv6 gateway address.
          type: string
          format: ipv6
          x-field-uid: 1
        gateway_mac:
          $ref: '#/components/schemas/Device.Ipv6GatewayMAC'
          x-field-uid: 2
        address:
          x-field-uid: 3
          description: |-
            The IPv6 address.
          type: string
          format: ipv6
        prefix:
          x-field-uid: 4
          description: |-
            The network prefix.
          type: integer
          format: uint32
          minimum: 1
          maximum: 128
          default: 64
        name:
          x-field-uid: 5
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
    Device.Ipv6Loopback:
      description: |-
        An IPv6 Loopback interface
      type: object
      required:
      - eth_name
      - name
      properties:
        eth_name:
          description: "The unique name of the Ethernet interface behind which this\
            \ Loopback \n interface will be created.\n\nx-constraint:\n- /components/schemas/Device.Ethernet/properties/name\n"
          type: string
          x-constraint:
          - /components/schemas/Device.Ethernet/properties/name
          x-field-uid: 1
        address:
          description: |-
            The IPv6 Loopback address with prefix length of 128.
          type: string
          format: ipv6
          default: ::0
          x-field-uid: 2
        name:
          x-field-uid: 3
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
    Device.Ipv6GatewayMAC:
      description: |-
        By default auto(resolved gateway mac) is set. Setting a value would mean that ND will not be used for learning MAC of connected device. The user-configured MAC address will be used for auto-filling the destination
         MAC address in the control and data packets sent from this IPv6 endpoint
        whenever applicable.
      type: object
      properties:
        choice:
          description: |-
            auto or configured value.
          type: string
          default: auto
          x-field-uid: 1
          x-enum:
            auto:
              x-field-uid: 1
            value:
              x-field-uid: 2
          enum:
          - auto
          - value
        auto:
          description: |-
            The OTG implementation can provide a system generated value for this property. If the OTG is unable to generate a value the default value must be used.
          type: string
          format: mac
          default: 00:00:00:00:00:00
          x-field-uid: 2
        value:
          type: string
          format: mac
          default: 00:00:00:00:00:00
          x-field-uid: 3
    Device.Dhcpv4client:
      description: |-
        Configuration for emulated DHCPv4 Client on a single Interface. https://www.rfc-editor.org/rfc/rfc2131.html
      type: object
      required:
      - name
      properties:
        name:
          x-field-uid: 1
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
        choice:
          description: |-
            The client receives one or more DHCPOFFER messages from one or more servers and client may choose to wait for multiple responses.
            The client chooses one server from which to request configuration
            parameters, based on the configuration parameters offered in the DHCPOFFER messages.
            - first_server: if selected, the subnet accepts the IP addresses offered by the first server to respond with an offer of IP addresses.
            - server_address: The address of the DHCP server from which the subnet will accept IP addresses.
          type: string
          default: first_server
          x-field-uid: 2
          x-enum:
            first_server:
              x-field-uid: 1
            server_address:
              x-field-uid: 2
          enum:
          - first_server
          - server_address
        server_address:
          description: |-
            The address of the DHCP server.
          type: string
          format: ipv4
          x-field-uid: 4
        broadcast:
          description: |-
            If the broadcast bit is set, then the server and relay agent broadcast DHCPOFFER and DHCPACK messages.
          type: boolean
          default: false
          x-field-uid: 5
        parameters_request_list:
          description: |-
            Optional parameters field request list of DHCPv4 Client.
          $ref: '#/components/schemas/Dhcpv4Client.Params'
          x-field-uid: 6
    Dhcpv4Client.Params:
      description: |-
        Configuration Parameter request list by emulated DHCPv4 Client.
      type: object
      properties:
        subnet_mask:
          description: "Request for the subnet mask option specifies the client's\
            \ subnet mask as per RFC950. "
          type: boolean
          default: true
          x-field-uid: 1
        router:
          description: |-
            Request for the router option that specifies a list of IP addresses for routers on the client's subnet.
          type: boolean
          default: true
          x-field-uid: 2
        renewal_timer:
          description: |-
            Request for the renewal timer, T1. When the timer expires, the client transitions from the BOUND state to the RENEWING state.
          type: boolean
          default: false
          x-field-uid: 3
        rebinding_timer:
          description: |-
            Request for the rebinding timer (T2). When expires, the client transitions to the REBINDING state.
          type: boolean
          default: false
          x-field-uid: 4
    Device.Dhcpv6client:
      description: |-
        Configuration for emulated DHCPv6 Client on a single Interface. If the DHCPv6 Client receives one or more  DHCPv6 ADVERTISE messages from one or more servers then the client chooses one server from which to request  configuration parameters, based on the configuration parameters offered by the server in the DHCPv6 ADVERTISE  messages. If all configuration parameters match then the first server will be chosen. https://www.rfc-editor.org/rfc/rfc8415.html
      type: object
      required:
      - name
      properties:
        name:
          x-field-uid: 1
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
        rapid_commit:
          description: |-
            If Rapid Commit is set, client initiates Rapid Commit two-message exchange by including Rapid Commit option  in Solicit message.
          type: boolean
          default: false
          x-field-uid: 2
        ia_type:
          description: "Each IA has an associated IAID. Differnet IA options represent\
            \ different types of IPv6 addresses and parameters \naccepted by DHCPv6\
            \ clients each used in different context by an IPv6 node."
          $ref: '#/components/schemas/Device.Dhcpv6client.IaType'
          x-field-uid: 3
        duid_type:
          description: |-
            Each DHCP client and server has a DUID. DHCP clients and servers use DUIDs to identify each other.
          $ref: '#/components/schemas/Device.Dhcpv6client.DuidType'
          x-field-uid: 4
        options_request:
          description: |-
            The options requested by a client from a server in the options request option.
          $ref: '#/components/schemas/Device.Dhcpv6Client.OptionsRequest'
          x-field-uid: 5
        options:
          description: |-
            Optional DHCPv4 Client options that are sent in Dhcp client messages.
          $ref: '#/components/schemas/Device.Dhcpv6Client.Options'
          x-field-uid: 6
    Device.Dhcpv6Client.OptionsRequest:
      description: |-
        DHCP client options, these configured options are sent in Dhcp client messages.
      type: object
      required:
      - request
      - associated_dhcp_messages
      properties:
        request:
          description: |-
            List of options requested by a client from a server.
          type: array
          items:
            $ref: '#/components/schemas/Dhcpv6ClientOptions.OptionsRequest'
          x-field-uid: 1
        associated_dhcp_messages:
          description: |-
            The list of dhcpv6 client messages where this option is included.
          $ref: '#/components/schemas/Dhcpv6ClientOptions.IncludedMessages'
          x-field-uid: 2
    Device.Dhcpv6Client.Options:
      description: |-
        DHCP client options, these configured options are sent in Dhcp client messages.
      type: object
      properties:
        server_identifier:
          description: "A client uses multicast to reach all servers or an individual\
            \ server. An individual server is indicated by \nspecifying that server's\
            \ DUID in a Server Identifier option in the client's message (all servers\
            \ will receive \nthis message but only the indicated server will respond).\
            \ All servers are indicated by not supplying this option.            "
          $ref: '#/components/schemas/Dhcpv6ClientOptions.ServerIdentifier'
          x-field-uid: 1
        vendor_class:
          description: "The vendor class option is used by a client to identify the\
            \ vendor that manufactured the hardware on which \nthe client is running.\
            \ The information contained in the data area of this option is contained\
            \ in one or more \nopaque fields that identify details of the hardware\
            \ configuration."
          $ref: '#/components/schemas/Dhcpv6ClientOptions.VendorClass'
          x-field-uid: 2
        vendor_info:
          description: |-
            This option is used by clients to exchange vendor-specific information with servers.
          $ref: '#/components/schemas/Dhcpv6ClientOptions.VendorInfo'
          x-field-uid: 3
        fqdn:
          description: "DHCPv6 server needs to know the FQDN of the client for the\
            \ addresses for the client's IA_NA bindings in order to \nupdate the IPv6-address-to-FQDN\
            \ mapping. This option allows the client to convey its FQDN to the server.\
            \ The Client \nFQDN option also contains Flags that DHCPv6 clients and\
            \ servers use to negotiate who does which update."
          $ref: '#/components/schemas/Dhcpv6ClientOptions.Fqdn'
          x-field-uid: 4
    Device.Dhcpv6client.IaType:
      type: object
      properties:
        choice:
          description: |-
            Identity Association: Each IA has an associated IAID. IA_NA and IA_TA options represent different types of  IPv6 addresses and parameters accepted by DHCPv6 clients each used in different context by an IPv6 node. IA_NA  is the Identity Association for Non-temporary Addresses option. IA_TA is the Identity Association for Temporary  Addresses option. IA_PD and IA_NAPD options represent one or more IPv6 prefix and parameters. IA_PD is the Identity  Association for Prefix Delegation and IA_NAPD s the Identity Association for Temporary Prefix Delegation.
          type: string
          default: iana
          x-field-uid: 1
          x-enum:
            iana:
              x-field-uid: 1
            iata:
              x-field-uid: 2
            iapd:
              x-field-uid: 3
            ianapd:
              x-field-uid: 4
          enum:
          - iana
          - iata
          - iapd
          - ianapd
        iana:
          $ref: '#/components/schemas/Device.Dhcpv6client.IaTimeValue'
          x-field-uid: 2
        iapd:
          $ref: '#/components/schemas/Device.Dhcpv6client.IaTimeValue'
          x-field-uid: 3
        ianapd:
          $ref: '#/components/schemas/Device.Dhcpv6client.IaTimeValue'
          x-field-uid: 4
    Device.Dhcpv6client.IaTimeValue:
      description: |-
        The container for the suggested times at which the client contacts the server or any available server.
      type: object
      properties:
        t1:
          description: |-
            The suggested time at which the client contacts the server from which the addresses were obtained to  extend the lifetimes of the addresses assigned. T1 is a time duration relative to the current time expressed  in units of seconds. If set to 0 server will ignore it. If the maximum value is specified it means infinite time.
          type: integer
          format: uint32
          maximum: 4294967295
          default: 302400
          x-field-uid: 1
        t2:
          description: |-
            The suggested time at which the client contacts any available server to extend the lifetimes of the addresses assigned.  T2 is a time duration relative to the current time expressed in units of seconds. If set to 0 server will ignore it. If  the maximum value is specified it means infinite time
          type: integer
          format: uint32
          maximum: 4294967295
          default: 483840
          x-field-uid: 2
    Device.Dhcpv6client.DuidType:
      type: object
      properties:
        choice:
          description: |-
            Each DHCP client and server has a DUID. DHCP clients use DUIDs to identify a server in messages where a server needs  to be identified.
          type: string
          default: llt
          x-field-uid: 1
          x-enum:
            llt:
              x-field-uid: 1
            en:
              x-field-uid: 2
            ll:
              x-field-uid: 3
          enum:
          - llt
          - en
          - ll
        llt:
          $ref: '#/components/schemas/Device.Dhcpv6client.NoDuid'
          x-field-uid: 2
        en:
          $ref: '#/components/schemas/Device.Dhcpv6client.DuidValue'
          x-field-uid: 3
        ll:
          $ref: '#/components/schemas/Device.Dhcpv6client.NoDuid'
          x-field-uid: 4
    Device.Dhcpv6client.DuidValue:
      description: |-
        The container for the DUID-EN. This consists of the 4-octet vendor's registered Private Enterprise Number  as maintained by IANA [IANA-PEN] followed by a unique identifier assigned by the vendor.
      type: object
      properties:
        enterprise_id:
          description: |-
            4-octet vendor's registered Private Enterprise Number as maintained by IANA [IANA-PEN].
          type: integer
          format: uint32
          minimum: 1
          maximum: 2147483647
          default: 10
          x-field-uid: 1
        vendor_id:
          description: |-
            Unique identifier assigned by the vendor.
          type: integer
          format: uint32
          minimum: 1
          maximum: 2147483647
          default: 10
          x-field-uid: 2
    Device.Dhcpv6client.NoDuid:
      description: |-
        The container for DUID-LL and DUID-LLT.
      type: object
    Dhcpv6ClientOptions.ServerIdentifier:
      type: object
      properties:
        choice:
          description: |-
            The Identifier option is used to carry a DUID. The option code is 2. The server identifier identifies  a server. This option is used when client wants to contact a particular server.
          type: string
          default: duid_ll
          x-field-uid: 1
          x-enum:
            duid_llt:
              x-field-uid: 1
            duid_en:
              x-field-uid: 2
            duid_ll:
              x-field-uid: 3
            duid_uuid:
              x-field-uid: 4
          enum:
          - duid_llt
          - duid_en
          - duid_ll
          - duid_uuid
        duid_llt:
          $ref: '#/components/schemas/Dhcpv6ClientOptions.DuidLlt'
          x-field-uid: 2
        duid_en:
          $ref: '#/components/schemas/Dhcpv6ClientOptions.DuidEn'
          x-field-uid: 3
        duid_ll:
          $ref: '#/components/schemas/Dhcpv6ClientOptions.DuidLl'
          x-field-uid: 4
        duid_uuid:
          $ref: '#/components/schemas/Dhcpv6ClientOptions.DuidUuid'
          x-field-uid: 5
    Dhcpv6ClientOptions.DuidLlt:
      description: |-
        DUID based on Link Layer address plus time. Hardware Type will be auto assigned to ethernet type.
      type: object
      required:
      - time
      - link_layer_address
      properties:
        time:
          description: "The time value is the time that the DUID is generated represented\
            \ in seconds since midnight (UTC), January 1, \n2000, modulo 2^32. The\
            \ DUID generatation time will the current time when dhcpv6 client contacts\
            \ the server.           "
          type: integer
          format: uint32
          x-field-uid: 1
        link_layer_address:
          description: "The link-layer address is stored in canonical form, as described\
            \ in RFC 2464.     "
          $ref: '#/components/schemas/Dhcpv6ClientOptions.LinkLayerAddress'
          x-field-uid: 2
    Dhcpv6ClientOptions.DuidEn:
      description: |-
        DUID assigned by vendor based on enterprise number.
      type: object
      required:
      - enterprise_number
      - identifier
      properties:
        enterprise_number:
          description: "Vendor's registered private enterprise number as maintained\
            \ by IANA.            "
          type: integer
          format: uint32
          maximum: 4294967295
          x-field-uid: 1
        identifier:
          description: "The unique identifier assigned by the vendor.           "
          type: string
          format: hex
          minLength: 1
          maxLength: 8
          x-field-uid: 2
    Dhcpv6ClientOptions.DuidLl:
      description: |-
        DUID based on Link Layer address. Hardware Type will be auto assigned to ethernet type.
      type: object
      required:
      - link_layer_address
      properties:
        link_layer_address:
          description: "The link-layer address is stored in canonical form, as described\
            \ in RFC 2464.           "
          $ref: '#/components/schemas/Dhcpv6ClientOptions.LinkLayerAddress'
          x-field-uid: 1
    Dhcpv6ClientOptions.DuidUuid:
      description: |-
        DUID embedded a Universally Unique IDentifier (UUID). A UUID is an identifier that is unique across both  space and time, with respect to the space of all UUIDs.
      type: object
      properties:
        version:
          description: "The version number is in the most significant 4 bits of the\
            \ timestamp (bits 4 through 7 of the time_hi_and_version field).     \
            \      "
          $ref: '#/components/schemas/Dhcpv6ClientOptions.DuidUuidVersion'
          x-field-uid: 1
        variant:
          description: "The variant field determines the layout of the UUID. It is\
            \ multiplexed with clock_seq_hi_and_reserved.           "
          $ref: '#/components/schemas/Dhcpv6ClientOptions.DuidUuidVariant'
          x-field-uid: 2
        time_low:
          description: "The low field of the timestamp.            "
          type: integer
          format: uint32
          default: 0
          x-field-uid: 3
        time_mid:
          description: "The middle field of the timestamp.            "
          type: integer
          format: uint32
          default: 0
          maximum: 65535
          x-field-uid: 4
        time_hi_and_version:
          description: "The high field of the timestamp multiplexed with the version\
            \ number.            "
          type: integer
          format: uint32
          default: 0
          maximum: 4095
          x-field-uid: 5
        clock_seq_hi_and_reserved:
          description: "The high field of the clock sequence multiplexed with the\
            \ variant.     "
          type: integer
          format: uint32
          default: 0
          maximum: 31
          x-field-uid: 6
        clock_seq_low:
          description: "The low field of the clock sequence.     "
          type: integer
          format: uint32
          default: 0
          maximum: 127
          x-field-uid: 7
        node:
          description: "The spatially unique node identifier.     "
          type: string
          format: mac
          default: 00:00:00:00:00:00
          x-field-uid: 8
    Dhcpv6ClientOptions.DuidUuidVersion:
      description: |-
        The version number is in the most significant 4 bits of the timestamp (bits 4 through 7 of the time_hi_and_version field).
      type: object
      properties:
        choice:
          description: |-
            The version values are from 1 to 5 in the most significant 4 bits of the timestamp (bits 4 through 7 of the  time_hi_and_version field).
          type: string
          default: v_1
          x-field-uid: 1
          x-enum:
            v_1:
              x-field-uid: 1
            v_2:
              x-field-uid: 2
            v_3:
              x-field-uid: 3
            v_4:
              x-field-uid: 4
            v_5:
              x-field-uid: 5
          enum:
          - v_1
          - v_2
          - v_3
          - v_4
          - v_5
    Dhcpv6ClientOptions.DuidUuidVariant:
      description: |-
        The variant field determines the layout of the UUID.  That is, the interpretation of all other bits in the  UUID depends on the setting of the bits in the variant field).
      type: object
      properties:
        choice:
          description: |-
            The current variants are ncs, dce,microsoft guid and reserved.
          type: string
          default: ncs
          x-field-uid: 1
          x-enum:
            ncs:
              x-field-uid: 1
            dce:
              x-field-uid: 2
            guid:
              x-field-uid: 3
            var_reserved:
              x-field-uid: 4
          enum:
          - ncs
          - dce
          - guid
          - var_reserved
    Dhcpv6ClientOptions.LinkLayerAddress:
      description: |-
        The link-layer address configured in DUID llt or DUID ll.
      type: object
      required:
      - value
      properties:
        value:
          description: |-
            The MAC address that becomes part of DUID llt or DUID ll.
          type: string
          format: mac
          x-field-uid: 3
    Dhcpv6ClientOptions.OptionsRequest:
      type: object
      properties:
        choice:
          description: "The Option Request option is used to identify a list of options\
            \ in a message between a client and a server. The  option code is 6. -\
            \ Vendor_specific information option, requested by clients for vendor-specific\
            \ informations from servers. - DNS Recursive Name Server Option, requested\
            \ by clients to get the list ofIPv6 addresses of DNS recursive name \n\
            \  servers to which DNS queries may be sent by the client resolver in\
            \ order of preference.\n- Client FQDN option - indicates whether the client\
            \ or the DHCP server should update DNS with the AAAA record \n  corresponding\
            \ to the assigned IPv6 address and the FQDN provided in this option. The\
            \ DHCP server always updates \n  the PTR record.\n- bootfile_url, if client\
            \ is configured for network booting then the client must use this option\
            \ to obtain the boot \n  file url from the server.\n- sztp. Securely provision\
            \ a networking device when it is booting in a factory-default state."
          type: string
          default: vendor_information
          x-field-uid: 1
          x-enum:
            vendor_information:
              x-field-uid: 1
            name_servers:
              x-field-uid: 2
            fqdn:
              x-field-uid: 3
            bootfile_url:
              x-field-uid: 4
            sztp:
              x-field-uid: 5
            custom:
              x-field-uid: 6
          enum:
          - vendor_information
          - name_servers
          - fqdn
          - bootfile_url
          - sztp
          - custom
        custom:
          $ref: '#/components/schemas/Dhcpv6ClientOptions.Custom'
          x-field-uid: 2
    Dhcpv6ClientOptions.Custom:
      description: |-
        The Custom option is used to provide a not so well known option in the message between a client and a server.
      type: object
      required:
      - type
      properties:
        type:
          description: |-
            The type of the Custom option TLV.
          type: integer
          format: uint32
          maximum: 65535
          x-field-uid: 1
    Dhcpv6ClientOptions.VendorClass:
      description: |-
        This option is used by a client to identify the vendor that manufactured the hardware on which the client is running. The option code is 16.
      type: object
      required:
      - enterprise_number
      - class_data
      - associated_dhcp_messages
      properties:
        enterprise_number:
          description: |-
            The vendor's registered Enterprise Number as registered with IANA.
          type: integer
          format: uint32
          maximum: 4294967295
          x-field-uid: 1
        class_data:
          description: |-
            The opaque data representing the hardware configuration of the host on which the client is running. Examples of  class data instances might include the version of the operating system the client is running or the amount of memory  installed on the client.
          type: array
          items:
            type: string
          x-field-uid: 2
        associated_dhcp_messages:
          description: |-
            The dhcpv6 client messages where this option is included.
          $ref: '#/components/schemas/Dhcpv6ClientOptions.IncludedMessages'
          x-field-uid: 3
    Dhcpv6ClientOptions.IncludedMessages:
      description: |-
        The dhcpv6 client messages where the option will be included. If all is selected the selected option will be added in the all the Dhcpv6 client messages, else based on the selection in particular Dhcpv6 client messages the option will be included.
      type: object
      properties:
        choice:
          description: |-
            The client message name where the option is included, by default it is all.
          type: string
          default: all
          x-field-uid: 1
          x-enum:
            all:
              x-field-uid: 1
            msg_types:
              x-field-uid: 2
          enum:
          - all
          - msg_types
        msg_types:
          description: |-
            User must specify the Dhcpv6 message type.
          type: array
          items:
            $ref: '#/components/schemas/Dhcpv6ClientOptions.MessageType'
          x-field-uid: 2
    Dhcpv6ClientOptions.MessageType:
      description: |-
        The dhcpv6 client messages where the option will be included.
      type: object
      properties:
        choice:
          description: |-
            The client message name where the option is included, by default it is all.
          type: string
          default: solicit
          x-field-uid: 1
          x-enum:
            solicit:
              x-field-uid: 1
            request:
              x-field-uid: 2
            inform_request:
              x-field-uid: 3
            release:
              x-field-uid: 4
            renew:
              x-field-uid: 5
            rebind:
              x-field-uid: 6
          enum:
          - solicit
          - request
          - inform_request
          - release
          - renew
          - rebind
    Dhcpv6ClientOptions.VendorInfo:
      description: |-
        This option is used by clients to exchange vendor-specific information. The option code is 17.
      type: object
      required:
      - enterprise_number
      - option_data
      - associated_dhcp_messages
      properties:
        enterprise_number:
          description: |-
            The vendor's registered Enterprise Number as registered with IANA.
          type: integer
          format: uint32
          maximum: 4294967295
          x-field-uid: 1
        option_data:
          description: |-
            An opaque object of octets,interpreted by vendor-specific code on the clients and servers.
          type: array
          items:
            $ref: '#/components/schemas/Dhcpv6Options.VendorSpecificOptions'
          x-field-uid: 2
        associated_dhcp_messages:
          description: |-
            The list of dhcpv6 client messages where this option is included.
          $ref: '#/components/schemas/Dhcpv6ClientOptions.IncludedMessages'
          x-field-uid: 3
    Dhcpv6ServerOptions.VendorInfo:
      description: |-
        This option is used by servers to exchange vendor-specific information. The option code is 17.
      type: object
      required:
      - enterprise_number
      - option_data
      - associated_dhcp_messages
      properties:
        enterprise_number:
          description: |-
            The vendor's registered Enterprise Number as registered with IANA.
          type: integer
          format: uint32
          maximum: 4294967295
          x-field-uid: 1
        option_data:
          description: |-
            An opaque object of octets,interpreted by vendor-specific code on the clients and servers.
          type: array
          items:
            $ref: '#/components/schemas/Dhcpv6Options.VendorSpecificOptions'
          x-field-uid: 2
        associated_dhcp_messages:
          description: |-
            The list of dhcpv6 client messages where this option is included.
          $ref: '#/components/schemas/Dhcpv6ServerOptions.IncludedMessages'
          x-field-uid: 3
    Dhcpv6ServerOptions.IncludedMessages:
      description: |-
        The dhcpv6 server messages where the option will be included. If all is selected the selected option will be added  in the all the Dhcpv6 server messages, else based on the selection in particular Dhcpv6 server messages the option  will be included.
      type: object
      properties:
        choice:
          description: |-
            The server message name where the option is included, by default it is all.
          type: string
          default: all
          x-field-uid: 1
          x-enum:
            all:
              x-field-uid: 1
            msg_types:
              x-field-uid: 2
          enum:
          - all
          - msg_types
        msg_types:
          description: |-
            User must specify the Dhcpv6 message type.
          type: array
          items:
            $ref: '#/components/schemas/Dhcpv6ServerOptions.MessageType'
          x-field-uid: 2
    Dhcpv6ServerOptions.MessageType:
      description: |-
        The dhcpv6 server messages where the option will be included.
      type: object
      properties:
        choice:
          description: |-
            The server message name where the option is included, by default it is all.
          type: string
          default: advertise
          x-field-uid: 1
          x-enum:
            advertise:
              x-field-uid: 1
            reply:
              x-field-uid: 2
            re_configure:
              x-field-uid: 3
          enum:
          - advertise
          - reply
          - re_configure
    Dhcpv6Options.VendorSpecificOptions:
      description: |-
        The encapsulated vendor-specific options field is encoded as a sequence of code/length/value fields of  identical format to the DHCP options field. The option codes are defined by the vendor identified in the  enterprise-number field and are not managed by IANA.
      type: object
      required:
      - code
      - data
      properties:
        code:
          description: |-
            The code for the encapsulated option.
          type: integer
          format: uint32
          maximum: 65535
          x-field-uid: 1
        data:
          description: |-
            The data for the encapsulated option.
          type: string
          x-field-uid: 2
    Dhcpv6ClientOptions.Fqdn:
      description: |-
        DHCPv6 server needs to know the FQDN of the client for the addresses for the client's IA_NA bindings in order to update the IPv6-address-to-FQDN mapping. This option allows the client to convey its FQDN to the server. The Client  FQDN option also contains Flags that DHCPv6 clients and servers use to negotiate who does which updates. The option code is 39.
      type: object
      required:
      - domain_name
      properties:
        flag_s:
          description: |-
            The "S" bit indicates whether the server should or should not perform the AAAA RR (FQDN-to-address) DNS updates.  A client sets the bit to 0 to indicate that the server should not perform the updates and 1 to indicate that the  server should perform the updates. The state of the bit in the reply from the server indicates the action to be  taken by the server. If it is 1, the server has taken responsibility for AAAA RR updates for the FQDN.
          type: boolean
          default: true
          x-field-uid: 1
        flag_o:
          description: |-
            The "O" bit indicates whether the server has overridden the client's preference for the "S" bit. A client must set this  bit to 0. A server must set this bit to 1 if the "S" bit in its reply to the client does not match the "S" bit received  from the client.
          type: boolean
          default: false
          x-field-uid: 2
        flag_n:
          description: |-
            The "N" bit indicates whether the server should not perform any DNS updates. A client sets this bit to 0 to request that  the server should perform updates (the PTR RR and possibly the AAAA RR based on the "S" bit) or to 1 to request that the  server should not perform any DNS updates. A server sets the "N" bit to indicate whether the server shall (0) or shall not (1)  perform DNS updates. If the "N" bit is 1, the "S" bit MUST be 0.
          type: boolean
          default: false
          x-field-uid: 3
        domain_name:
          description: |-
            The Domain Name part of the option carries all or part of the FQDN of a DHCPv6 client. A client MAY also leave the  Domain Name field empty if it desires the server to provide a name. A fully qualified domain name (FQDN) is the complete  address of an internet host or computer. It provides its exact location within the domain name system (DNS) by specifying  the hostname, domain name and top-level domain (TLD). An FQDN isn't the same as a URL but rather is a part of it that fully  identifies the server to which the request is addressed. An FQDN doesn't carry the TCP/IP protocol information, such as Hypertext  Transfer Protocol (HTTP) or Hypertext Transfer Protocol Secure (HTTPS), which is always used at the beginning of a URL. Therefore,  adding the prefix http:// or https:// to the FQDN turns it into a full URL. One example can be microsoft.com.
          type: string
          x-field-uid: 4
        associated_dhcp_messages:
          description: |-
            The list of dhcpv6 client messages where this option is included.
          $ref: '#/components/schemas/Dhcpv6ClientOptions.IncludedMessages'
          x-field-uid: 5
    Dhcpv6ServerOptions.BootfileUrl:
      description: |-
        The server sends this option to inform the client about a URL to a boot file. This information is required for booting  over the network includes the details about the server on which the boot files can be found, the protocol to be used for  the download (for example,HTTP or TFTP, and the path and name of the boot file on the server. The option code is 59. The URL will contain the network communication protocol, a subdomain, a domain name, and its extension. If the host in the URL  is expressed using an IPv6 address rather than a domain name, the address in the URL then must be enclosed in "[" and "]"  characters, conforming to [RFC3986]. Eg of a boot file url can be "tftp://[xxxx:xxxx:xxxx:xxxx::xxxx]/mboot.efi".
      type: object
      required:
      - url
      properties:
        url:
          description: |-
            The URL for the boot file. It must comply with STD 66 format.
          type: string
          x-field-uid: 1
        bootfile_params:
          description: |-
            They are used to specify parameters for the boot file (similar to the command line arguments in most modern operating  systems). For example, these parameters could be used to specify the root file system of the OS kernel, or the location  from which a second-stage boot-loader program can download its configuration file.
          type: array
          items:
            $ref: '#/components/schemas/Dhcpv6ServerOptions.BootFileParams'
          x-field-uid: 2
        associated_dhcp_messages:
          description: |-
            The list of dhcpv6 client messages where this option is included.
          $ref: '#/components/schemas/Dhcpv6ServerOptions.IncludedMessages'
          x-field-uid: 3
    Dhcpv6ServerOptions.BootFileParams:
      description: |-
        The option code is 60. They are used to specify parameters for the boot file (similar to the command line arguments in most  modern operating systems).  For example, these parameters could be used to specify the root file system of the OS kernel, or  the location from which a second-stage boot-loader program can download its configuration file.
      type: object
      required:
      - parameter
      properties:
        parameter:
          description: |-
            UTF-8 strings are parameters needed for booting, e.g., kernel parameters.
          type: string
          x-field-uid: 1
    Layer1:
      description: |-
        A container for layer1 settings.
      type: object
      required:
      - port_names
      - name
      properties:
        port_names:
          description: "A list of unique names of port objects that will share the\n\
            choice settings. \n\nx-constraint:\n- /components/schemas/Port/properties/name\n"
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Port/properties/name
          x-field-uid: 1
        speed:
          description: |-
            Set the speed if supported. When no speed is explicitly set, the current
            speed of underlying test interface shall be assumed.
          type: string
          x-field-uid: 2
          x-enum:
            speed_10_fd_mbps:
              x-field-uid: 1
            speed_10_hd_mbps:
              x-field-uid: 2
            speed_100_fd_mbps:
              x-field-uid: 3
            speed_100_hd_mbps:
              x-field-uid: 4
            speed_1_gbps:
              x-field-uid: 5
            speed_10_gbps:
              x-field-uid: 6
            speed_25_gbps:
              x-field-uid: 7
            speed_40_gbps:
              x-field-uid: 8
            speed_50_gbps:
              x-field-uid: 9
            speed_100_gbps:
              x-field-uid: 10
            speed_200_gbps:
              x-field-uid: 11
            speed_400_gbps:
              x-field-uid: 12
            speed_800_gbps:
              x-field-uid: 13
          enum:
          - speed_10_fd_mbps
          - speed_10_hd_mbps
          - speed_100_fd_mbps
          - speed_100_hd_mbps
          - speed_1_gbps
          - speed_10_gbps
          - speed_25_gbps
          - speed_40_gbps
          - speed_50_gbps
          - speed_100_gbps
          - speed_200_gbps
          - speed_400_gbps
          - speed_800_gbps
        media:
          description: |-
            Set the type of media for test interface if supported. When no media
            type is explicitly set, the current media type of underlying test
            interface shall be assumed.
          type: string
          x-field-uid: 3
          x-enum:
            copper:
              x-field-uid: 1
            fiber:
              x-field-uid: 2
            sgmii:
              x-field-uid: 3
          enum:
          - copper
          - fiber
          - sgmii
        promiscuous:
          description: |-
            Enable promiscuous mode on test interface. A warning shall be raised if
            this field is set to `true`, even when it's not supported, ignoring
            the setting altogether.
          type: boolean
          default: true
          x-field-uid: 4
        mtu:
          description: |-
            Set the maximum transmission unit size. A warning shall be raised if
            the specified value is valid but not supported, ignoring the setting altogether.
          type: integer
          format: uint32
          minimum: 64
          maximum: 9000
          default: 1500
          x-field-uid: 5
        ieee_media_defaults:
          description: |-
            Under Review: This field is currently under review for pending exploration on use cases

            Set to true to override the auto_negotiate, link_training
            and rs_fec settings for gigabit ethernet interfaces.
          type: boolean
          x-field-uid: 6
          x-status:
            status: under-review
            information: This field is currently under review for pending exploration
              on use cases
        auto_negotiate:
          description: |-
            Under Review: This field is currently under review for pending exploration on use cases, given that a separate configuration called `AutoNegotiation` already exists.

            Enable/disable auto negotiation.
          type: boolean
          x-field-uid: 7
          x-status:
            status: under-review
            information: This field is currently under review for pending exploration
              on use cases, given that a separate configuration called `AutoNegotiation`
              already exists.
        auto_negotiation:
          $ref: '#/components/schemas/Layer1.AutoNegotiation'
          x-field-uid: 8
        flow_control:
          $ref: '#/components/schemas/Layer1.FlowControl'
          x-field-uid: 9
        name:
          x-field-uid: 10
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
    Layer1.AutoNegotiation:
      description: |-
        Configuration for auto negotiation settings
      type: object
      properties:
        advertise_1000_mbps:
          description: |-
            If auto_negotiate is true and the interface supports this option
            then this speed will be advertised.
          type: boolean
          default: true
          x-field-uid: 1
        advertise_100_fd_mbps:
          description: |-
            If auto_negotiate is true and the interface supports this option
            then this speed will be advertised.
          type: boolean
          default: true
          x-field-uid: 2
        advertise_100_hd_mbps:
          description: |-
            If auto_negotiate is true and the interface supports this option
            then this speed will be advertised.
          type: boolean
          default: true
          x-field-uid: 3
        advertise_10_fd_mbps:
          description: |-
            If auto_negotiate is true and the interface supports this option
            then this speed will be advertised.
          type: boolean
          default: true
          x-field-uid: 4
        advertise_10_hd_mbps:
          description: |-
            If auto_negotiate is true and the interface supports this option
            then this speed will be advertised.
          type: boolean
          default: true
          x-field-uid: 5
        link_training:
          description: |-
            Enable/disable gigabit ethernet link training.
          type: boolean
          default: false
          x-field-uid: 6
        rs_fec:
          description: |-
            Enable/disable gigabit ethernet reed solomon forward error correction (RS FEC).
          type: boolean
          default: false
          x-field-uid: 7
    Layer1.FlowControl:
      description: |-
        A container for layer1 receive flow control settings.
        To enable flow control settings on ports this object must be a valid
        object not a null value.
      type: object
      properties:
        directed_address:
          description: |-
            The 48bit mac address that the layer1 port names will listen on
            for a directed pause.
          type: string
          format: mac
          default: 01:80:C2:00:00:01
          x-field-uid: 1
        choice:
          description: |-
            The type of priority flow control.
          type: string
          default: ieee_802_1qbb
          x-field-uid: 2
          x-enum:
            ieee_802_1qbb:
              x-field-uid: 1
            ieee_802_3x:
              x-field-uid: 2
          enum:
          - ieee_802_1qbb
          - ieee_802_3x
        ieee_802_1qbb:
          $ref: '#/components/schemas/Layer1.Ieee8021qbb'
          x-field-uid: 3
        ieee_802_3x:
          $ref: '#/components/schemas/Layer1.Ieee8023x'
          x-field-uid: 4
    Layer1.Ieee8023x:
      description: |-
        A container for ieee 802.3x rx pause settings
      type: object
    Layer1.Ieee8021qbb:
      description: "These settings enhance the existing 802.3x pause priority capabilities\
        \ \nto enable flow control based on 802.1p priorities (classes of service). "
      type: object
      properties:
        pfc_delay:
          description: "The upper limit on the transmit time of a queue after receiving\
            \ a \nmessage to pause a specified priority.\nA value of 0 or null indicates\
            \ that pfc delay will not be enabled. "
          type: integer
          format: uint32
          default: 0
          maximum: 65535
          x-field-uid: 1
        pfc_class_0:
          description: |-
            The valid values are null, 0 - 7.
            A null value indicates there is no setting for this pfc class.
          type: integer
          format: uint32
          maximum: 7
          default: 0
          x-field-uid: 2
        pfc_class_1:
          description: |-
            The valid values are null, 0 - 7.
            A null value indicates there is no setting for this pfc class.
          type: integer
          format: uint32
          maximum: 7
          default: 1
          x-field-uid: 3
        pfc_class_2:
          description: |-
            The valid values are null, 0 - 7.
            A null value indicates there is no setting for this pfc class.
          type: integer
          format: uint32
          maximum: 7
          default: 2
          x-field-uid: 4
        pfc_class_3:
          description: |-
            The valid values are null, 0 - 7.
            A null value indicates there is no setting for this pfc class.
          type: integer
          format: uint32
          maximum: 7
          default: 3
          x-field-uid: 5
        pfc_class_4:
          description: |-
            The valid values are null, 0 - 7.
            A null value indicates there is no setting for this pfc class.
          type: integer
          format: uint32
          maximum: 7
          default: 4
          x-field-uid: 6
        pfc_class_5:
          description: |-
            The valid values are null, 0 - 7.
            A null value indicates there is no setting for this pfc class.
          type: integer
          format: uint32
          maximum: 7
          default: 5
          x-field-uid: 7
        pfc_class_6:
          description: |-
            The valid values are null, 0 - 7.
            A null value indicates there is no setting for this pfc class.
          type: integer
          format: uint32
          maximum: 7
          default: 6
          x-field-uid: 8
        pfc_class_7:
          description: |-
            The valid values are null, 0 - 7.
            A null value indicates there is no setting for this pfc class.
          type: integer
          format: uint32
          maximum: 7
          default: 7
          x-field-uid: 9
    Capture:
      x-status:
        status: under_review
        information: There may be changes in filter configuration
      description: |-
        Under Review: There may be changes in filter configuration

        Configuration for capture settings.
      type: object
      required:
      - port_names
      - name
      properties:
        port_names:
          description: |
            The unique names of ports that the capture settings will apply to. Port_names cannot be duplicated between capture objects.

            x-constraint:
            - /components/schemas/Port/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Port/properties/name
          x-field-uid: 1
        filters:
          description: |-
            A list of filters to apply to the capturing ports. If no filters are specified then all packets will be captured. A capture can have multiple filters. The number of filters supported is determined by the implementation which can be retrieved using the capabilities API.
            When multiple filters are specified the capture implementation  must && (and) all the filters.
          type: array
          items:
            $ref: '#/components/schemas/Capture.Filter'
          x-field-uid: 2
        overwrite:
          description: |-
            Overwrite the capture buffer.
          type: boolean
          default: true
          x-field-uid: 3
        packet_size:
          description: |-
            The maximum size of each captured packet. If no value is specified or it is null then the entire packet will be captured.
          type: integer
          format: uint32
          maximum: 65535
          x-field-uid: 4
        format:
          description: |-
            The format of the capture file.
          type: string
          default: pcap
          x-field-uid: 5
          x-enum:
            pcap:
              x-field-uid: 1
            pcapng:
              x-field-uid: 2
          enum:
          - pcap
          - pcapng
        name:
          x-field-uid: 6
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
    Capture.Filter:
      description: |-
        Configuration for capture filters
      type: object
      properties:
        choice:
          description: |-
            The type of capture filter.
          type: string
          default: custom
          x-field-uid: 1
          x-enum:
            custom:
              x-field-uid: 1
            ethernet:
              x-field-uid: 2
            vlan:
              x-field-uid: 3
            ipv4:
              x-field-uid: 4
            ipv6:
              x-field-uid: 5
          enum:
          - custom
          - ethernet
          - vlan
          - ipv4
          - ipv6
        custom:
          description: |-
            Offset from last filter in the list. If no filters are present it is offset from position 0. Multiple custom filters can be present, the length of each custom filter is the length of the value being filtered.
          $ref: '#/components/schemas/Capture.Custom'
          x-field-uid: 2
        ethernet:
          $ref: '#/components/schemas/Capture.Ethernet'
          x-field-uid: 3
        vlan:
          $ref: '#/components/schemas/Capture.Vlan'
          x-field-uid: 4
        ipv4:
          $ref: '#/components/schemas/Capture.Ipv4'
          x-field-uid: 5
        ipv6:
          $ref: '#/components/schemas/Capture.Ipv6'
          x-field-uid: 6
    Capture.Custom:
      properties:
        offset:
          description: |-
            The bit offset of field to filter on
          type: integer
          format: uint32
          x-field-uid: 1
        bit_length:
          description: |-
            The bit length of field to filter on
          type: integer
          format: uint32
          default: 8
          x-field-uid: 2
        value:
          x-field-uid: 3
          type: string
          format: hex
          default: '00'
        mask:
          x-field-uid: 4
          type: string
          format: hex
          default: '00'
        negate:
          x-field-uid: 5
          type: boolean
          default: false
      type: object
    Capture.Field:
      type: object
      properties:
        value:
          type: string
          format: hex
          default: '00'
          x-field-uid: 1
        mask:
          type: string
          format: hex
          default: '00'
          x-field-uid: 2
        negate:
          type: boolean
          default: false
          x-field-uid: 3
    Capture.Ethernet:
      type: object
      properties:
        src:
          $ref: '#/components/schemas/Capture.Field'
          x-field-uid: 1
        dst:
          $ref: '#/components/schemas/Capture.Field'
          x-field-uid: 2
        ether_type:
          $ref: '#/components/schemas/Capture.Field'
          x-field-uid: 3
        pfc_queue:
          $ref: '#/components/schemas/Capture.Field'
          x-field-uid: 4
    Capture.Vlan:
      type: object
      properties:
        priority:
          $ref: '#/components/schemas/Capture.Field'
          x-field-uid: 1
        cfi:
          $ref: '#/components/schemas/Capture.Field'
          x-field-uid: 2
        id:
          $ref: '#/components/schemas/Capture.Field'
          x-field-uid: 3
        protocol:
          $ref: '#/components/schemas/Capture.Field'
          x-field-uid: 4
    Capture.Ipv4:
      type: object
      properties:
        version:
          $ref: '#/components/schemas/Capture.Field'
          x-field-uid: 1
        header_length:
          $ref: '#/components/schemas/Capture.Field'
          x-field-uid: 2
        priority:
          $ref: '#/components/schemas/Capture.Field'
          x-field-uid: 3
        total_length:
          $ref: '#/components/schemas/Capture.Field'
          x-field-uid: 4
        identification:
          $ref: '#/components/schemas/Capture.Field'
          x-field-uid: 5
        reserved:
          $ref: '#/components/schemas/Capture.Field'
          x-field-uid: 6
        dont_fragment:
          $ref: '#/components/schemas/Capture.Field'
          x-field-uid: 7
        more_fragments:
          $ref: '#/components/schemas/Capture.Field'
          x-field-uid: 8
        fragment_offset:
          $ref: '#/components/schemas/Capture.Field'
          x-field-uid: 9
        time_to_live:
          $ref: '#/components/schemas/Capture.Field'
          x-field-uid: 10
        protocol:
          $ref: '#/components/schemas/Capture.Field'
          x-field-uid: 11
        header_checksum:
          $ref: '#/components/schemas/Capture.Field'
          x-field-uid: 12
        src:
          $ref: '#/components/schemas/Capture.Field'
          x-field-uid: 13
        dst:
          $ref: '#/components/schemas/Capture.Field'
          x-field-uid: 14
    Capture.Ipv6:
      type: object
      properties:
        version:
          $ref: '#/components/schemas/Capture.Field'
          x-field-uid: 1
        traffic_class:
          $ref: '#/components/schemas/Capture.Field'
          x-field-uid: 2
        flow_label:
          $ref: '#/components/schemas/Capture.Field'
          x-field-uid: 3
        payload_length:
          $ref: '#/components/schemas/Capture.Field'
          x-field-uid: 4
        next_header:
          $ref: '#/components/schemas/Capture.Field'
          x-field-uid: 5
        hop_limit:
          $ref: '#/components/schemas/Capture.Field'
          x-field-uid: 6
        src:
          $ref: '#/components/schemas/Capture.Field'
          x-field-uid: 7
        dst:
          $ref: '#/components/schemas/Capture.Field'
          x-field-uid: 8
    Device:
      description: |-
        A container for emulated or simulated interfaces, loopback interfaces and protocol configurations.
      type: object
      properties:
        ethernets:
          description: |-
            Ethernet configuration for one or more emulated or simulated network interfaces.
          type: array
          items:
            $ref: '#/components/schemas/Device.Ethernet'
          x-field-uid: 1
        ipv4_loopbacks:
          description: |-
            IPv4 Loopback interface that can be attached to an Ethernet in the same device  or to an Ethernet in another device.
          type: array
          items:
            $ref: '#/components/schemas/Device.Ipv4Loopback'
          x-field-uid: 2
        ipv6_loopbacks:
          description: |-
            IPv6 Loopback interface that can be attached to an Ethernet in the same device  or to an Ethernet in another device.
          type: array
          items:
            $ref: '#/components/schemas/Device.Ipv6Loopback'
          x-field-uid: 3
        isis:
          description: |-
            The properties of an IS-IS router and its children,  such as IS-IS interfaces and route ranges.
          $ref: '#/components/schemas/Device.IsisRouter'
          x-field-uid: 4
        bgp:
          description: |-
            The properties of BGP router and its children,  such as BGPv4, BGPv6 peers and their route ranges.
          $ref: '#/components/schemas/Device.BgpRouter'
          x-field-uid: 5
        vxlan:
          description: |-
            Configuration of VXLAN tunnel interfaces RFC Ref: https://datatracker.ietf.org/doc/html/rfc7348
          $ref: '#/components/schemas/Device.Vxlan'
          x-field-uid: 6
        name:
          x-field-uid: 7
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
        rsvp:
          description: |-
            The properties of an RSVP router and its children.
          $ref: '#/components/schemas/Device.Rsvp'
          x-field-uid: 8
        dhcp_server:
          description: |-
            The properties of DHCP Server and its children, such as DHCPv4, DHCPv6 servers.
          $ref: '#/components/schemas/Device.DhcpServer'
          x-field-uid: 9
        ospfv2:
          description: |-
            Configuration for OSPFv2 router.
          $ref: '#/components/schemas/Device.Ospfv2Router'
          x-field-uid: 10
        macsec:
          description: |-
            Configuration of MACsec device.
          $ref: '#/components/schemas/Device.Macsec'
          x-field-uid: 11
        ospfv3:
          description: |-
            Configuration for OSPFv3 router.
          $ref: '#/components/schemas/Device.Ospfv3Router'
          x-field-uid: 12
        rocev2:
          description: |-
            Configuration for RoCEv2.
          $ref: '#/components/schemas/Device.Rocev2Peer'
          x-field-uid: 13
      required:
      - name
    Protocol.Options:
      description: "Common options that apply to all configured protocols and interfaces. "
      type: object
      properties:
        auto_start_all:
          description: |-
            When set to true, all underlying resources for configured protocols   and interfaces shall be created and corresponding protocol session negotiation shall be initiated. Otherwise, when set to false,  corresponding protocol session negotiation will need to be initiated  using a separate set_protocol_state API call.
          type: boolean
          default: true
          x-field-uid: 1
    Device.IsisRouter:
      description: |-
        A container of properties for an ISIS router and its interfaces.
      type: object
      required:
      - system_id
      - interfaces
      - name
      properties:
        instance:
          description: |-
            This contains the properties of a Multi-Instance-capable routers or MI-RTR. Each router can emulate one ISIS instance at a time.
          $ref: '#/components/schemas/Device.IsisMultiInstance'
          x-field-uid: 1
        system_id:
          description: |-
            The System ID for this emulated ISIS router, e.g. "640100010000".
          type: string
          format: hex
          x-field-uid: 2
        interfaces:
          description: |-
            List of ISIS interfaces for this router.
          type: array
          items:
            $ref: '#/components/schemas/Isis.Interface'
          x-field-uid: 3
        basic:
          description: "Contains basic properties of an ISIS Router. "
          $ref: '#/components/schemas/Isis.Basic'
          x-field-uid: 4
        advanced:
          description: |-
            Contains advance properties of an ISIS Router..
          $ref: '#/components/schemas/Isis.Advanced'
          x-field-uid: 5
        router_auth:
          description: |-
            ISIS Router authentication properties.
          $ref: '#/components/schemas/Isis.Authentication'
          x-field-uid: 6
        v4_routes:
          description: |-
            Emulated ISIS IPv4 routes.
          type: array
          items:
            $ref: '#/components/schemas/Isis.V4RouteRange'
          x-field-uid: 7
        v6_routes:
          description: |-
            Emulated ISIS IPv6 routes.
          type: array
          items:
            $ref: '#/components/schemas/Isis.V6RouteRange'
          x-field-uid: 8
        name:
          x-field-uid: 9
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
        segment_routing:
          description: |-
            Optional Segment Routing (SR).
          $ref: '#/components/schemas/Isis.SegmentRouting'
          x-field-uid: 10
    Device.IsisMultiInstance:
      description: "This container properties of an Multi-Instance-capable router\
        \ (MI-RTR). "
      type: object
      properties:
        iid:
          description: |-
            Instance Identifier (IID) TLV will associate a PDU with an ISIS instance  by using a unique 16-bit number and including one or more  Instance-Specific Topology Identifiers (ITIDs).
          type: integer
          format: uint32
          default: 1
          maximum: 65535
          x-field-uid: 1
        itids:
          description: |-
            This contains one or more ITIDs that will be advertised in IID TLV.
          type: array
          items:
            type: integer
            format: uint32
            default: 0
            maximum: 65535
          x-field-uid: 2
    Isis.Interface:
      description: |-
        Configuration for single ISIS interface.
      type: object
      required:
      - eth_name
      - name
      properties:
        eth_name:
          description: |
            The unique name of the Ethernet interface on which ISIS is running. Two ISIS interfaces cannot share the same Ethernet. The underlying Ethernet Interface can an emulated or simulated interface. A simulated ethernet interface can be assumed to be connected by  a primary (internal to a simulated topology)  or a secondary link (connected to a device behind a different simulated topology).

            x-constraint:
            - /components/schemas/Device.Ethernet/properties/name
          type: string
          x-constraint:
          - /components/schemas/Device.Ethernet/properties/name
          x-field-uid: 1
        metric:
          description: |-
            The default metric cost for the interface.
          type: integer
          format: uint32
          maximum: 16777215
          default: 10
          x-field-uid: 2
        network_type:
          description: "The type of network link. "
          type: string
          default: broadcast
          x-field-uid: 3
          x-enum:
            broadcast:
              x-field-uid: 1
            point_to_point:
              x-field-uid: 2
          enum:
          - broadcast
          - point_to_point
        level_type:
          description: "This indicates whether this router is participating in Level-1\
            \ (L1), \nLevel-2 (L2) or both L1 and L2 domains on this interface."
          type: string
          default: level_2
          x-field-uid: 4
          x-enum:
            level_1:
              x-field-uid: 1
            level_2:
              x-field-uid: 2
            level_1_2:
              x-field-uid: 3
          enum:
          - level_1
          - level_2
          - level_1_2
        l1_settings:
          description: |-
            Settings of Level 1 Hello.
          $ref: '#/components/schemas/IsisInterface.Level'
          x-field-uid: 5
        l2_settings:
          description: |-
            Settings of Level 2 Hello.
          $ref: '#/components/schemas/IsisInterface.Level'
          x-field-uid: 6
        multi_topology_ids:
          description: |-
            Contains the properties of multiple topologies.
          type: array
          items:
            $ref: '#/components/schemas/Isis.MT'
          x-field-uid: 7
        traffic_engineering:
          description: |-
            Contains a list of Traffic Engineering attributes.
          type: array
          items:
            $ref: '#/components/schemas/LinkState.TE'
          x-field-uid: 8
        authentication:
          description: |-
            The Circuit authentication method used for the interfaces on this emulated ISIS v4/v6 router.
          $ref: '#/components/schemas/IsisInterface.Authentication'
          x-field-uid: 9
        advanced:
          description: |-
            Optional container for advanced interface properties.
          $ref: '#/components/schemas/IsisInterface.Advanced'
          x-field-uid: 10
        link_protection:
          description: |-
            Link protection on the ISIS link between two interfaces.
          $ref: '#/components/schemas/IsisInterface.LinkProtection'
          x-field-uid: 11
        srlg_values:
          description: |-
            This contains list of SRLG values for the link between two interfaces.
          type: array
          items:
            type: integer
            format: uint32
            maximum: 16777215
            default: 0
          x-field-uid: 12
        name:
          x-field-uid: 13
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
        adjacency_sids:
          description: |-
            List of Adjacency Segment Identifier (Adj-SID) sub-TLVs.
          type: array
          items:
            $ref: '#/components/schemas/IsisInterface.AdjacencySid'
          x-field-uid: 14
    IsisInterface.Level:
      description: |-
        Configuration for the properties of Level 1 Hello.
      type: object
      properties:
        priority:
          description: |-
            The Priority setting in Level 1 LAN Hellos for Designated Router election.
          type: integer
          format: uint32
          default: 0
          x-field-uid: 1
        hello_interval:
          description: |-
            The Hello interval for Level 1 Hello messages, in seconds.
          type: integer
          format: uint32
          default: 10
          x-field-uid: 2
        dead_interval:
          description: |-
            The Dead (Holding Time) interval for Level 1 Hello messages, in seconds.
          type: integer
          format: uint32
          default: 30
          x-field-uid: 3
    Isis.MT:
      description: |-
        Configuration of properties per interface per topology when multiple topologies are configured in an ISIS router.
        in a ISIS router.
      type: object
      properties:
        mt_id:
          description: |-
            The Multi Topology ID for one of the topologies supported on the ISIS interface.
          type: integer
          format: uint32
          maximum: 65535
          default: 0
          x-field-uid: 1
        link_metric:
          description: |-
            Specifies the link metric for this topology on the ISIS interface.
          type: integer
          format: uint32
          default: 10
          maximum: 16777215
          x-field-uid: 2
    LinkState.TE:
      description: |-
        A container for Traffic Engineering properties on a interface.
      type: object
      properties:
        administrative_group:
          description: "The Administrative group sub-TLV (sub-TLV 3). It is a 4-octet\
            \ \nuser-defined bit mask used to assign administrative group numbers\
            \ \nto the interface, for use in assigning colors and resource classes.\
            \ \nEach set bit corresponds to a single administrative group for this\
            \ \ninterface. The settings translate into Group numbers, which range\
            \ \nfrom 0 to 31 (integers)."
          type: string
          format: hex
          default: '00000000'
          x-field-uid: 1
        metric_level:
          description: |-
            The user-assigned link metric for Traffic Engineering.
          type: integer
          format: uint32
          default: 0
          x-field-uid: 2
        max_bandwith:
          description: "The maximum link bandwidth (sub-TLV 9) in bytes/sec allowed\
            \ for this \nlink for a direction."
          type: integer
          format: uint32
          default: 125000000
          x-field-uid: 3
        max_reservable_bandwidth:
          description: "The maximum link bandwidth (sub-TLV 10) in bytes/sec allowed\
            \ for this \nlink in a direction."
          type: integer
          format: uint32
          default: 125000000
          x-field-uid: 4
        priority_bandwidths:
          description: |-
            Configuration of bandwidths of priority 0 through priority 7.
          $ref: '#/components/schemas/LinkState.priorityBandwidths'
          x-field-uid: 5
    LinkState.priorityBandwidths:
      description: "Specifies the amount of bandwidth that can be reserved with a\
        \ setup priority of 0 \nthrough 7, arranged in increasing order with priority\
        \ 0 having highest priority. \nIn ISIS, this is sent in sub-TLV (11) of Extended\
        \ IS Reachability TLV. "
      type: object
      properties:
        pb0:
          description: |-
            Specifies the amount of bandwidth that can be reserved for the Priority 0.
          type: integer
          format: uint32
          default: 125000000
          x-field-uid: 1
        pb1:
          description: |-
            Specifies the amount of bandwidth that can be reserved for the Priority 1.
          type: integer
          format: uint32
          default: 125000000
          x-field-uid: 2
        pb2:
          description: |-
            Specify the amount of bandwidth that can be reserved for the Priority 2.
          type: integer
          format: uint32
          default: 125000000
          x-field-uid: 3
        pb3:
          description: |-
            Specifies the amount of bandwidth that can be reserved for the Priority 3.
          type: integer
          format: uint32
          default: 125000000
          x-field-uid: 4
        pb4:
          description: |-
            Specifies the amount of bandwidth that can be reserved for the Priority 4.
          type: integer
          format: uint32
          default: 125000000
          x-field-uid: 5
        pb5:
          description: |-
            Specifies the amount of bandwidth that can be reserved for the Priority 5.
          type: integer
          format: uint32
          default: 125000000
          x-field-uid: 6
        pb6:
          description: |-
            Specifies the amount of bandwidth that can be reserved for the Priority 6.
          type: integer
          format: uint32
          default: 125000000
          x-field-uid: 7
        pb7:
          description: |-
            Specifies the amount of bandwidth that can be reserved for the Priority 7.
          type: integer
          format: uint32
          default: 125000000
          x-field-uid: 8
    IsisInterface.Authentication:
      description: |-
        Optional container for circuit authentication properties.
      type: object
      required:
      - auth_type
      properties:
        auth_type:
          description: |-
            The circuit authentication method.
          type: string
          x-field-uid: 1
          x-enum:
            md5:
              x-field-uid: 1
            password:
              x-field-uid: 2
          enum:
          - md5
          - password
        md5:
          description: |-
            MD5 key to be used for authentication.
          type: string
          minLength: 0
          maxLength: 255
          x-field-uid: 2
        password:
          description: |-
            The password, in clear text, to be used for Authentication.
          type: string
          minLength: 0
          maxLength: 255
          x-field-uid: 3
    IsisInterface.Advanced:
      description: |-
        Optional container for advanced interface properties.
      type: object
      properties:
        auto_adjust_mtu:
          description: "If a padded Hello message is received on the interface, the\
            \ length of \nthe Hello packets sent out on that interface is adjusted\
            \ to match."
          type: boolean
          default: true
          x-field-uid: 1
        auto_adjust_area:
          description: "If a Level 1 Hello is received on this emulated router for\
            \ an area \nnot currently in its area list, an area from the received\
            \ Hello is \nadded to that list. This ensures an area match for all future\
            \ \nLevel 1 Hellos from the source L1 router."
          type: boolean
          default: true
          x-field-uid: 2
        auto_adjust_supported_protocols:
          description: "If a Hello message listing supported protocols is received\
            \ on this \nemulated router, the supported protocols advertised by this\
            \ router \nare changed to match exactly."
          type: boolean
          default: false
          x-field-uid: 3
        enable_3way_handshake:
          description: |-
            If it is true, the Point-to-Point circuit will include 3-way TLV in its Point-to-Point IIH  and attempt to establish the adjacency as specified in RFC 5303. This field is not applicable if network_type is set to 'broadcast' type in ISIS interface.
          type: boolean
          default: true
          x-field-uid: 4
        p2p_hellos_to_unicast_mac:
          description: "If it is true, the Point-to-Point Hello messages will be sent\
            \ to the unicast MAC address. "
          type: boolean
          default: false
          x-field-uid: 5
    IsisInterface.LinkProtection:
      description: |-
        Optional container for the link protection sub TLV (type 20).
      type: object
      properties:
        extra_traffic:
          description: |-
            Enable this to protect other link or links. LSPs on a link of this type are lost
            if any of the links fail.
          type: boolean
          default: false
          x-field-uid: 1
        unprotected:
          description: "Enabling this signifies that there is no other link protecting\
            \ this \nlink. LSPs on a link of this type are lost if the link fails."
          type: boolean
          default: false
          x-field-uid: 2
        shared:
          description: "Enable this to share the Extra Traffic links between one or\
            \ more \nlinks of type Shared.There are one or more disjoint links of\
            \ type \nExtra Traffic that are protecting this link."
          type: boolean
          default: false
          x-field-uid: 3
        dedicated_1_to_1:
          description: "Enabling this signifies that there is one dedicated disjoint\
            \ link \nof type Extra Traffic that is protecting this link."
          type: boolean
          default: false
          x-field-uid: 4
        dedicated_1_plus_1:
          description: "Enabling this signifies that a dedicated disjoint link is\
            \ protecting \nthis link. However, the protecting link is not advertised\
            \ in the \nlink state database and is therefore not available for the\
            \ routing \nof LSPs."
          type: boolean
          default: false
          x-field-uid: 5
        enhanced:
          description: "Enabling this signifies that a protection scheme that is more\
            \ \nreliable than Dedicated 1+1."
          type: boolean
          default: false
          x-field-uid: 6
        reserved_40:
          description: "This is a Protection Scheme with value 0x40. "
          type: boolean
          default: false
          x-field-uid: 7
        reserved_80:
          description: "This is a Protection Scheme with value 0x80. "
          type: boolean
          default: false
          x-field-uid: 8
    IsisInterface.AdjacencySid:
      description: |-
        Optional container for segment routing MPLS settings.
        If the container exists then the adjacency SID (segment identifier)
        sub TLV will be part of the packet.
        Reference: https://datatracker.ietf.org/doc/html/rfc8667#name-adjacency-segment-identifie.
      type: object
      properties:
        choice:
          description: |-
            Choice of whether Adjacency-SID carries and absolute value or a relative index to the SRGB/SRLB Ranges.
            Please refer to device.isis.segment_routing.router_capability.sr_capability.srgb_ranges for the Segment Routing Global Block (SRGB) Descriptor and
            device.isis.segment_routing.router_capability.srlb_ranges for the SR Local Block (SRLB).
            A user needs to configure at least one entry of SID value or SID index.
            If no entry is configured, then an implementation may advertise appropriate default SID Value/Index based on the choice. e.g. the first value
            from the SRGB or SRLB range.
            - sid_values: Adjacency-SID carries one or more values and then v_flag is set by the implementation.
            - sid_indices: Adjacency-SID carries one or more indices and then v_flag is unset by the implementation.
          type: string
          default: sid_values
          x-field-uid: 1
          x-enum:
            sid_values:
              x-field-uid: 1
            sid_indices:
              x-field-uid: 2
          enum:
          - sid_values
          - sid_indices
        sid_values:
          description: |-
            The corresponding Adjacency SID as one or more absolute Values for the link.
          type: array
          items:
            type: integer
            format: uint32
            default: 16
            minimum: 16
            maximum: 1048575
          x-field-uid: 2
        sid_indices:
          description: |-
            One or more adjacency Indices are relative to ranges defined for SRGB or SRLB.
          type: array
          items:
            type: integer
            format: uint32
            default: 0
            minimum: 0
            maximum: 4294967295
          x-field-uid: 3
        f_flag:
          description: |-
            The address family flag. If unset, then the Adj-SID refers
            to an adjacency with outgoing IPv4 encapsulation.  If set then
            the Adj-SID refers to an adjacency with outgoing IPv6
            encapsulation.
          type: boolean
          default: true
          x-field-uid: 4
        b_flag:
          description: |-
            The backup flag. If set, the Adj-SID is eligible for protection.
          type: boolean
          default: false
          x-field-uid: 5
        l_flag:
          description: |-
            The local flag.  If set, then the value/index carried by
            the Adj-SID has local significance. In this case, Adjacency_sid is from device.isis.segment_routing.router_capability.srlb_ranges.
          type: boolean
          default: true
          x-field-uid: 6
        s_flag:
          description: |-
            The set flag. When set, the S-Flag indicates that the
            Adj-SID refers to a set of adjacencies (and therefore MAY be
            assigned to other adjacencies as well).
          type: boolean
          default: false
          x-field-uid: 7
        p_flag:
          description: |-
            The persistent flag. When set, the P-Flag indicates that
            the Adj-SID is persistently allocated, i.e., the Adj-SID value
            remains consistent across router restart and/or interface flap.
          type: boolean
          default: false
          x-field-uid: 8
        weight:
          description: "The value represents the weight of the Adj-SID for the purpose\
            \ of load balancing. "
          type: integer
          format: uint32
          default: 0
          minimum: 0
          maximum: 255
          x-field-uid: 9
    Isis.Basic:
      description: |-
        This contains ISIS router basic properties.
      type: object
      properties:
        ipv4_te_router_id:
          description: "IPv4 Traffic Engineering(TE) router id. This address should\
            \ be configured as an IPv4 Loopback address in 'ipv4_loopbacks' in the\
            \ Device.      "
          type: string
          format: ipv4
          x-field-uid: 1
        hostname:
          description: |-
            Host name for the router. The host name is transmitted in all the packets sent from the router.
          type: string
          x-field-uid: 2
        enable_wide_metric:
          description: |-
            When set to true, it allows sending of more detailed metric information  for the routes using 32-bit wide values using TLV 135 IP reachability and  more detailed reachability information for IS reachability by using TLV 22.  The detailed usage is described in RFC3784.
          type: boolean
          default: true
          x-field-uid: 3
        learned_lsp_filter:
          description: |-
            Configuration for controlling storage of ISIS learned LSPs are received from the neighbors.
          type: boolean
          default: false
          x-field-uid: 4
    Isis.Advanced:
      description: |-
        Contains ISIS router advanced properties.
      type: object
      properties:
        enable_hello_padding:
          description: |-
            It enables padding of Hello message to MTU size.
          type: boolean
          default: true
          x-field-uid: 1
        max_area_addresses:
          description: "The Number of Area Addresses permitted, with a valid range\
            \ from 0 to 254.  A zero indicates a maximum of 3 addresses. "
          type: integer
          format: uint32
          maximum: 254
          default: 3
          x-field-uid: 2
        area_addresses:
          description: |-
            Its combination of the ISP and HO-DSP.Usually all nodes within an area have  the same area address. If no area addresses are configured, a default area of "490001" will be advertised.
          type: array
          items:
            type: string
            format: hex
          x-field-uid: 3
        lsp_refresh_rate:
          description: |-
            The rate at which LSPs are re-sent in seconds.
          type: integer
          format: uint32
          default: 600
          maximum: 65535
          x-field-uid: 4
        lsp_lifetime:
          description: |-
            The MaxAge for retaining a learned LSP on this router in seconds.
          type: integer
          format: uint32
          default: 1200
          maximum: 65535
          x-field-uid: 5
        psnp_interval:
          description: |-
            The number of milliseconds between transmissions of Partial Sequence Number PDU.
          type: integer
          format: uint32
          maximum: 60000
          default: 2000
          x-field-uid: 6
        csnp_interval:
          description: |-
            The number of milliseconds between transmissions of Partial Sequence Number PDU.
          type: integer
          format: uint32
          minimum: 1
          maximum: 65535000
          default: 10000
          x-field-uid: 7
        max_lsp_size:
          description: |-
            The maximum size in bytes of any LSP that can be transmitted over a link of equal or less  than maximum MTU size.
          type: integer
          format: uint32
          minimum: 64
          maximum: 9216
          default: 1492
          x-field-uid: 8
        lsp_mgroup_min_trans_interval:
          description: |-
            The number of seconds between transmissions of LSPs/MGROUP-PDUs.
          type: integer
          format: uint32
          minimum: 1
          maximum: 60000
          default: 5000
          x-field-uid: 9
        enable_attached_bit:
          description: |-
            If the Attached bit is enabled, it indicates that the ISIS router is attached to another area  or the Level 2 backbone. The purpose of an Attached-Bit is to accomplish Inter-Area Routing.  When an L1/L2 router is connected to more than one area, it sets the Attached-bit on its L1 LSP. This can cause a default route ( 0.0.0.0/0 ) to be installed by the receiving router.
          type: boolean
          default: true
          x-field-uid: 10
    Isis.Authentication:
      description: |-
        This contains ISIS Area/Domain authentication properties.
      type: object
      properties:
        ignore_receive_md5:
          description: |-
            Do not verify MD5 checksum in received LSPs.
          type: boolean
          default: true
          x-field-uid: 1
        area_auth:
          description: |-
            The Area authentication method used for the emulated ISIS router.
            This is used for L1 LSPs.
          $ref: '#/components/schemas/Isis.AuthenticationBase'
          x-field-uid: 2
        domain_auth:
          description: |-
            The Domain authentication method used for the emulated ISIS router.
            This is used for L2 LSPs.
          $ref: '#/components/schemas/Isis.AuthenticationBase'
          x-field-uid: 3
    Isis.AuthenticationBase:
      description: |-
        Optional container for ISIS authentication properties.
      type: object
      required:
      - auth_type
      properties:
        auth_type:
          description: |-
            The authentication method.
          type: string
          x-field-uid: 1
          x-enum:
            md5:
              x-field-uid: 1
            password:
              x-field-uid: 2
          enum:
          - md5
          - password
        md5:
          description: |-
            Authentication as an MD5 key.
          type: string
          minLength: 0
          maxLength: 255
          x-field-uid: 2
        password:
          description: |-
            Authentication as a clear text password.
          type: string
          minLength: 0
          maxLength: 255
          x-field-uid: 3
    Isis.V4RouteRange:
      description: |-
        Emulated ISIS IPv4 routes.
      type: object
      properties:
        addresses:
          description: |-
            A list of group of IPv4 route addresses.
          type: array
          items:
            $ref: '#/components/schemas/V4RouteAddress'
          x-field-uid: 1
        link_metric:
          x-field-uid: 2
          description: |-
            The user-defined metric associated with this route range.
          type: integer
          format: uint32
          default: 0
          minimum: 0
          maximum: 16777215
        origin_type:
          x-field-uid: 3
          description: "The origin of the advertised route-internal or external to\
            \ the ISIS area. Options include the following: \n  Internal-for intra-area\
            \ routes, through Level 1 LSPs. \n  External-for inter-area routes redistributed\
            \ within L1, through Level\n1 LSPs."
          type: string
          default: internal
          x-enum:
            internal:
              x-field-uid: 1
            external:
              x-field-uid: 2
          enum:
          - internal
          - external
        redistribution_type:
          x-field-uid: 4
          description: "Defines the Up/Down (Redistribution) bit defined for TLVs\
            \ 128 and 130 by RFC 2966.  It is used for domain-wide advertisement of\
            \ prefix information.\n\n  Up (0)-used when a prefix is initially advertised\
            \ within the ISIS L3\nhierarchy, \n          and for all other prefixes\
            \ in L1 and L2 LSPs. (default) \n  Down (1)-used when an L1/L2 router\
            \ advertises L2 prefixes in L1 LSPs.\n\nThe prefixes are being advertised\
            \ from a higher level (L2) down to a lower level (L1). "
          type: string
          default: up
          x-enum:
            up:
              x-field-uid: 1
            down:
              x-field-uid: 2
          enum:
          - up
          - down
        name:
          x-field-uid: 5
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
        prefix_attr_enabled:
          x-field-uid: 6
          description: "Specifies whether the sub-TLV for IPv4/IPv6 Extended Reachability\
            \ Attribute Flags\nwill be advertised or not. "
          type: boolean
          default: false
        x_flag:
          x-field-uid: 7
          description: |-
            External Prefix Flag (Bit 0)
          type: boolean
          default: false
        r_flag:
          x-field-uid: 8
          description: |-
            Re-advertisement Flag (Bit 1)
          type: boolean
          default: false
        n_flag:
          x-field-uid: 9
          description: |-
            Node Flag (Bit 2)
          type: boolean
          default: false
        prefix_sids:
          description: |-
            A list of SID paramters for a group of IPv4 route addresses.
          type: array
          items:
            $ref: '#/components/schemas/IsisSR.PrefixSid'
          x-field-uid: 10
      required:
      - name
    V4RouteAddress:
      description: |-
        A container for IPv4 route addresses.
      type: object
      required:
      - address
      properties:
        address:
          description: |-
            The starting address of the network.
          type: string
          format: ipv4
          x-field-uid: 1
        prefix:
          description: "The IPv4 network prefix length to be applied to the address. "
          type: integer
          format: uint32
          default: 24
          maximum: 32
          x-field-uid: 2
        count:
          description: |-
            The total number of addresses in the range.
          type: integer
          format: uint32
          default: 1
          minimum: 1
          x-field-uid: 3
        step:
          description: |-
            Increments the network address prefixes within a route range  where multiple routes are present.  The value is incremented according to the Prefix Length and Step.
          type: integer
          format: uint32
          default: 1
          minimum: 1
          x-field-uid: 4
    V6RouteAddress:
      description: |-
        A container for IPv6 route addresses.
      type: object
      required:
      - address
      properties:
        address:
          description: |-
            The starting address of the network.
          type: string
          format: ipv6
          x-field-uid: 1
        prefix:
          description: |-
            The IPv6 network prefix length to be applied to the address.
          type: integer
          format: uint32
          default: 64
          maximum: 128
          x-field-uid: 2
        count:
          description: |-
            The total number of addresses in the range.
          type: integer
          format: uint32
          default: 1
          minimum: 1
          x-field-uid: 3
        step:
          description: |-
            Increments the network address prefixes within a route range  where multiple routes are present.  The value is incremented according to the Prefix Length and Step.
          type: integer
          format: uint32
          default: 1
          minimum: 1
          x-field-uid: 4
    MACRouteAddress:
      description: |-
        A container for MAC route addresses.
      type: object
      required:
      - address
      properties:
        address:
          description: |-
            The starting address of the MAC Range.
          type: string
          format: mac
          x-field-uid: 1
        prefix:
          description: "The MAC prefix length to be applied to the address. "
          type: integer
          format: uint32
          default: 48
          minimum: 0
          maximum: 48
          x-field-uid: 2
        count:
          description: |-
            The total number of mac addresses in the range.
          type: integer
          format: uint32
          default: 1
          minimum: 1
          x-field-uid: 3
        step:
          description: |-
            Increments the mac address prefixes within a mac range  where multiple routes are present.  The value is incremented according to the mac prefix Length and Step.
          type: integer
          format: uint32
          default: 1
          minimum: 1
          x-field-uid: 4
    IsisSR.PrefixSid:
      description: |-
        This contains the properties of IS-IS Prefix-SID and its attributes for  the extended Ipv4 and Ipv6 reachability. Reference: https://datatracker.ietf.org/doc/html/rfc8667#name-prefix-segment-identifier-p.
      type: object
      properties:
        choice:
          description: |-
            Choice of whether Prefix-SID carries and absolute value or a relative index to the SRGB/SRLB Ranges.
            Please refer to device.isis.segment_routing.router_capability.sr_capability.srgb_ranges for the Segment Routing Global Block (SRGB) Descriptor and
            device.isis.segment_routing.router_capability.srlb_ranges for the SR Local Block (SRLB).
            A user needs to configure at least one entry of SID value or SID index.
            If no entry is configured, then an implementation may advertise appropriate default SID Value/Index based on the choice. e.g. the first value
            from the SRGB or SRLB range.
            - sid_values: Prefix-SID carries one or more values and then v_flag is set by the implementation.
            - sid_indices: Prefix-SID carries one or more indices and then v_flag is unset by the implementation.
          type: string
          default: sid_indices
          x-field-uid: 1
          x-enum:
            sid_values:
              x-field-uid: 1
            sid_indices:
              x-field-uid: 2
          enum:
          - sid_values
          - sid_indices
        sid_values:
          description: |-
            SID/Label as one or more absolute values that are associated with the IGP Prefix segment attached to the specific IPv4 or IPv6 prefix.
          type: array
          items:
            type: integer
            format: uint32
            default: 16
            minimum: 16
            maximum: 1048575
          x-field-uid: 2
        sid_indices:
          description: |-
            One or more SID/Label Indices that are associated with the IGP Prefix segment attached to the specific IPv4 or IPv6 prefix.
          type: array
          items:
            type: integer
            format: uint32
            default: 0
            minimum: 0
            maximum: 4294967295
          x-field-uid: 3
        r_flag:
          description: "R-Flag: Re-advertisement Flag. \nIf set, then the prefix to\
            \ which this Prefix-SID is attached has been propagated by the router\
            \ \nfrom either another level (i.e., from Level-1 to Level-2 or the opposite)\
            \ or redistribution (e.g., from another protocol)."
          type: boolean
          default: false
          x-field-uid: 4
        n_flag:
          description: "N-Flag: Node-SID flag.  \nIf set, then the Prefix-SID refers\
            \ to the router identified by the prefix. \nTypically, the N-Flag is set\
            \ on Prefix-SIDs that are attached to a router loopback address. \nThe\
            \ N-Flag is set when the Prefix-SID is a Node-SID as described in [RFC8402]."
          type: boolean
          default: false
          x-field-uid: 5
        p_flag:
          description: |-
            P-Flag: No-PHP (No Penultimate Hop-Popping) Flag.
            If set, then the penultimate hop MUST NOT pop the Prefix-SID before delivering the packet to the node that advertised the Prefix-SID.
          type: boolean
          default: false
          x-field-uid: 6
        e_flag:
          description: "E-Flag: Explicit-Null Flag.\nIf set, any upstream neighbor\
            \ of the Prefix-SID originator MUST replace the Prefix-SID with a Prefix-SID\
            \ \nthat has an Explicit NULL value (0 for IPv4 and 2 for IPv6) before\
            \ forwarding the packet."
          type: boolean
          default: false
          x-field-uid: 7
        l_flag:
          description: |-
            The local flag. If set, then the value/index carried by
            the Prefix-SID has local significance and the Prefix SID is from Please refer to device.isis.segment_routing.router_capability.srlb_ranges.
          type: boolean
          default: false
          x-field-uid: 8
        algorithm:
          description: |-
            The Isis may use various algorithms when calculating reachability to other nodes or to prefixes attached to these nodes.
            Refernce: https://datatracker.ietf.org/doc/html/rfc8667#SRALGOSUBTLV
          type: integer
          format: uint32
          default: 0
          minimum: 0
          maximum: 255
          x-field-uid: 9
    Isis.V6RouteRange:
      description: |-
        Emulated ISIS IPv6 routes.
      type: object
      properties:
        addresses:
          description: |-
            A list of group of IPv6 route addresses.
          type: array
          items:
            $ref: '#/components/schemas/V6RouteAddress'
          x-field-uid: 1
        link_metric:
          x-field-uid: 2
          description: |-
            The user-defined metric associated with this route range.
          type: integer
          format: uint32
          default: 0
          minimum: 0
          maximum: 16777215
        origin_type:
          x-field-uid: 3
          description: "The origin of the advertised route-internal or external to\
            \ the ISIS area. Options include the following: \n  Internal-for intra-area\
            \ routes, through Level 1 LSPs. \n  External-for inter-area routes redistributed\
            \ within L1, through Level\n1 LSPs."
          type: string
          default: internal
          x-enum:
            internal:
              x-field-uid: 1
            external:
              x-field-uid: 2
          enum:
          - internal
          - external
        redistribution_type:
          x-field-uid: 4
          description: "Defines the Up/Down (Redistribution) bit defined for TLVs\
            \ 128 and 130 by RFC 2966.  It is used for domain-wide advertisement of\
            \ prefix information.\n\n  Up (0)-used when a prefix is initially advertised\
            \ within the ISIS L3\nhierarchy, \n          and for all other prefixes\
            \ in L1 and L2 LSPs. (default) \n  Down (1)-used when an L1/L2 router\
            \ advertises L2 prefixes in L1 LSPs.\n\nThe prefixes are being advertised\
            \ from a higher level (L2) down to a lower level (L1). "
          type: string
          default: up
          x-enum:
            up:
              x-field-uid: 1
            down:
              x-field-uid: 2
          enum:
          - up
          - down
        name:
          x-field-uid: 5
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
        prefix_attr_enabled:
          x-field-uid: 6
          description: "Specifies whether the sub-TLV for IPv4/IPv6 Extended Reachability\
            \ Attribute Flags\nwill be advertised or not. "
          type: boolean
          default: false
        x_flag:
          x-field-uid: 7
          description: |-
            External Prefix Flag (Bit 0)
          type: boolean
          default: false
        r_flag:
          x-field-uid: 8
          description: |-
            Re-advertisement Flag (Bit 1)
          type: boolean
          default: false
        n_flag:
          x-field-uid: 9
          description: |-
            Node Flag (Bit 2)
          type: boolean
          default: false
        prefix_sids:
          description: |-
            A list of SID parameters for a group of IPv6 route addresses.
          type: array
          items:
            $ref: '#/components/schemas/IsisSR.PrefixSid'
          x-field-uid: 10
      required:
      - name
    Isis.SegmentRouting:
      description: "Segment Routing (SR) allows for a flexible definition of end-to-end\
        \ paths within IGP topologies by encoding paths as sequences of topological\
        \ sub-paths, \ncalled \"segments\". These segments are advertised by the link-state\
        \ routing protocols (IS-IS and OSPF). \nPrefix segments represent an ECMP-aware\
        \ shortest path to a prefix (or a node), as per the state of the IGP topology.\
        \ \nAdjacency segments represent a hop over a specific adjacency between two\
        \ nodes in the IGP. \nA prefix segment is typically a multi-hop path while\
        \ an adjacency segment, in most of the cases, is a one-hop path. \nThese segments\
        \ act as topological sub-paths that can be combined together to form the required\
        \ path.\nReference: https://datatracker.ietf.org/doc/html/rfc8667.:w\nAn implementation\
        \ may advertise Router Capability with default values if a user does not even\
        \ set the properties \nof Router Capability and Segment Routing Capability.\
        \  "
      type: object
      properties:
        router_capability:
          description: "Optional IS-IS TLV named CAPABILITY, formed of multiple sub-TLVs,\
            \ which allows a router to announce its\ncapabilities within an IS-IS\
            \ level or the entire routing domain.        "
          $ref: '#/components/schemas/Isis.RouterCapability'
          x-field-uid: 1
    Isis.RouterCapability:
      description: |-
        Container for the configuration of IS-IS Router CAPABILITY TLV.
        https://datatracker.ietf.org/doc/html/rfc7981#section-2.
        An implementation should set default values appropriately if any mandatory item is not configured by a user.
      type: object
      properties:
        choice:
          description: "The Router Capability ID SHOULD be identical to the value\
            \ advertised in the Traffic Engineering Router ID TLV [RFC5305].\nIf no\
            \ Traffic Engineering Router ID is assigned, the Router ID SHOULD be identical\
            \ to an IP Interface Address [RFC1195] \nadvertised by the originating\
            \ IS.\nIf the originating node does not support IPv4, then the reserved\
            \ value 0.0.0.0 MUST be used in the Router ID field, \nand the IPv6 TE\
            \ Router ID sub-TLV [RFC5316] MUST be present in the TLV.\n- ipv4_te_router_id:\
            \ IPv4 Traffic Engineering(TE) router id (defined in isis.basic.ipv4_te_router_id)\
            \ to be used as Router Capability ID.\n- interface_ip: When this is chosen\
            \ the first IPv4 address of the first eth interface associated with this\
            \ isis router instance should be assigned as the Router Capability ID.\n\
            - custom_router_cap_id: This option should be chosen when Router Capability\
            \ ID needs to be configured different from above two options."
          type: string
          default: ipv4_te_router_id
          x-field-uid: 1
          x-enum:
            ipv4_te_router_id:
              x-field-uid: 1
            interface_ip:
              x-field-uid: 2
            custom_router_cap_id:
              x-field-uid: 3
          enum:
          - ipv4_te_router_id
          - interface_ip
          - custom_router_cap_id
        custom_router_cap_id:
          description: |-
            Router Capability ID in IPv4 address format.
          type: string
          format: ipv4
          default: 0.0.0.0
          x-field-uid: 2
        s_bit:
          description: |-
            S bit (0x01): If the S bit is set(1), the IS-IS Router CAPABILITY TLV
            MUST be flooded across the entire routing domain.  If the S bit is
            not set(0), the TLV MUST NOT be leaked between levels.  This bit MUST
            NOT be altered during the TLV leaking.
          type: string
          default: not_flood
          x-enum:
            flood:
              x-field-uid: 1
            not_flood:
              x-field-uid: 2
          x-field-uid: 3
          enum:
          - flood
          - not_flood
        d_bit:
          description: |-
            D bit (0x02): When the IS-IS Router CAPABILITY TLV is leaked from
            Level 2 (L2) to Level 1 (L1), the D bit MUST be set.  Otherwise, this
            bit MUST be clear.  IS-IS Router CAPABILITY TLVs with the D bit set
            MUST NOT be leaked from Level 1 to Level 2.  This is to prevent TLV looping.
          type: string
          default: not_down
          x-enum:
            down:
              x-field-uid: 1
            not_down:
              x-field-uid: 2
          x-field-uid: 4
          enum:
          - down
          - not_down
        sr_capability:
          description: "SR-Capabilities.      "
          $ref: '#/components/schemas/Isis.SRCapability'
          x-field-uid: 5
        algorithms:
          description: "This contains one or more Segment Routing Algorithm that a\
            \ router may use various algorithms when calculating \nreachability to\
            \ other nodes or to prefixes attached to these nodes.\nThe Isis may use\
            \ various algorithms when calculating reachability to other nodes or to\
            \ prefixes attached to these\nnodes. Examples of these algorithms are\
            \ metric-based SPF, various sorts of Constrained SPF, etc.\n- 0: SPF algorithm\
            \ based on link metric.\n- 1: Strict SPF algorithm based on link metric.\n\
            Reference: https://datatracker.ietf.org/doc/html/rfc8665#name-igp-algorithm-types-registr.\n\
            When the originating router does not advertise the SR-Algorithm sub-TLV,\
            \ it implies that algorithm 0 is the only algorithm supported by the routers.\n\
            When the originating router does advertise the SR-Algorithm sub-TLV, then\
            \ algorithm 0 MUST be present while non-zero algorithms MAY be present."
          type: array
          items:
            type: integer
            format: uint32
            default: 0
            minimum: 0
            maximum: 255
          x-field-uid: 6
        srlb_ranges:
          description: |-
            This contains the list of SR Local Block (SRLB)
          type: array
          items:
            $ref: '#/components/schemas/IsisSR.Srlb'
          x-field-uid: 7
    Isis.SRCapability:
      description: "Container for the configuration of IS-IS SR-CAPABILITY TLV that\
        \ Segment Routing requires \neach router to advertise its SR data plane capability\
        \ and the range of MPLS label values \nit uses for Segment Routing in the\
        \ case where global SIDs are allocated (i.e., global indexes).\nReference:\
        \ https://datatracker.ietf.org/doc/html/rfc8667#name-sr-capabilities-sub-tlv.\n\
        An implementation should set default values appropriately if any mandatory\
        \ item is not configured by a user."
      type: object
      properties:
        flags:
          description: |-
            1 octet of flags.
          $ref: '#/components/schemas/IsisSR.CapabilityFlags'
          x-field-uid: 1
        srgb_ranges:
          description: |-
            This contains the list of SRGB.
            If no SRGB range is configured, implementation should send one SRGB range with default values.
          type: array
          items:
            $ref: '#/components/schemas/IsisSR.Srgb'
          x-field-uid: 2
    IsisSR.CapabilityFlags:
      description: "Container for the configuration of IS-IS SR-CAPABILITY flags.\n\
        The Router Capability TLV specifies flags that control its advertisement.\
        \ \nThe SR-Capabilities sub-TLV MUST be propagated throughout the level and\
        \ MUST NOT be advertised across level boundaries.\nTherefore, Router Capability\
        \ TLV distribution flags are set accordingly, i.e., \nthe S-Flag in the Router\
        \ Capability TLV [RFC7981] MUST be unset.\nReference: https://datatracker.ietf.org/doc/html/rfc8667#section-3.1-5.1.1.6.1."
      type: object
      properties:
        ipv4_mpls:
          description: |-
            I-Flag for the MPLS IPv4 Flag. If set, then the router is capable of processing SR-MPLS-encapsulated IPv4 packets on all interfaces.
          type: boolean
          default: true
          x-field-uid: 1
        ipv6_mpls:
          description: |-
            V-Flag for the MPLS IPv6 Flag. If set, then the router is capable of processing SR-MPLS-encapsulated IPv6 packets on all interfaces.
          type: boolean
          default: true
          x-field-uid: 2
    IsisSR.Srgb:
      description: |-
        This contains the propeties of Segment Routing Global Block (SRGB) Descriptor. Reference: https://datatracker.ietf.org/doc/html/rfc8667#section-3.1-7.1.1
      type: object
      properties:
        starting_sid:
          description: |-
            The SID/Label sub-TLV contains the first value of the SRGB while the range contains the number of SRGB elements.
          type: integer
          format: uint32
          minimum: 1
          maximum: 4294967295
          default: 16000
          x-field-uid: 1
        range:
          description: "This represents the number of SID in a SRGB range. "
          type: integer
          format: uint32
          default: 8000
          minimum: 1
          maximum: 4294967295
          x-field-uid: 2
    IsisSR.Srlb:
      description: "The SR Local Block (SRLB) sub-TLV contains the range of labels\
        \ the node has reserved for Local SIDs. \nLocal SIDs are used for Adjacency\
        \ SIDs or locally significant Prefix SIDs and may also be allocated by components\
        \ other than the IS-IS protocol. \nAs an example, an application or a controller\
        \ may instruct the router to allocate a specific Local SID. Therefore, \n\
        in order for such applications or controllers to know what Local SIDs are\
        \ available in the router, \nit is required that the router advertises its\
        \ SRLB.\nReference: https://datatracker.ietf.org/doc/html/rfc8667#name-sr-local-block-sub-tlv."
      type: object
      properties:
        starting_sid:
          description: |-
            The SID/Label sub-TLV contains the first value of the SRLB while the range contains the number of SRLB elements.
          type: integer
          format: uint32
          minimum: 1
          maximum: 4294967295
          default: 16000
          x-field-uid: 1
        range:
          description: "This represents the number of SIDs in a SRLB range. "
          type: integer
          format: uint32
          default: 8000
          minimum: 1
          maximum: 4294967295
          x-field-uid: 2
    Device.BgpRouter:
      description: |-
        Configuration for one or more IPv4 or IPv6 BGP peers.
      type: object
      required:
      - router_id
      properties:
        router_id:
          description: |-
            The BGP router ID is a unique identifier used by BGP. It is a 32-bit value that is often represented by an IPv4 address.
          type: string
          format: ipv4
          x-field-uid: 1
        ipv4_interfaces:
          description: "This contains an array of references to IPv4 interfaces, \
            \ each of which will have list of peers to different destinations.   "
          type: array
          items:
            $ref: '#/components/schemas/Bgp.V4Interface'
          x-field-uid: 2
        ipv6_interfaces:
          description: |-
            This contains an array of references to IPv6 interfaces,  each of which will have list of peers to different destinations.
          type: array
          items:
            $ref: '#/components/schemas/Bgp.V6Interface'
          x-field-uid: 3
    Device.Bgp.MessageHeaderError:
      description: |-
        All errors detected while processing the Message Header are indicated by sending the NOTIFICATION message  with the Error Code-Message Header Error. The Error Subcode elaborates on the specific nature of the error.
      type: object
      properties:
        subcode:
          description: |-
            The Error Subcode indicates the specific type of error encountered during Message Header processing.
          type: string
          default: connection_not_synchronized_code1_subcode1
          x-field-uid: 1
          x-enum:
            connection_not_synchronized_code1_subcode1:
              x-field-uid: 1
            bad_message_length_code1_subcode2:
              x-field-uid: 2
            bad_message_type_code1_subcode3:
              x-field-uid: 3
          enum:
          - connection_not_synchronized_code1_subcode1
          - bad_message_length_code1_subcode2
          - bad_message_type_code1_subcode3
    Device.Bgp.OpenMessageError:
      description: |-
        All errors detected while processing the OPEN message are indicated by sending the NOTIFICATION message  with the Error Code-Open Message Error. The Error Subcode elaborates on the specific nature of the error.
      type: object
      properties:
        subcode:
          description: |-
            The Error Subcode indicates the specific type of error encountered during OPEN message processing.
          type: string
          default: unsupported_version_number_code2_subcode1
          x-field-uid: 1
          x-enum:
            unsupported_version_number_code2_subcode1:
              x-field-uid: 1
            error_peer_as_code2_subcode2:
              x-field-uid: 2
            error_bgp_id_code2_subcode3:
              x-field-uid: 3
            unsupported_optional_parameter_code2_subcode4:
              x-field-uid: 4
            auth_failed_code2_subcode5:
              x-field-uid: 5
            unsupported_hold_time_code2_subcode6:
              x-field-uid: 6
            unsupported_capability_code2_subcode7:
              x-field-uid: 7
          enum:
          - unsupported_version_number_code2_subcode1
          - error_peer_as_code2_subcode2
          - error_bgp_id_code2_subcode3
          - unsupported_optional_parameter_code2_subcode4
          - auth_failed_code2_subcode5
          - unsupported_hold_time_code2_subcode6
          - unsupported_capability_code2_subcode7
    Device.Bgp.UpdateMessageError:
      description: |-
        All errors detected while processing the UPDATE message are indicated by sending the NOTIFICATION message  with the Error Code-Update Message Error. The Error Subcode elaborates on the specific nature of the error.
      type: object
      properties:
        subcode:
          description: |-
            The Error Subcode, the specific type of error encountered during UPDATE processing.
          type: string
          default: malformed_attrib_list_code3_subcode1
          x-field-uid: 1
          x-enum:
            malformed_attrib_list_code3_subcode1:
              x-field-uid: 1
            unrecognized_wellknown_attrib_code3_subcode2:
              x-field-uid: 2
            wellknown_attrib_missing_code3_subcode3:
              x-field-uid: 3
            attrib_flags_error_code3_subcode4:
              x-field-uid: 4
            attrib_length_error_code3_subcode5:
              x-field-uid: 5
            invalid_origin_attrib_code3_subcode6:
              x-field-uid: 6
            as_routing_loop_code3_subcode7:
              x-field-uid: 7
            invalid_nhop_attrib_code3_subcode8:
              x-field-uid: 8
            error_optional_attrib_code3_subcode9:
              x-field-uid: 9
            invalid_network_field_code3_subcode10:
              x-field-uid: 10
            abnormal_aspath_code3_subcode11:
              x-field-uid: 11
          enum:
          - malformed_attrib_list_code3_subcode1
          - unrecognized_wellknown_attrib_code3_subcode2
          - wellknown_attrib_missing_code3_subcode3
          - attrib_flags_error_code3_subcode4
          - attrib_length_error_code3_subcode5
          - invalid_origin_attrib_code3_subcode6
          - as_routing_loop_code3_subcode7
          - invalid_nhop_attrib_code3_subcode8
          - error_optional_attrib_code3_subcode9
          - invalid_network_field_code3_subcode10
          - abnormal_aspath_code3_subcode11
    Device.Bgp.HoldTimerExpired:
      description: |-
        If a system does not receive successive KEEPALIVE, UPDATE, and/or NOTIFICATION messages within the period specified  in the Hold Time field of the OPEN message, then the NOTIFICATION message with the Hold Timer Expired Error Code(Error Code 4) is  sent and the BGP connection is closed. The Sub Code used is 0. If a user wants to use non zero Sub Code then CustomError can be used.
    Device.Bgp.FiniteStateMachineError:
      description: |-
        Any error detected by the BGP Finite State Machine (e.g., receipt of an unexpected event) is indicated by  sending the NOTIFICATION message with the Error Code-Finite State Machine Error(Error Code 5). The Sub Code used is 0.  If a user wants to use non zero Sub Code then CustomError can be used.
    Device.Bgp.CeaseError:
      description: |-
        In the absence of any fatal errors, a BGP peer can close its BGP connection by sending the NOTIFICATION message with the  Error Code Cease. The 'hard_reset_code6_subcode9' subcode for Cease Notification can be used to signal a hard reset that will indicate that  Graceful Restart cannot be performed, even when Notification extensions to Graceful Restart procedure is supported.
      type: object
      properties:
        subcode:
          description: |-
            The Error Subcode to be sent to the peer in the Cease NOTIFICATION.
          type: string
          default: admin_shutdown_code6_subcode2
          x-field-uid: 1
          x-enum:
            max_number_prefix_reached_code6_subcode1:
              x-field-uid: 1
            admin_shutdown_code6_subcode2:
              x-field-uid: 2
            peer_deleted_code6_subcode3:
              x-field-uid: 3
            admin_reset_code6_subcode4:
              x-field-uid: 4
            connection_reject_code6_subcode5:
              x-field-uid: 5
            other_config_changes_code6_subcode6:
              x-field-uid: 6
            connection_collision_resolution_code6_subcode7:
              x-field-uid: 7
            out_of_resources_code6_subcode8:
              x-field-uid: 8
            bfd_session_down_code6_subcode10:
              x-field-uid: 9
            hard_reset_code6_subcode9:
              x-field-uid: 10
          enum:
          - max_number_prefix_reached_code6_subcode1
          - admin_shutdown_code6_subcode2
          - peer_deleted_code6_subcode3
          - admin_reset_code6_subcode4
          - connection_reject_code6_subcode5
          - other_config_changes_code6_subcode6
          - connection_collision_resolution_code6_subcode7
          - out_of_resources_code6_subcode8
          - bfd_session_down_code6_subcode10
          - hard_reset_code6_subcode9
    Device.Bgp.CustomError:
      description: |-
        A BGP peer can send NOTIFICATION message with user defined Error Code and Error Subcode.
      type: object
      properties:
        code:
          description: |-
            The Error code to be sent in the NOTIFICATION message to peer.
          type: integer
          format: uint32
          x-field-uid: 1
        subcode:
          description: |-
            The Error Subcode to be sent in the NOTIFICATION message to peer.
          type: integer
          format: uint32
          x-field-uid: 2
    Bgp.V4Peer:
      description: |-
        Configuration for emulated BGPv4 peers and routes.
      type: object
      required:
      - peer_address
      - as_type
      - as_number
      - name
      properties:
        peer_address:
          description: |-
            IPv4 address of the BGP peer for the session.
          type: string
          format: ipv4
          x-field-uid: 1
        evpn_ethernet_segments:
          description: "This contains the list of Ethernet Virtual Private Network\
            \ (EVPN) Ethernet Segments (ES) Per BGP Peer for IPv4 Address Family Identifier\
            \ (AFI).\n\nEach Ethernet Segment contains a list of EVPN Instances (EVIs)\
            \ . \nEach EVI contains a list of Broadcast Domains. \nEach Broadcast\
            \ Domain contains a list of MAC/IP Ranges. \n\n<Ethernet Segment, EVI,\
            \ Broadcast Domain> is responsible for advertising Ethernet Auto-discovery\
            \ Route Per EVI (Type 1).\n\n<Ethernet Segment, EVI> is responsible for\
            \ advertising Ethernet Auto-discovery Route Per Ethernet Segment (Type\
            \ 1).\n\n<Ethernet Segment, EVI, Broadcast Domain, MAC/IP> is responsible\
            \ for advertising MAC/IP Advertisement Route (Type 2).\n\n<Ethernet Segment,\
            \ EVI, Broadcast Domain> is responsible for advertising Inclusive Multicast\
            \ Ethernet Tag Route (Type 3).\n\nEthernet Segment is responsible for\
            \ advertising Ethernet Segment Route (Type 4)."
          type: array
          items:
            $ref: '#/components/schemas/BgpV4.EthernetSegment'
          x-field-uid: 2
        as_type:
          x-field-uid: 3
          description: |-
            The type of BGP autonomous system. External BGP is used for BGP links between two or more autonomous systems (ebgp). Internal BGP is used within a single autonomous system (ibgp). BGP property defaults are aligned with this object defined as an internal BGP peer. If the as_type is specified as 'ebgp' then other properties will need to be specified as per an external BGP peer. Specifically, for 'ebgp',  'as_set_mode' attribute in 'as_path' field  in any Route Range should be changed from default value 'do_not_include_local_as' to any other value.
          type: string
          x-enum:
            ibgp:
              x-field-uid: 1
            ebgp:
              x-field-uid: 2
          enum:
          - ibgp
          - ebgp
        as_number:
          x-field-uid: 4
          description: |-
            Autonomous System Number (AS number or ASN)
          type: integer
          format: uint32
        as_number_width:
          x-field-uid: 5
          description: |-
            The width in bytes of the as_number values. Any as_number values that exceeds the width MUST result in an error.
          type: string
          default: four
          x-enum:
            two:
              x-field-uid: 1
            four:
              x-field-uid: 2
          enum:
          - two
          - four
        advanced:
          x-field-uid: 6
          $ref: '#/components/schemas/Bgp.Advanced'
        capability:
          x-field-uid: 7
          $ref: '#/components/schemas/Bgp.Capability'
        learned_information_filter:
          x-field-uid: 8
          $ref: '#/components/schemas/Bgp.LearnedInformationFilter'
        v4_routes:
          x-field-uid: 9
          description: |-
            Emulated BGPv4 route ranges.
          type: array
          items:
            $ref: '#/components/schemas/Bgp.V4RouteRange'
        v6_routes:
          x-field-uid: 10
          description: |-
            Emulated BGPv6 route ranges.
          type: array
          items:
            $ref: '#/components/schemas/Bgp.V6RouteRange'
        v4_srte_policies:
          x-field-uid: 11
          description: |-
            Segment Routing Traffic Engineering (SR TE) Policies for IPv4 Address Family Identifier (AFI).
          type: array
          items:
            $ref: '#/components/schemas/BgpSrte.V4Policy'
        v6_srte_policies:
          x-field-uid: 12
          description: |-
            Segment Routing Traffic Engineering (SR TE) Policies for IPv6 Address Family Identifier (AFI).
          type: array
          items:
            $ref: '#/components/schemas/BgpSrte.V6Policy'
        name:
          x-field-uid: 13
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
        graceful_restart:
          x-field-uid: 14
          $ref: '#/components/schemas/Bgp.GracefulRestart'
        replay_updates:
          description: "BGP Updates to be sent to the peer as specified after the\
            \ session is established. "
          $ref: '#/components/schemas/Bgp.UpdateReplay'
          x-field-uid: 15
    Bgp.V4Interface:
      description: |-
        Configuration for emulated BGPv4 peers and routes on a single IPv4 interface.
      type: object
      required:
      - ipv4_name
      properties:
        ipv4_name:
          description: |
            The unique name of the IPv4,  Loopback IPv4 interface or DHCPv4 client used as the source IP for this list of BGP peers.

            x-constraint:
            - /components/schemas/Device.Ipv4/properties/name
            - /components/schemas/Device.Ipv4Loopback/properties/name
            - /components/schemas/Device.Dhcpv4client/properties/name
          type: string
          x-constraint:
          - /components/schemas/Device.Ipv4/properties/name
          - /components/schemas/Device.Ipv4Loopback/properties/name
          - /components/schemas/Device.Dhcpv4client/properties/name
          x-field-uid: 1
        peers:
          description: |-
            This contains the list of BGPv4 peers configured on this interface.
          type: array
          items:
            $ref: '#/components/schemas/Bgp.V4Peer'
          x-field-uid: 2
    BgpV4.EthernetSegment:
      description: "Configuration for BGP Ethernet Segment ranges. Advertises following\
        \ routes - \n\nType 4 - Ethernet Segment Route"
      type: object
      properties:
        df_election:
          description: |-
            Designated Forwarder (DF) election configuration.
          $ref: '#/components/schemas/Bgp.EthernetSegment.DfElection'
          x-field-uid: 1
        evis:
          description: |-
            This contains the list of EVIs.
          type: array
          items:
            $ref: '#/components/schemas/BgpV4.EvpnEvis'
          x-field-uid: 2
        esi:
          x-field-uid: 3
          description: |-
            10-octet Ethernet Segment Identifier (ESI) Example - For multi-home scenario nonZero ESI is '10000000000000000000' .
          type: string
          format: hex
          default: '00000000000000000000'
        active_mode:
          x-field-uid: 4
          description: |-
            Single Active or All Active mode Redundancy mode selection for Multi-home.
          type: string
          default: all_active
          x-enum:
            single_active:
              x-field-uid: 1
            all_active:
              x-field-uid: 2
          enum:
          - single_active
          - all_active
        esi_label:
          x-field-uid: 5
          description: "The label value to be advertised as ESI Label in ESI Label\
            \ Extended Community. This is included in Ethernet Auto-discovery per\
            \ ES Routes advertised by a router. "
          type: integer
          format: uint32
          maximum: 16777215
          default: 0
        advanced:
          x-field-uid: 6
          $ref: '#/components/schemas/Bgp.RouteAdvanced'
        communities:
          x-field-uid: 7
          description: |-
            Optional community settings.
          type: array
          items:
            $ref: '#/components/schemas/Bgp.Community'
        ext_communities:
          x-field-uid: 8
          description: |-
            Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities  attributes are utilized to trigger routing decisions, such as acceptance, rejection,  preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger  range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for  administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two  byte local administrator id.  When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for  administrator_ipv4_address is a four byte IPv4 address followed by a two byte local administrator id.  When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes  contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from  IANA's "ETHER TYPES" registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format.  When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the  last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates  occur for the same MAC address.
          type: array
          items:
            $ref: '#/components/schemas/Bgp.ExtCommunity'
        as_path:
          x-field-uid: 9
          description: |-
            Optional AS PATH settings.
          $ref: '#/components/schemas/Bgp.AsPath'
    Bgp.EthernetSegment.DfElection:
      description: |-
        Configuration for Designated Forwarder (DF) election among the Provider Edge (PE) routers on the same Ethernet Segment.
      type: object
      properties:
        election_timer:
          description: |-
            The DF election timer in seconds.
          type: integer
          format: uint32
          maximum: 300
          default: 3
          x-field-uid: 1
    Bgp.RouteAdvanced:
      description: |-
        Configuration for advanced BGP route range settings.
      type: object
      properties:
        include_multi_exit_discriminator:
          description: |-
            BGP Multi Exit Discriminator attribute sent to the peer to help in the route selection process.  If set to true, the Multi Exit Discriminator attribute will be included in the route advertisement.
          type: boolean
          default: true
          x-field-uid: 3
        multi_exit_discriminator:
          description: |-
            The multi exit discriminator (MED) value used for route selection sent to the peer.
          type: integer
          format: uint32
          x-field-uid: 1
        include_origin:
          description: |-
            If set to true, the Origin attribute will be included in the route advertisement.
          type: boolean
          default: true
          x-field-uid: 4
        origin:
          description: |-
            The origin attribute of a prefix can take three values: the prefix originates from an interior routing protocol 'igp',  it originates from 'egp' or the origin is 'incomplete', if the prefix is learned through other means.
          type: string
          default: igp
          x-field-uid: 2
          x-enum:
            igp:
              x-field-uid: 1
            egp:
              x-field-uid: 2
            incomplete:
              x-field-uid: 3
          enum:
          - igp
          - egp
          - incomplete
        include_local_preference:
          description: |-
            BGP Local Preference attribute sent to the peer to indicate the degree of preference  for externally learned routes. If set to true, the Local Preference attribute will be included  in the route advertisement. This should be included only for internal peers.
          type: boolean
          default: true
          x-field-uid: 5
        local_preference:
          description: |-
            Value to be set in Local Preference attribute if include_local_preference is set to true. It is  used for the selection of the path for the traffic leaving the AS. The route with the  highest local preference value is preferred.
          type: integer
          format: uint32
          default: 100
          x-field-uid: 6
    Bgp.Community:
      description: |-
        BGP communities provide additional capability for tagging routes and  for modifying BGP routing policy on upstream and downstream routers. BGP community is a 32-bit number which is broken into 16-bit AS number and  a 16-bit custom value.
      type: object
      properties:
        type:
          description: |-
            The type of community AS number.
          type: string
          x-field-uid: 1
          x-enum:
            manual_as_number:
              x-field-uid: 1
            no_export:
              x-field-uid: 2
            no_advertised:
              x-field-uid: 3
            no_export_subconfed:
              x-field-uid: 4
            llgr_stale:
              x-field-uid: 5
            no_llgr:
              x-field-uid: 6
          enum:
          - manual_as_number
          - no_export
          - no_advertised
          - no_export_subconfed
          - llgr_stale
          - no_llgr
        as_number:
          description: |-
            First two octets of 32 bit community AS number.
          type: integer
          format: uint32
          maximum: 65535
          default: 0
          x-field-uid: 2
        as_custom:
          description: "Last two octets of the community value. "
          type: integer
          format: uint32
          maximum: 65535
          default: 0
          x-field-uid: 3
    Bgp.ExtCommunity:
      description: |-
        The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities  attributes are utilized to trigger routing decisions, such as acceptance, rejection,  preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a  format defined by the type and sub-type field. Extended communities provide a larger  range for grouping or categorizing communities.
      type: object
      properties:
        type:
          description: "Extended Community Type field of 1 Byte.\n - administrator_as_2octet:\
            \ Two-Octet AS Specific Extended Community (RFC 4360).\n - administrator_ipv4_address:\
            \ IPv4 Address Specific Extended Community (RFC 4360).\n - administrator_as_4octet:\
            \  4-Octet AS Specific Extended Community (RFC 5668).\n - opaque: Opaque\
            \ Extended Community (RFC 7432).\n - evpn: EVPN Extended Community (RFC\
            \ 7153).  \n - administrator_as_2octet_link_bandwidth : Link Bandwidth\
            \ Extended Community (RFC 7153)."
          type: string
          x-field-uid: 1
          x-enum:
            administrator_as_2octet:
              x-field-uid: 1
            administrator_ipv4_address:
              x-field-uid: 2
            administrator_as_4octet:
              x-field-uid: 3
            opaque:
              x-field-uid: 4
            evpn:
              x-field-uid: 5
            administrator_as_2octet_link_bandwidth:
              x-field-uid: 6
          enum:
          - administrator_as_2octet
          - administrator_ipv4_address
          - administrator_as_4octet
          - opaque
          - evpn
          - administrator_as_2octet_link_bandwidth
        subtype:
          description: |-
            Extended Community Sub Type field of 1 Byte.
            - route_target: Route Target.
            - origin: Origin.
            - extended_bandwidth: Specifies the link bandwidth.
            - color: Specifies the color value.
            - encapsulation: Specifies the Encapsulation Extended Community.
            - mac_address: Specifies the Extended community MAC address.
          type: string
          x-field-uid: 2
          x-enum:
            route_target:
              x-field-uid: 1
            origin:
              x-field-uid: 2
            extended_bandwidth:
              x-field-uid: 3
            color:
              x-field-uid: 4
            encapsulation:
              x-field-uid: 5
            mac_address:
              x-field-uid: 6
          enum:
          - route_target
          - origin
          - extended_bandwidth
          - color
          - encapsulation
          - mac_address
        value:
          description: |-
            Extended Community value of 6 Bytes. Example - for the Opaque type and Color subtype value can be '0000000000c8'  for the color value 200.
          type: string
          format: hex
          x-field-uid: 3
    Bgp.AsPath:
      description: |-
        This attribute identifies the autonomous systems through  which routing information carried in this UPDATE message has passed. This contains the configuration of how to include the Local AS in the AS path attribute of the MP REACH NLRI. It also contains optional configuration of additional AS Path Segments that can be included in the AS Path attribute. The AS Path consists of a Set or Sequence of Autonomous Systems (AS) numbers  that a routing information passes through to reach the destination.
      type: object
      properties:
        as_set_mode:
          description: |-
            Defines how the Local AS should be included in the MP REACH NLRI. For iBGP sessions, "Do Not Include Local AS" must be chosen. For eBGP sessions, any choice other than "Do Not Include Local AS" can be chosen.
          type: string
          default: do_not_include_local_as
          x-field-uid: 1
          x-enum:
            do_not_include_local_as:
              x-field-uid: 1
            include_as_seq:
              x-field-uid: 2
            include_as_set:
              x-field-uid: 3
            include_as_confed_seq:
              x-field-uid: 4
            include_as_confed_set:
              x-field-uid: 5
            prepend_to_first_segment:
              x-field-uid: 6
          enum:
          - do_not_include_local_as
          - include_as_seq
          - include_as_set
          - include_as_confed_seq
          - include_as_confed_set
          - prepend_to_first_segment
        segments:
          description: "The additional AS path segments to be added in the NLRI. \
            \ By default, an empty AS path is always included and  the local AS is\
            \ added to it as per the value of 'as_set_mode' attribute. "
          type: array
          items:
            $ref: '#/components/schemas/Bgp.AsPathSegment'
          x-field-uid: 2
    Bgp.AsPathSegment:
      description: |-
        Configuration for a single BGP AS path segment
      type: object
      properties:
        type:
          description: |-
            AS sequence is the most common type of AS_PATH, it contains the  list of ASNs starting with the most recent ASN being added read  from left to right.
            The other three AS_PATH types are used for Confederations - AS_SET is the type of AS_PATH attribute that summarizes routes using using the aggregate-address command, allowing AS_PATHs to be  summarized in the update as well. - AS_CONFED_SEQ gives the list of ASNs in the path starting with the  most recent ASN to be added reading left to right - AS_CONFED_SET will allow summarization of multiple AS PATHs to be  sent in BGP Updates.
          type: string
          default: as_seq
          x-field-uid: 1
          x-enum:
            as_seq:
              x-field-uid: 1
            as_set:
              x-field-uid: 2
            as_confed_seq:
              x-field-uid: 3
            as_confed_set:
              x-field-uid: 4
          enum:
          - as_seq
          - as_set
          - as_confed_seq
          - as_confed_set
        as_numbers:
          description: |-
            The AS numbers in this AS path segment.
          type: array
          items:
            type: integer
            format: uint32
            default: 1
          x-field-uid: 2
    BgpV4.EvpnEvis:
      description: "This contains a list of different flavors of EVPN. \nFor example\
        \ EVPN over VXLAN or EVPN over MPLS etc to be configured per Ethernet segment.\
        \ \nNeed to instantiate correct type of EVPN instance as per requirement."
      type: object
      properties:
        choice:
          type: string
          default: evi_vxlan
          x-field-uid: 1
          x-enum:
            evi_vxlan:
              x-field-uid: 1
          enum:
          - evi_vxlan
        evi_vxlan:
          description: "EVPN VXLAN instance to be configured per Ethernet Segment.\
            \                  "
          $ref: '#/components/schemas/BgpV4.EviVxlan'
          x-field-uid: 2
    BgpV4.EviVxlan:
      description: "Configuration for BGP EVPN EVI. Advertises following routes -\
        \ \n\nType 3 - Inclusive Multicast Ethernet Tag Route\n\nType 1 -  Ethernet\
        \ Auto-discovery Route (Per EVI)\n\nType 1 -  Ethernet Auto-discovery Route\
        \ (Per ES)"
      type: object
      properties:
        broadcast_domains:
          description: |-
            This contains the list of Broadcast Domains to be configured per EVI.
          type: array
          items:
            $ref: '#/components/schemas/BgpV4.EviVxlan.BroadcastDomain'
          x-field-uid: 1
        replication_type:
          x-field-uid: 2
          description: |-
            This model only supports Ingress Replication
          type: string
          default: ingress_replication
          x-enum:
            ingress_replication:
              x-field-uid: 1
          enum:
          - ingress_replication
        pmsi_label:
          x-field-uid: 3
          description: |-
            Downstream assigned VNI to be carried as Part of P-Multicast Service Interface Tunnel attribute (PMSI Tunnel Attribute) in Type 3 Inclusive Multicast Ethernet Tag Route.
          type: integer
          format: uint32
          maximum: 16777215
          default: 16
        ad_label:
          x-field-uid: 4
          description: |-
            The Auto-discovery Route label (AD label) value, which gets advertised in the Ethernet Auto-discovery Route per <EVI, ESI>
          type: integer
          format: uint32
          maximum: 16777215
          default: 0
        route_distinguisher:
          x-field-uid: 5
          description: |-
            Colon separated Extended Community value of 6 Bytes - "AS number: Value" identifying an EVI.            Example - for the as_2octet "60005:100".
          $ref: '#/components/schemas/Bgp.RouteDistinguisher'
        route_target_export:
          x-field-uid: 6
          description: "List of Layer 2 Virtual Network Identifier (L2VNI) export\
            \ targets associated with this EVI. "
          type: array
          items:
            $ref: '#/components/schemas/Bgp.RouteTarget'
        route_target_import:
          x-field-uid: 7
          description: "List of L2VNI import targets associated with this EVI. "
          type: array
          items:
            $ref: '#/components/schemas/Bgp.RouteTarget'
        l3_route_target_export:
          x-field-uid: 8
          description: |-
            List of Layer 3 Virtual Network Identifier (L3VNI) Export Route Targets.
          type: array
          items:
            $ref: '#/components/schemas/Bgp.RouteTarget'
        l3_route_target_import:
          x-field-uid: 9
          description: |-
            List of L3VNI Import Route Targets.
          type: array
          items:
            $ref: '#/components/schemas/Bgp.RouteTarget'
        advanced:
          x-field-uid: 10
          $ref: '#/components/schemas/Bgp.RouteAdvanced'
        communities:
          x-field-uid: 11
          description: |-
            Optional community settings.
          type: array
          items:
            $ref: '#/components/schemas/Bgp.Community'
        ext_communities:
          x-field-uid: 12
          description: |-
            Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities  attributes are utilized to trigger routing decisions, such as acceptance, rejection,  preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger  range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for  administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two  byte local administrator id.  When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for  administrator_ipv4_address is a four byte IPv4 address followed by a two byte local administrator id.  When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes  contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from  IANA's "ETHER TYPES" registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format.  When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the  last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates  occur for the same MAC address.
          type: array
          items:
            $ref: '#/components/schemas/Bgp.ExtCommunity'
        as_path:
          x-field-uid: 13
          description: |-
            Optional AS PATH settings.
          $ref: '#/components/schemas/Bgp.AsPath'
    BgpV4.EviVxlan.BroadcastDomain:
      description: |-
        Configuration for Broadcast Domains per EVI.
      type: object
      properties:
        cmac_ip_range:
          description: "This contains the list of Customer MAC/IP Ranges to be configured\
            \ per Broadcast Domain. \n\nAdvertises following route - \nType 2 - MAC/IP\
            \ Advertisement Route."
          type: array
          items:
            $ref: '#/components/schemas/Bgp.CMacIpRange'
          x-field-uid: 1
        ethernet_tag_id:
          x-field-uid: 2
          description: |-
            The Ethernet Tag ID of the Broadcast Domain.
          type: integer
          format: uint32
          default: 0
        vlan_aware_service:
          x-field-uid: 3
          description: |-
            VLAN-Aware service to be enabled or disabled.
          type: boolean
          default: false
    Bgp.CMacIpRange:
      description: "Configuration for MAC/IP Ranges per Broadcast Domain. \n\nAdvertises\
        \ following route -\n\nType 2 - MAC/IP Advertisement Route."
      type: object
      properties:
        mac_addresses:
          description: "Host MAC address range per Broadcast Domain. "
          $ref: '#/components/schemas/MACRouteAddress'
          x-field-uid: 1
        l2vni:
          description: |-
            Layer 2 Virtual Network Identifier (L2VNI) to be advertised with MAC/IP Advertisement Route (Type 2)
          type: integer
          format: uint32
          maximum: 16777215
          default: 0
          x-field-uid: 2
        ipv4_addresses:
          description: "Host IPv4 address range per Broadcast Domain.         "
          $ref: '#/components/schemas/V4RouteAddress'
          x-field-uid: 3
        ipv6_addresses:
          description: "Host IPv6 address range per Broadcast Domain.            \
            \     "
          $ref: '#/components/schemas/V6RouteAddress'
          x-field-uid: 4
        l3vni:
          description: |-
            Layer 3 Virtual Network Identifier (L3VNI) to be advertised with MAC/IP Advertisement Route (Type 2).
          type: integer
          format: uint32
          maximum: 16777215
          default: 0
          x-field-uid: 5
        include_default_gateway:
          description: |-
            Include default Gateway Extended Community in MAC/IP Advertisement Route (Type 2).
          type: boolean
          default: false
          x-field-uid: 6
        advanced:
          $ref: '#/components/schemas/Bgp.RouteAdvanced'
          x-field-uid: 7
        communities:
          description: |-
            Optional community settings.
          type: array
          items:
            $ref: '#/components/schemas/Bgp.Community'
          x-field-uid: 8
        ext_communities:
          description: |-
            Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities  attributes are utilized to trigger routing decisions, such as acceptance, rejection,  preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger  range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for  administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two  byte local administrator id.  When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for  administrator_ipv4_address is a four byte IPv4 address followed by a two byte local administrator id.  When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes  contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from  IANA's "ETHER TYPES" registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format.  When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the  last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates  occur for the same MAC address.
          type: array
          items:
            $ref: '#/components/schemas/Bgp.ExtCommunity'
          x-field-uid: 9
        as_path:
          description: |-
            Optional AS PATH settings.
          $ref: '#/components/schemas/Bgp.AsPath'
          x-field-uid: 10
        name:
          x-field-uid: 11
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
      required:
      - name
    Bgp.RouteDistinguisher:
      description: |-
        BGP Route Distinguisher.
      type: object
      properties:
        rd_type:
          description: "Route Distinguisher Type field of 2 Byte.\n - as_2octet: Two-Octet\
            \ AS Specific Extended Community (RFC 4360).\n - ipv4_address: IPv4 Address\
            \ Specific Extended Community (RFC 4360).\n - as_4octet:  4-Octet AS Specific\
            \ Extended Community (RFC 5668). "
          type: string
          default: as_2octet
          x-field-uid: 1
          x-enum:
            as_2octet:
              x-field-uid: 1
            ipv4_address:
              x-field-uid: 2
            as_4octet:
              x-field-uid: 3
          enum:
          - as_2octet
          - ipv4_address
          - as_4octet
        auto_config_rd_ip_addr:
          description: |-
            Allow to automatically configure RD IP address  from local ip.
          type: boolean
          default: false
          x-field-uid: 2
        rd_value:
          description: |-
            Colon separated Extended Community value of 6 Bytes - "AS number: Value".  Example - for the as_2octet or as_4octet "60005:100",  for ipv4_address "1.1.1.1:100"
          type: string
          x-field-uid: 3
    Bgp.RouteTarget:
      description: |-
        BGP Route Target.
      type: object
      properties:
        rt_type:
          description: "Extended Community Type field of 2 Byte.\n - as_2octet: Two-Octet\
            \ AS Specific Extended Community (RFC 4360).\n - ipv4_address: IPv4 Address\
            \ Specific Extended Community (RFC 4360).\n - as_4octet:  4-Octet AS Specific\
            \ Extended Community (RFC 5668). "
          type: string
          x-field-uid: 1
          x-enum:
            as_2octet:
              x-field-uid: 1
            ipv4_address:
              x-field-uid: 2
            as_4octet:
              x-field-uid: 3
          enum:
          - as_2octet
          - ipv4_address
          - as_4octet
        rt_value:
          description: |-
            Colon separated Extended Community value of 6 Bytes - AS number: Assigned Number.   Example - for the as_2octet or as_4octet "60005:100",  for ipv4_address "1.1.1.1:100"
          type: string
          x-field-uid: 2
    Bgp.Advanced:
      description: |-
        Configuration for BGP advanced settings.
      type: object
      properties:
        hold_time_interval:
          description: |-
            Number of seconds the sender proposes for the value of the Hold Timer.
          type: integer
          format: uint32
          default: 90
          x-field-uid: 1
        keep_alive_interval:
          description: |-
            Number of seconds between transmissions of Keepalive messages by this peer.
          type: integer
          format: uint32
          default: 30
          x-field-uid: 2
        update_interval:
          description: |-
            The time interval at which Update messages are sent to the DUT, expressed as the number of milliseconds between Update messages. The update interval 0 implies to send all the updates as fast as possible.
          type: integer
          format: uint32
          default: 0
          x-field-uid: 3
        time_to_live:
          description: |-
            The limited number of iterations that a unit of data can experience before the data is discarded. This is placed in the TTL field in the IP header of the  transmitted packets.
          type: integer
          format: uint32
          default: 64
          maximum: 255
          x-field-uid: 4
        md5_key:
          description: |-
            The value to be used as a secret MD5 key for authentication. If not configured, MD5 authentication will not be enabled.
          type: string
          x-field-uid: 5
        passive_mode:
          description: |-
            If set to true, the local BGP peer will wait for the remote peer to initiate the BGP session
            by establishing the TCP connection, rather than initiating sessions from the local peer.
          type: boolean
          default: false
          x-field-uid: 6
        listen_port:
          description: |-
            The TCP port number on which to accept BGP connections from the remote peer.
          type: integer
          format: uint32
          default: 179
          maximum: 65535
          x-field-uid: 7
        neighbor_port:
          description: |-
            Destination TCP port number of the BGP peer when initiating a
            session from the local BGP peer.
          type: integer
          format: uint32
          default: 179
          maximum: 65535
          x-field-uid: 8
    Bgp.Capability:
      description: |-
        Configuration for BGP capability settings.
      type: object
      properties:
        ipv4_unicast:
          description: |-
            Support for the IPv4 Unicast address family.
          type: boolean
          default: true
          x-field-uid: 1
        ipv4_multicast:
          description: "Support for the IPv4 Multicast address family. "
          type: boolean
          default: false
          x-field-uid: 2
        ipv6_unicast:
          description: |-
            Support for the IPv4 Unicast address family.
          type: boolean
          default: true
          x-field-uid: 3
        ipv6_multicast:
          description: |-
            Support for the IPv6 Multicast address family.
          type: boolean
          default: false
          x-field-uid: 4
        vpls:
          description: "Support for VPLS as below. \nRFC4761 - Virtual Private LAN\
            \ Service (VPLS) using BGP for Auto-Discovery\nand Signaling. \nRFC6624\
            \ - Layer 2 Virtual Private Networks using BGP for Auto-Discovery \nand\
            \ Signaling."
          type: boolean
          default: false
          x-field-uid: 5
        route_refresh:
          description: |-
            Support for the route refresh capabilities. Route Refresh allows the dynamic exchange of route refresh requests  and routing information between BGP peers and the subsequent re-advertisement  of the outbound or inbound routing table.
          type: boolean
          default: true
          x-field-uid: 6
        route_constraint:
          description: |-
            Supports for the route constraint capabilities. Route Constraint allows the advertisement of Route Target Membership  information. The BGP peers exchange Route Target Reachability Information,  which is used to build a route distribution graph.  This limits the propagation of VPN Network Layer Reachability Information (NLRI) between different autonomous systems  or distinct clusters of the same autonomous system. This is supported for Layer 3 Virtual Private Network scenario.
          type: boolean
          default: false
          x-field-uid: 7
        link_state_non_vpn:
          description: |-
            Support for BGP Link State for ISIS and OSPF.
          type: boolean
          default: false
          x-field-uid: 8
        link_state_vpn:
          description: |-
            Capability advertisement of BGP Link State for VPNs.
          type: boolean
          default: false
          x-field-uid: 9
        evpn:
          description: |-
            Support for the EVPN address family.
          type: boolean
          default: false
          x-field-uid: 10
        extended_next_hop_encoding:
          description: |-
            Support for extended Next Hop Encoding for Nexthop field in  IPv4 routes advertisement.  This allows IPv4 routes being advertised by IPv6 peers to  include an IPv6 Nexthop.
          type: boolean
          default: false
          x-field-uid: 11
        ipv4_multicast_vpn:
          description: |-
            Support for the IPv4 Multicast VPN address family.
          type: boolean
          default: false
          x-field-uid: 12
        ipv4_mpls_vpn:
          description: |-
            Support for the IPv4 MPLS L3VPN address family.
          type: boolean
          default: false
          x-field-uid: 13
        ipv4_mdt:
          description: |-
            Supports for IPv4 MDT address family messages.
          type: boolean
          default: false
          x-field-uid: 14
        ipv4_multicast_mpls_vpn:
          description: |-
            Support for the IPv4 Multicast VPN address family.
          type: boolean
          default: false
          x-field-uid: 15
        ipv4_unicast_flow_spec:
          description: |-
            Support for propagation of IPv4 unicast flow specification rules.
          type: boolean
          default: false
          x-field-uid: 16
        ipv4_sr_te_policy:
          description: |-
            Support for IPv4 SRTE policy.
          type: boolean
          default: false
          x-field-uid: 17
        ipv4_unicast_add_path:
          description: |-
            Support for IPv4 Unicast Add Path Capability.
          type: boolean
          default: false
          x-field-uid: 18
        ipv6_multicast_vpn:
          description: |-
            Support for the IPv6 Multicast VPN address family.
          type: boolean
          default: false
          x-field-uid: 19
        ipv6_mpls_vpn:
          description: |-
            Support for the IPv6 MPLS L3VPN address family.
          type: boolean
          default: false
          x-field-uid: 20
        ipv6_mdt:
          description: |-
            Support for IPv6 MDT address family messages.
          type: boolean
          default: false
          x-field-uid: 21
        ipv6_multicast_mpls_vpn:
          description: |-
            Support for the IPv6 Multicast VPN address family.
          type: boolean
          default: false
          x-field-uid: 22
        ipv6_unicast_flow_spec:
          description: |-
            Support for propagation of IPv6 unicast flow specification rules.
          type: boolean
          default: false
          x-field-uid: 23
        ipv6_sr_te_policy:
          description: |-
            Support for IPv6 SRTE policy.
          type: boolean
          default: false
          x-field-uid: 24
        ipv6_unicast_add_path:
          description: |-
            Support for IPv6 Unicast Add Path Capability.
          type: boolean
          default: false
          x-field-uid: 25
    Bgp.LearnedInformationFilter:
      description: |-
        Configuration for controlling storage of BGP learned information recieved from the peer.
      type: object
      properties:
        unicast_ipv4_prefix:
          description: |-
            If enabled, will store the information related to Unicast IPv4 Prefixes recieved from the peer.
          type: boolean
          default: false
          x-field-uid: 1
        unicast_ipv6_prefix:
          description: |-
            If enabled, will store the information related to Unicast IPv6 Prefixes recieved from the peer.
          type: boolean
          default: false
          x-field-uid: 2
    Bgp.V4RouteRange:
      description: |-
        Emulated BGPv4 route range.
      type: object
      properties:
        addresses:
          description: |-
            A list of group of IPv4 route addresses.
          type: array
          items:
            $ref: '#/components/schemas/V4RouteAddress'
          x-field-uid: 1
        next_hop_mode:
          description: "Specify the NextHop in MP REACH NLRI. The mode for setting\
            \ the IP address  of the NextHop in the MP REACH NLRI can be one of the\
            \ following:\n  Local IP: Automatically fills the Nexthop with the Local\
            \ IP of the BGP\npeer.\n  If BGP peer is of type IPv6, Nexthop Encoding\
            \ capability should be enabled.\n  Manual: Override the Nexthop with any\
            \ arbitrary IPv4/IPv6 address.   "
          type: string
          default: local_ip
          x-field-uid: 2
          x-enum:
            local_ip:
              x-field-uid: 1
            manual:
              x-field-uid: 2
          enum:
          - local_ip
          - manual
        next_hop_address_type:
          description: |-
            If the Nexthop Mode is Manual, it sets the type of the NextHop IP address.
          type: string
          default: ipv4
          x-field-uid: 3
          x-enum:
            ipv4:
              x-field-uid: 1
            ipv6:
              x-field-uid: 2
          enum:
          - ipv4
          - ipv6
        next_hop_ipv4_address:
          description: |-
            The IPv4 address of the next hop if the Nexthop Mode is manual and the Nexthop type is IPv4. If BGP peer is of type IPv6, Nexthop Encoding capability should be enabled.
          type: string
          format: ipv4
          default: 0.0.0.0
          x-field-uid: 4
        next_hop_ipv6_address:
          description: "The IPv6 address of the next hop if the Nexthop Mode is manual\
            \ and the Nexthop type is IPv6. "
          type: string
          format: ipv6
          default: ::0
          x-field-uid: 5
        advanced:
          x-field-uid: 6
          $ref: '#/components/schemas/Bgp.RouteAdvanced'
        communities:
          x-field-uid: 7
          description: |-
            Optional community settings.
          type: array
          items:
            $ref: '#/components/schemas/Bgp.Community'
        as_path:
          x-field-uid: 8
          $ref: '#/components/schemas/Bgp.AsPath'
        add_path:
          x-field-uid: 9
          $ref: '#/components/schemas/Bgp.AddPath'
        name:
          x-field-uid: 10
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
        ext_communities:
          x-status:
            status: deprecated
            information: This property is deprecated in favor of property extended_communities
          x-field-uid: 11
          description: |-
            Deprecated: This property is deprecated in favor of property extended_communities

            Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities  attributes are utilized to trigger routing decisions, such as acceptance, rejection,  preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger  range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for  administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two  byte local administrator id.  When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for  administrator_ipv4_address is a four byte IPv4 address followed by a two byte local administrator id.  When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes  contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from  IANA's "ETHER TYPES" registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format.  When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the  last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates  occur for the same MAC address.  Note evpn type is defined mainly for use with evpn route updates and not for IPv4 and IPv6 route updates.
          type: array
          items:
            $ref: '#/components/schemas/Bgp.ExtCommunity'
        extended_communities:
          x-field-uid: 12
          description: "Optional Extended Community settings. The Extended Communities\
            \ Attribute is a transitive optional BGP attribute, with the Type Code\
            \ 16. Community and Extended Communities  attributes are utilized to trigger\
            \ routing decisions, such as acceptance, rejection,  preference, or redistribution.\
            \ An extended community is an eight byte value. It is divided into two\
            \ main parts. The first two bytes of the community encode a type and sub-type\
            \ fields and the last six bytes carry a unique set of data in a format\
            \ defined by the type and sub-type field. Extended communities provide\
            \ a larger range for grouping or categorizing communities.            "
          type: array
          items:
            $ref: '#/components/schemas/Bgp.ExtendedCommunity'
      required:
      - name
    Bgp.AddPath:
      description: |-
        The BGP Additional Paths feature is a BGP extension that allows the  advertisement of multiple paths for the same prefix without the new  paths implicitly replacing any previous paths.
      type: object
      properties:
        path_id:
          description: |-
            The id of the additional path.
          type: integer
          format: uint32
          default: 1
          x-field-uid: 1
    Bgp.ExtendedCommunity:
      description: |-
        The Extended Communities Attribute is a optional BGP attribute,defined in RFC4360 with the Type Code 16.  Community and Extended Communities  attributes are utilized to trigger routing decisions, such as acceptance, rejection,  preference, or redistribution.  An extended community is an 8-Bytes value.It is divided into two main parts. The first 2 Bytes of the community  encode a type and optonal sub-type field. The last 6 bytes (or 7 bytes for types without a sub-type) carry a unique set of data in a format defined by the type and optional sub-type field.  Extended communities provide a larger  range for grouping or categorizing communities.
      type: object
      properties:
        choice:
          type: string
          default: transitive_2octet_as_type
          x-enum:
            transitive_2octet_as_type:
              x-field-uid: 1
            transitive_ipv4_address_type:
              x-field-uid: 2
            transitive_4octet_as_type:
              x-field-uid: 3
            transitive_opaque_type:
              x-field-uid: 4
            transitive_evpn_type:
              x-field-uid: 5
            non_transitive_2octet_as_type:
              x-field-uid: 6
            custom:
              x-field-uid: 7
          x-field-uid: 1
          enum:
          - transitive_2octet_as_type
          - transitive_ipv4_address_type
          - transitive_4octet_as_type
          - transitive_opaque_type
          - transitive_evpn_type
          - non_transitive_2octet_as_type
          - custom
        transitive_2octet_as_type:
          x-field-uid: 2
          $ref: '#/components/schemas/Bgp.ExtendedCommunity.Transitive2OctetAsType'
        transitive_ipv4_address_type:
          x-field-uid: 3
          $ref: '#/components/schemas/Bgp.ExtendedCommunity.TransitiveIpv4AddressType'
        transitive_4octet_as_type:
          x-field-uid: 4
          $ref: '#/components/schemas/Bgp.ExtendedCommunity.Transitive4OctetAsType'
        transitive_opaque_type:
          x-field-uid: 5
          $ref: '#/components/schemas/Bgp.ExtendedCommunity.TransitiveOpaqueType'
        transitive_evpn_type:
          x-field-uid: 6
          $ref: '#/components/schemas/Bgp.ExtendedCommunity.TransitiveEvpnType'
        non_transitive_2octet_as_type:
          x-field-uid: 7
          $ref: '#/components/schemas/Bgp.ExtendedCommunity.NonTransitive2OctetAsType'
        custom:
          x-field-uid: 8
          $ref: '#/components/schemas/Bgp.ExtendedCommunity.CustomType'
    Bgp.ExtendedCommunity.Transitive2OctetAsType.RouteTarget:
      description: "The Route Target Community identifies one or more routers that\
        \ may receive a set of routes (that carry this Community) carried by BGP.\
        \  It is sent with sub-type as 0x02.            "
      type: object
      properties:
        global_2byte_as:
          description: |-
            The two octet IANA assigned AS value assigned to the Autonomous System.
          type: integer
          format: uint32
          maximum: 65535
          default: 100
          x-field-uid: 1
        local_4byte_admin:
          type: integer
          format: uint32
          default: 1
          description: |-
            The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority.
          x-field-uid: 2
    Bgp.ExtendedCommunity.Transitive2OctetAsType.RouteOrigin:
      description: |-
        The Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP. It is sent with sub-type as 0x03 .
      type: object
      properties:
        global_2byte_as:
          description: |-
            The two octet IANA assigned AS value assigned to the Autonomous System.
          type: integer
          format: uint32
          maximum: 65535
          default: 100
          x-field-uid: 1
        local_4byte_admin:
          description: |-
            The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority.
          type: integer
          format: uint32
          default: 1
          x-field-uid: 2
    Bgp.ExtendedCommunity.Transitive2OctetAsType:
      description: "The Transitive Two-Octet AS-Specific Extended Community is sent\
        \ as type 0x00 .         "
      type: object
      properties:
        choice:
          type: string
          default: route_target_subtype
          x-enum:
            route_target_subtype:
              x-field-uid: 1
            route_origin_subtype:
              x-field-uid: 2
          x-field-uid: 1
          enum:
          - route_target_subtype
          - route_origin_subtype
        route_target_subtype:
          x-field-uid: 2
          $ref: '#/components/schemas/Bgp.ExtendedCommunity.Transitive2OctetAsType.RouteTarget'
        route_origin_subtype:
          x-field-uid: 3
          $ref: '#/components/schemas/Bgp.ExtendedCommunity.Transitive2OctetAsType.RouteOrigin'
    Bgp.ExtendedCommunity.TransitiveIpv4AddressType.RouteOrigin:
      description: |-
        The Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP It is sent with sub-type as 0x03.
      type: object
      properties:
        global_ipv4_admin:
          description: "An IPv4 unicast address assigned by one of the Internet registries.\
            \            "
          type: string
          format: ipv4
          default: 0.0.0.0
          x-field-uid: 1
        local_2byte_admin:
          description: |-
            The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which  the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority.
          type: integer
          format: uint32
          default: 1
          maximum: 65535
          x-field-uid: 2
    Bgp.ExtendedCommunity.TransitiveIpv4AddressType.RouteTarget:
      description: "The Route Target Community identifies one or more routers that\
        \ may receive a set of routes (that carry this Community) carried by BGP.\
        \  It is sent with sub-type as 0x02.             "
      type: object
      properties:
        global_ipv4_admin:
          description: "An IPv4 unicast address assigned by one of the Internet registries. "
          type: string
          format: ipv4
          default: 0.0.0.0
          x-field-uid: 1
        local_2byte_admin:
          type: integer
          format: uint32
          maximum: 65535
          default: 1
          description: |-
            The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which  the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority.
          x-field-uid: 2
    Bgp.ExtendedCommunity.TransitiveIpv4AddressType:
      description: |-
        The Transitive IPv4 Address Specific Extended Community is sent as type 0x01.
      type: object
      properties:
        choice:
          type: string
          default: route_target_subtype
          x-enum:
            route_target_subtype:
              x-field-uid: 1
            route_origin_subtype:
              x-field-uid: 2
          x-field-uid: 1
          enum:
          - route_target_subtype
          - route_origin_subtype
        route_target_subtype:
          x-field-uid: 2
          $ref: '#/components/schemas/Bgp.ExtendedCommunity.TransitiveIpv4AddressType.RouteTarget'
        route_origin_subtype:
          x-field-uid: 3
          $ref: '#/components/schemas/Bgp.ExtendedCommunity.TransitiveIpv4AddressType.RouteOrigin'
    Bgp.ExtendedCommunity.Transitive4OctetAsType.RouteTarget:
      description: "The Route Target Community identifies one or more routers that\
        \ may receive a set of routes (that carry this Community) carried by BGP.\
        \  It is sent with sub-type as 0x02              "
      type: object
      properties:
        global_4byte_as:
          description: |-
            The four octet IANA assigned AS value assigned to the Autonomous System.
          type: integer
          format: uint32
          default: 100
          x-field-uid: 1
        local_2byte_admin:
          type: integer
          format: uint32
          default: 1
          maximum: 65535
          description: |-
            The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority.
          x-field-uid: 2
    Bgp.ExtendedCommunity.Transitive4OctetAsType.RouteOrigin:
      description: |-
        The Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP. It is sent with sub-type as 0x03.
      type: object
      properties:
        global_4byte_as:
          description: |-
            The four octet IANA assigned AS value assigned to the Autonomous System.
          type: integer
          format: uint32
          default: 100
          x-field-uid: 1
        local_2byte_admin:
          description: |-
            The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority.
          type: integer
          format: uint32
          default: 1
          maximum: 65535
          x-field-uid: 2
    Bgp.ExtendedCommunity.Transitive4OctetAsType:
      description: "The Transitive Four-Octet AS-Specific Extended Community is sent\
        \ as type 0x02. It is defined in RFC 5668.       "
      type: object
      properties:
        choice:
          type: string
          default: route_target_subtype
          x-enum:
            route_target_subtype:
              x-field-uid: 1
            route_origin_subtype:
              x-field-uid: 2
          x-field-uid: 1
          enum:
          - route_target_subtype
          - route_origin_subtype
        route_target_subtype:
          x-field-uid: 2
          $ref: '#/components/schemas/Bgp.ExtendedCommunity.Transitive4OctetAsType.RouteTarget'
        route_origin_subtype:
          x-field-uid: 3
          $ref: '#/components/schemas/Bgp.ExtendedCommunity.Transitive4OctetAsType.RouteOrigin'
    Bgp.ExtendedCommunity.TransitiveOpaqueType.Color:
      description: "The Color Community contains locally administrator defined 'color'\
        \ value which is used in conjunction with Encapsulation  attribute to decide\
        \ whether a data packet can be transmitted on a certain tunnel or not. It\
        \ is defined in RFC9012 and sent with sub-type as 0x0b.             "
      type: object
      properties:
        flags:
          description: "Two octet flag values. "
          type: integer
          format: uint32
          maximum: 65535
          default: 0
          x-field-uid: 1
        color:
          type: integer
          format: uint32
          default: 0
          description: "The color value is user defined and configured locally and\
            \ used to determine whether a data packet can be transmitted on a certain\
            \ tunnel or not in conjunction with the Encapsulation attribute. It is\
            \ defined in RFC9012.           "
          x-field-uid: 2
    Bgp.ExtendedCommunity.TransitiveOpaqueType.Encapsulation:
      description: |-
        This identifies the type of tunneling technology being signalled. It is defined in RFC9012 and sent with sub-type as 0x0c.
      type: object
      properties:
        reserved:
          description: "Four bytes of reserved values. Normally set to 0 on transmit\
            \ and ignored on receive. "
          type: integer
          format: uint32
          default: 0
          x-field-uid: 1
        tunnel_type:
          description: "Identifies the type of tunneling technology being signalled.\
            \ Initially defined in RFC5512 and extended in RFC9012. Some of the important\
            \ tunnel types include  1 L2TPv3 over IP\t[RFC9012], \n2\tGRE\t[RFC9012]\n\
            7\tIP in IP\t[RFC9012]\n8\tVXLAN Encapsulation\t[RFC8365]\n9\tNVGRE Encapsulation\t\
            [RFC8365]\n10\tMPLS Encapsulation\t[RFC8365]\n15\tSR TE Policy Type\t\
            [draft-ietf-idr-segment-routing-te-policy]\n19\tGeneve Encapsulation\t\
            [RFC8926]"
          type: integer
          format: uint32
          maximum: 65535
          default: 1
          x-field-uid: 2
    Bgp.ExtendedCommunity.TransitiveOpaqueType:
      description: |-
        The Transitive Opaque Extended Community is sent as type 0x03.
      type: object
      properties:
        choice:
          type: string
          default: color_subtype
          x-enum:
            color_subtype:
              x-field-uid: 1
            encapsulation_subtype:
              x-field-uid: 2
          x-field-uid: 1
          enum:
          - color_subtype
          - encapsulation_subtype
        color_subtype:
          x-field-uid: 2
          $ref: '#/components/schemas/Bgp.ExtendedCommunity.TransitiveOpaqueType.Color'
        encapsulation_subtype:
          x-field-uid: 3
          $ref: '#/components/schemas/Bgp.ExtendedCommunity.TransitiveOpaqueType.Encapsulation'
    Bgp.ExtendedCommunity.TransitiveEvpnType.RouterMac:
      description: |-
        The Router MAC EVPN Community is defined in RFC9135 and normally sent only for EVPN Type-2 Routes . It is sent with sub-type 0x03.
      type: object
      properties:
        router_mac:
          description: "MAC Address of the PE Router.           "
          type: string
          format: mac
          default: 0:0:0:0:0:0
          x-field-uid: 1
    Bgp.ExtendedCommunity.TransitiveEvpnType:
      description: "The Transitive EVPN Extended Community is sent as type 0x06 .\
        \        "
      type: object
      properties:
        choice:
          type: string
          default: router_mac_subtype
          x-enum:
            router_mac_subtype:
              x-field-uid: 1
          x-field-uid: 1
          enum:
          - router_mac_subtype
        router_mac_subtype:
          x-field-uid: 2
          $ref: '#/components/schemas/Bgp.ExtendedCommunity.TransitiveEvpnType.RouterMac'
    Bgp.ExtendedCommunity.NonTransitive2OctetAsType.LinkBandwidth:
      description: |-
        The Link Bandwidth Extended Community attribute is defined in draft-ietf-idr-link-bandwidth. It is sent with sub-type as 0x04.
      type: object
      properties:
        global_2byte_as:
          description: |-
            The value of the Global Administrator subfield should represent the Autonomous System of the router that attaches the Link Bandwidth Community. If four octet AS numbering scheme is used, AS_TRANS (23456) should be used.
          type: integer
          format: uint32
          default: 100
          maximum: 65535
          x-field-uid: 1
        bandwidth:
          description: |-
            Bandwidth of the link in bytes per second. ( 1 Kbps is 1000 bytes per second and 1 Mbps is 1000 Kbps per second )
          type: number
          format: float
          default: 0
          x-field-uid: 2
    Bgp.ExtendedCommunity.NonTransitive2OctetAsType:
      description: "The Non-Transitive Two-Octet AS-Specific Extended Community is\
        \ sent as type 0x40.         "
      type: object
      properties:
        choice:
          type: string
          default: link_bandwidth_subtype
          x-enum:
            link_bandwidth_subtype:
              x-field-uid: 1
          x-field-uid: 1
          enum:
          - link_bandwidth_subtype
        link_bandwidth_subtype:
          x-field-uid: 2
          $ref: '#/components/schemas/Bgp.ExtendedCommunity.NonTransitive2OctetAsType.LinkBandwidth'
    Bgp.ExtendedCommunity.CustomType:
      description: "Add a custom Extended Community with a combination of types ,\
        \ sub-types and values not explicitly specified above or not defined yet.\
        \         "
      type: object
      properties:
        community_type:
          description: "The type to be set in the Extended Community attribute. Accepts\
            \ hexadecimal input upto ff .         "
          type: string
          format: hex
          maxLength: 2
          default: '00'
          x-field-uid: 1
        community_subtype:
          description: |-
            The sub-type to be set in the Extended Community attribute. For certain types with no sub-type this byte can also be used as part of an extended value field. Accepts hexadecimal input upto ff.
          type: string
          format: hex
          maxLength: 2
          default: '00'
          x-field-uid: 2
        value:
          description: "6 byte hex value to be carried in the last 6 bytes of the\
            \ Extended Community. Accepts hexadecimal input upto ffffffffffff.   \
            \   "
          type: string
          format: hex
          maxLength: 12
          default: '000000000000'
          x-field-uid: 3
    Bgp.V6RouteRange:
      description: |-
        Emulated BGPv6 route range.
      type: object
      properties:
        addresses:
          description: |-
            A list of group of IPv6 route addresses.
          type: array
          items:
            $ref: '#/components/schemas/V6RouteAddress'
          x-field-uid: 1
        next_hop_mode:
          description: "Specify the NextHop in MP REACH NLRI. The mode for setting\
            \ the IP address  of the NextHop in the MP REACH NLRI can be one of the\
            \ following:\n  Local IP: Automatically fills the Nexthop with the Local\
            \ IP of the BGP\npeer.\n  If BGP peer is of type IPv6, Nexthop Encoding\
            \ capability should be enabled.\n  Manual: Override the Nexthop with any\
            \ arbitrary IPv4/IPv6 address.   "
          type: string
          default: local_ip
          x-field-uid: 2
          x-enum:
            local_ip:
              x-field-uid: 1
            manual:
              x-field-uid: 2
          enum:
          - local_ip
          - manual
        next_hop_address_type:
          description: |-
            If the Nexthop Mode is Manual, it sets the type of the NextHop IP address.
          type: string
          default: ipv6
          x-field-uid: 3
          x-enum:
            ipv4:
              x-field-uid: 1
            ipv6:
              x-field-uid: 2
          enum:
          - ipv4
          - ipv6
        next_hop_ipv4_address:
          description: |-
            The IPv4 address of the next hop if the Nexthop Mode is manual and the Nexthop type is IPv4. If BGP peer is of type IPv6, Nexthop Encoding capability should be enabled.
          type: string
          format: ipv4
          default: 0.0.0.0
          x-field-uid: 4
        next_hop_ipv6_address:
          description: "The IPv6 address of the next hop if the Nexthop Mode is manual\
            \ and the Nexthop type is IPv6. "
          type: string
          format: ipv6
          default: ::0
          x-field-uid: 5
        advanced:
          x-field-uid: 6
          $ref: '#/components/schemas/Bgp.RouteAdvanced'
        communities:
          x-field-uid: 7
          description: |-
            Optional community settings.
          type: array
          items:
            $ref: '#/components/schemas/Bgp.Community'
        as_path:
          x-field-uid: 8
          $ref: '#/components/schemas/Bgp.AsPath'
        add_path:
          x-field-uid: 9
          $ref: '#/components/schemas/Bgp.AddPath'
        name:
          x-field-uid: 10
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
        ext_communities:
          x-status:
            status: deprecated
            information: This property is deprecated in favor of property extended_communities
          x-field-uid: 11
          description: |-
            Deprecated: This property is deprecated in favor of property extended_communities

            Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities  attributes are utilized to trigger routing decisions, such as acceptance, rejection,  preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger  range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for  administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two  byte local administrator id.  When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for  administrator_ipv4_address is a four byte IPv4 address followed by a two byte local administrator id.  When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes  contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from  IANA's "ETHER TYPES" registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format.  When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the  last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates  occur for the same MAC address.  Note evpn type is defined mainly for use with evpn route updates and not for IPv4 and IPv6 route updates.
          type: array
          items:
            $ref: '#/components/schemas/Bgp.ExtCommunity'
        extended_communities:
          x-field-uid: 12
          description: "Optional Extended Community settings. The Extended Communities\
            \ Attribute is a transitive optional BGP attribute, with the Type Code\
            \ 16. Community and Extended Communities  attributes are utilized to trigger\
            \ routing decisions, such as acceptance, rejection,  preference, or redistribution.\
            \ An extended community is an eight byte value. It is divided into two\
            \ main parts. The first two bytes of the community encode a type and sub-type\
            \ fields and the last six bytes carry a unique set of data in a format\
            \ defined by the type and sub-type field. Extended communities provide\
            \ a larger range for grouping or categorizing communities.            "
          type: array
          items:
            $ref: '#/components/schemas/Bgp.ExtendedCommunity'
      required:
      - name
    BgpSrte.V4Policy:
      description: "Configuration for BGP Segment Routing Traffic Engineering(SRTE)\
        \ \npolicy.\n"
      type: object
      required:
      - ipv4_endpoint
      - name
      properties:
        distinguisher:
          description: |-
            4-octet value uniquely identifying the policy in the context of (color, endpoint) tuple. It is used by the SR Policy originator to make unique (from an NLRI perspective)  both for multiple candidate  paths of the same SR Policy as well as candidate paths  of different SR Policies (i.e. with different segment list) with the same Color  and Endpoint but meant for different head-ends.
          type: integer
          format: uint32
          default: 1
          x-field-uid: 1
        color:
          description: |-
            Policy color is used to match the color of the destination prefixes to steer traffic into the SR Policy.
          type: integer
          format: uint32
          default: 100
          x-field-uid: 2
        ipv4_endpoint:
          description: |-
            Specifies a single node or a set of nodes (e.g. an anycast address). It is selected on the basis of the SR Policy type (AFI).
          type: string
          format: ipv4
          x-field-uid: 3
        next_hop_mode:
          description: |-
            Mode for choosing the NextHop in MP REACH NLRI. Available modes are : Local IP: Automatically fills the Nexthop with the Local IP of the BGP peer. For IPv6 BGP peer the Nexthop Encoding capability should be enabled. Manual: Override the Nexthop with any arbitrary IPv4/IPv6 address.
          type: string
          default: local_ip
          x-field-uid: 4
          x-enum:
            local_ip:
              x-field-uid: 1
            manual:
              x-field-uid: 2
          enum:
          - local_ip
          - manual
        next_hop_address_type:
          description: "Type of next hop IP address to be used when 'next_hop_mode'\
            \ is set to 'manual'. "
          type: string
          default: ipv4
          x-field-uid: 5
          x-enum:
            ipv4:
              x-field-uid: 1
            ipv6:
              x-field-uid: 2
          enum:
          - ipv4
          - ipv6
        next_hop_ipv4_address:
          description: |-
            The IPv4 address of the next hop if the Nexthop type 'next_hop_mode' is 'manual' and the Nexthop type 'next_hop_address_type' is IPv4. If BGP peer is of type IPv6, Nexthop Encoding capability extended_next_hop_encoding should be enabled.
          type: string
          format: ipv4
          x-field-uid: 6
        next_hop_ipv6_address:
          description: "The IPv6 address of the next hop if the Nexthop Mode 'next_hop_address_type'\
            \ is 'manual' and the Nexthop type 'next_hop_address_type' is IPv6. "
          type: string
          format: ipv6
          x-field-uid: 7
        advanced:
          $ref: '#/components/schemas/Bgp.RouteAdvanced'
          x-field-uid: 8
        add_path:
          $ref: '#/components/schemas/Bgp.AddPath'
          x-field-uid: 9
        as_path:
          $ref: '#/components/schemas/Bgp.AsPath'
          x-field-uid: 10
        communities:
          description: |-
            Optional Community settings.
          type: array
          items:
            $ref: '#/components/schemas/Bgp.Community'
          x-field-uid: 11
        ext_communities:
          description: |-
            Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities  attributes are utilized to trigger routing decisions, such as acceptance, rejection,  preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger  range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for  administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two  byte local administrator id.  When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for  administrator_ipv4_address is a four byte IPv4 address followed by a two byte local administrator id.  When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes  contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from  IANA's "ETHER TYPES" registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format.  When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the  last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates  occur for the same MAC address.
          type: array
          items:
            $ref: '#/components/schemas/Bgp.ExtCommunity'
          x-field-uid: 12
        tunnel_tlvs:
          description: |-
            List Tunnel Encapsulation Attributes.
          type: array
          items:
            $ref: '#/components/schemas/BgpSrte.V4TunnelTlv'
          x-field-uid: 13
        name:
          x-field-uid: 14
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
        active:
          x-field-uid: 15
          description: |-
            If enabled means that this part of the configuration including any active 'children' nodes will be advertised to peer.  If disabled, this means that though config is present, it is not taking any part of the test but can be activated at run-time to advertise just this part of the configuration to the peer.
          type: boolean
          default: true
    BgpSrte.V4TunnelTlv:
      description: |-
        Configuration for BGP SRTE Tunnel TLV.
      type: object
      properties:
        remote_endpoint_sub_tlv:
          $ref: '#/components/schemas/BgpSrte.RemoteEndpointSubTlv'
          x-field-uid: 1
        color_sub_tlv:
          $ref: '#/components/schemas/BgpSrte.ColorSubTlv'
          x-field-uid: 2
        binding_sub_tlv:
          $ref: '#/components/schemas/BgpSrte.BindingSubTlv'
          x-field-uid: 3
        preference_sub_tlv:
          $ref: '#/components/schemas/BgpSrte.PreferenceSubTlv'
          x-field-uid: 4
        policy_priority_sub_tlv:
          $ref: '#/components/schemas/BgpSrte.PolicyPrioritySubTlv'
          x-field-uid: 5
        policy_name_sub_tlv:
          $ref: '#/components/schemas/BgpSrte.PolicyNameSubTlv'
          x-field-uid: 6
        explicit_null_label_policy_sub_tlv:
          $ref: '#/components/schemas/BgpSrte.ExplicitNullLabelPolicySubTlv'
          x-field-uid: 7
        segment_lists:
          type: array
          items:
            $ref: '#/components/schemas/BgpSrte.SegmentList'
          x-field-uid: 8
        name:
          x-field-uid: 9
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
        active:
          x-field-uid: 10
          description: |-
            If enabled means that this part of the configuration including any active 'children' nodes will be advertised to peer.  If disabled, this means that though config is present, it is not taking any part of the test but can be activated at run-time to advertise just this part of the configuration to the peer.
          type: boolean
          default: true
      required:
      - name
    BgpSrte.RemoteEndpointSubTlv:
      description: |-
        Configuration for the BGP remote endpoint sub TLV.
      type: object
      properties:
        as_number:
          description: |-
            Autonomous system (AS) number
          type: integer
          format: uint32
          default: 0
          x-field-uid: 1
        address_family:
          description: |-
            Determines the address type
          type: string
          default: ipv4
          x-field-uid: 2
          x-enum:
            ipv4:
              x-field-uid: 1
            ipv6:
              x-field-uid: 2
          enum:
          - ipv4
          - ipv6
        ipv4_address:
          description: |-
            The IPv4 address of the Remote Endpoint.
          type: string
          format: ipv4
          default: 0.0.0.0
          x-field-uid: 3
        ipv6_address:
          description: |-
            The IPv6 address of the Remote Endpoint.
          type: string
          format: ipv6
          default: ::0
          x-field-uid: 4
    BgpSrte.ColorSubTlv:
      description: "Configuration for the Policy Color attribute sub-TLV. The Color\
        \ sub-TLV MAY be used as a way to \"color\" the corresponding Tunnel TLV.\
        \ The Value field of the sub-TLV is eight octets long and consists of a Color\
        \ Extended Community. First two octets of its Value field are 0x030b as type\
        \ and subtype of extended  community. Remaining six octets are are exposed\
        \ to configure. "
      type: object
      properties:
        color:
          description: |-
            Six octet values. Example: 000000000064 for color value 100.
          type: string
          format: hex
          x-field-uid: 1
    BgpSrte.BindingSubTlv:
      description: |-
        Configuration for the binding SID sub-TLV.  This is used to signal the binding SID related information  of the SR Policy candidate path.
      type: object
      properties:
        binding_sid_type:
          description: |-
            Type of the binding SID.  Supported types are "No Binding SID" or "Four Octets Sid" or "IPv6 SID".
          type: string
          default: no_binding
          x-field-uid: 1
          x-enum:
            no_binding:
              x-field-uid: 1
            four_octet_sid:
              x-field-uid: 2
            ipv6_sid:
              x-field-uid: 3
          enum:
          - no_binding
          - four_octet_sid
          - ipv6_sid
        four_octet_sid:
          description: "Binding SID is encoded in 4 octets. "
          type: integer
          format: uint32
          x-field-uid: 2
        ipv6_sid:
          description: |-
            IPv6 SID value.
          type: string
          format: ipv6
          x-field-uid: 3
        s_flag:
          description: |-
            S-Flag encodes the "Specified-BSID-only" behavior.
          type: boolean
          default: false
          x-field-uid: 4
        i_flag:
          description: |-
            I-Flag encodes the "Drop Upon Invalid" behavior.
          type: boolean
          default: false
          x-field-uid: 5
    BgpSrte.PreferenceSubTlv:
      description: |-
        Configuration for BGP preference sub TLV of the SR Policy candidate path.
      type: object
      properties:
        preference:
          description: |-
            The preference value of the SR Policy candidate path.
          type: integer
          format: uint32
          default: 0
          x-field-uid: 1
    BgpSrte.PolicyPrioritySubTlv:
      description: |-
        Configuration for the Policy Priority sub-TLV. The Policy Priority to indicate the order in which the SR policies  are re-computed upon topological change.
      type: object
      properties:
        policy_priority:
          description: |-
            One-octet Priority value.
          type: integer
          format: uint32
          maximum: 255
          x-field-uid: 1
    BgpSrte.PolicyNameSubTlv:
      description: |-
        Configuration for the Policy Name sub-TLV. The Policy Name sub-TLV is used to attach a symbolic name to the SR Policy candidate path.
      type: object
      properties:
        policy_name:
          description: |-
            Symbolic name for the policy that should be a string of printable ASCII characters, without a NULL terminator.
          type: string
          minLength: 1
          maxLength: 32
          x-field-uid: 1
    BgpSrte.ExplicitNullLabelPolicySubTlv:
      description: |-
        Configuration for BGP explicit null label policy sub TLV settings.
      type: object
      properties:
        explicit_null_label_policy:
          description: "The value of the explicit null label policy "
          type: string
          default: do_not_push_enlp
          x-field-uid: 1
          x-enum:
            reserved_enlp:
              x-field-uid: 1
            push_ipv4_enlp:
              x-field-uid: 2
            push_ipv6_enlp:
              x-field-uid: 3
            push_ipv4_ipv6_enlp:
              x-field-uid: 4
            do_not_push_enlp:
              x-field-uid: 5
          enum:
          - reserved_enlp
          - push_ipv4_enlp
          - push_ipv6_enlp
          - push_ipv4_ipv6_enlp
          - do_not_push_enlp
    BgpSrte.SegmentList:
      description: |-
        Optional configuration for BGP SR TE Policy segment list. The Segment List sub-TLV encodes a single explicit path towards the Endpoint.
      type: object
      properties:
        weight:
          description: |-
            The Weight associated with a given path and the sub-TLV is optional.
          type: integer
          format: uint32
          default: 0
          x-field-uid: 1
        segments:
          type: array
          items:
            $ref: '#/components/schemas/BgpSrte.Segment'
          x-field-uid: 2
        name:
          x-field-uid: 3
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
        active:
          x-field-uid: 4
          description: |-
            If enabled means that this part of the configuration including any active 'children' nodes will be advertised to peer.  If disabled, this means that though config is present, it is not taking any part of the test but can be activated at run-time to advertise just this part of the configuration to the peer.
          type: boolean
          default: true
      required:
      - name
    BgpSrte.Segment:
      description: |-
        A Segment sub-TLV describes a single segment in a segment list  i.e., a single element of the explicit path. The Segment sub-TLVs are optional.
      type: object
      required:
      - segment_type
      - name
      properties:
        segment_type:
          description: |-
            Specify one of the segment type.
            https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13
            Type  A: SID only, in the form of MPLS Label.
            Type  B: SID only, in the form of IPv6 Address.
            Type  C: IPv4 Node Address with optional SID.
            Type  D: IPv6 Node Address with optional SID for SR MPLS.
            Type  E: IPv4 Address and index with optional SID.
            Type  F: IPv4 Local and Remote addresses with optional SID.
            Type  G: IPv6 Address and index for local and remote pair with optional
                  SID for SR MPLS.
            Type  H: IPv6 Local and Remote addresses with optional SID for SR MPLS.
            Type  I: IPv6 Node Address with optional SID for SRv6.
            Type  J: IPv6 Address and index for local and remote pair with optional
                  SID for SRv6.
            Type  K: IPv6 Local and Remote addresses for SRv6.
          type: string
          x-field-uid: 1
          x-enum:
            type_a:
              x-field-uid: 1
            type_b:
              x-field-uid: 2
            type_c:
              x-field-uid: 3
            type_d:
              x-field-uid: 4
            type_e:
              x-field-uid: 5
            type_f:
              x-field-uid: 6
            type_g:
              x-field-uid: 7
            type_h:
              x-field-uid: 8
            type_i:
              x-field-uid: 9
            type_j:
              x-field-uid: 10
            type_k:
              x-field-uid: 11
          enum:
          - type_a
          - type_b
          - type_c
          - type_d
          - type_e
          - type_f
          - type_g
          - type_h
          - type_i
          - type_j
          - type_k
        type_a:
          $ref: '#/components/schemas/BgpSrte.SegmentATypeSubTlv'
          x-field-uid: 2
        type_b:
          $ref: '#/components/schemas/BgpSrte.SegmentBTypeSubTlv'
          x-field-uid: 3
        type_c:
          $ref: '#/components/schemas/BgpSrte.SegmentCTypeSubTlv'
          x-field-uid: 4
        type_d:
          $ref: '#/components/schemas/BgpSrte.SegmentDTypeSubTlv'
          x-field-uid: 5
        type_e:
          $ref: '#/components/schemas/BgpSrte.SegmentETypeSubTlv'
          x-field-uid: 6
        type_f:
          $ref: '#/components/schemas/BgpSrte.SegmentFTypeSubTlv'
          x-field-uid: 7
        type_g:
          $ref: '#/components/schemas/BgpSrte.SegmentGTypeSubTlv'
          x-field-uid: 8
        type_h:
          $ref: '#/components/schemas/BgpSrte.SegmentHTypeSubTlv'
          x-field-uid: 9
        type_i:
          $ref: '#/components/schemas/BgpSrte.SegmentITypeSubTlv'
          x-field-uid: 10
        type_j:
          $ref: '#/components/schemas/BgpSrte.SegmentJTypeSubTlv'
          x-field-uid: 11
        type_k:
          $ref: '#/components/schemas/BgpSrte.SegmentKTypeSubTlv'
          x-field-uid: 12
        name:
          x-field-uid: 13
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
        active:
          x-field-uid: 14
          description: |-
            If enabled means that this part of the configuration including any active 'children' nodes will be advertised to peer.  If disabled, this means that though config is present, it is not taking any part of the test but can be activated at run-time to advertise just this part of the configuration to the peer.
          type: boolean
          default: true
    BgpSrte.SrMplsSid:
      description: |-
        Configuration for SR-MPLS with Label, TC, Bottom-of-Stack and TTL.
      type: object
      properties:
        label:
          description: |-
            Label value in [0, 2^20 -1].
          type: integer
          format: uint32
          maximum: 1048575
          x-field-uid: 1
        tc:
          description: |-
            Traffic class in bits.
          type: integer
          format: uint32
          maximum: 7
          x-field-uid: 2
        s_bit:
          description: |-
            Bottom-of-Stack bit.
          type: boolean
          x-field-uid: 3
        ttl:
          description: "Time To Live. "
          type: integer
          format: uint32
          maximum: 225
          x-field-uid: 4
    BgpSrte.SRv6SIDEndpointBehaviorAndStructure:
      description: |-
        Configuration for SRv6 Endpoint Behavior and SID Structure.  Its optional. Summation of lengths for Locator Block, Locator Node,  Function, and Argument MUST be less than or equal to 128.
      type: object
      properties:
        lb_length:
          description: |-
            SRv6 SID Locator Block length in bits.
          type: integer
          format: uint32
          maximum: 128
          default: 0
          x-field-uid: 1
        ln_length:
          description: |-
            SRv6 SID Locator Node length in bits.
          type: integer
          format: uint32
          maximum: 128
          default: 0
          x-field-uid: 2
        func_length:
          description: |-
            SRv6 SID Function length in bits.
          type: integer
          format: uint32
          maximum: 128
          default: 0
          x-field-uid: 3
        arg_length:
          description: |-
            SRv6 SID Arguments length in bits.
          type: integer
          format: uint32
          maximum: 128
          default: 0
          x-field-uid: 4
    BgpSrte.SegmentATypeSubTlv:
      description: |-
        Type  A: SID only, in the form of MPLS Label.
      type: object
      properties:
        flags:
          description: |-
            One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12
          type: string
          format: hex
          x-field-uid: 1
        label:
          x-field-uid: 2
          description: |-
            Label value in [0, 2^20 -1].
          type: integer
          format: uint32
          maximum: 1048575
        tc:
          x-field-uid: 3
          description: |-
            Traffic class in bits.
          type: integer
          format: uint32
          maximum: 7
        s_bit:
          x-field-uid: 4
          description: |-
            Bottom-of-Stack bit.
          type: boolean
        ttl:
          x-field-uid: 5
          description: "Time To Live. "
          type: integer
          format: uint32
          maximum: 225
    BgpSrte.SegmentBTypeSubTlv:
      description: |-
        Type  B: SID only, in the form of IPv6 address.
      type: object
      required:
      - srv6_sid
      properties:
        flags:
          description: |-
            One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12
          type: string
          format: hex
          x-field-uid: 1
        srv6_sid:
          description: |-
            SRv6 SID.
          type: string
          format: ipv6
          x-field-uid: 2
        srv6_sid_endpoint_behavior:
          description: |-
            Optional SRv6 Endpoint Behavior and SID Structure.
          $ref: '#/components/schemas/BgpSrte.SRv6SIDEndpointBehaviorAndStructure'
          x-field-uid: 3
    BgpSrte.SegmentCTypeSubTlv:
      description: |-
        Type C: IPv4 Node Address with optional SID.
      type: object
      required:
      - ipv4_node_address
      properties:
        flags:
          description: |-
            One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12
          type: string
          format: hex
          x-field-uid: 1
        sr_algorithm:
          description: |-
            SR Algorithm identifier when A-Flag in on.
          type: integer
          format: uint32
          maximum: 255
          default: 0
          x-field-uid: 2
        ipv4_node_address:
          description: |-
            IPv4 address representing a node.
          type: string
          format: ipv4
          x-field-uid: 3
        sr_mpls_sid:
          description: |-
            Optional SR-MPLS SID.
          $ref: '#/components/schemas/BgpSrte.SrMplsSid'
          x-field-uid: 4
    BgpSrte.SegmentDTypeSubTlv:
      description: |-
        Type D: IPv6 Node Address with optional SID for SR MPLS.
      type: object
      required:
      - ipv6_node_address
      properties:
        flags:
          description: |-
            One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12
          type: string
          format: hex
          x-field-uid: 1
        sr_algorithm:
          description: |-
            specifying SR Algorithm when when A-Flag as defined in above flags.
          type: integer
          format: uint32
          maximum: 255
          default: 0
          x-field-uid: 2
        ipv6_node_address:
          description: |-
            IPv6 address representing a node.
          type: string
          format: ipv6
          x-field-uid: 3
        sr_mpls_sid:
          description: |-
            Optional SR-MPLS SID.
          $ref: '#/components/schemas/BgpSrte.SrMplsSid'
          x-field-uid: 4
    BgpSrte.SegmentETypeSubTlv:
      description: |-
        Type E: IPv4 Address and Local Interface ID with optional SID
      type: object
      required:
      - ipv4_node_address
      properties:
        flags:
          description: |-
            One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12
          type: string
          format: hex
          x-field-uid: 1
        local_interface_id:
          description: |-
            Local Interface ID: The Interface Index as defined in [RFC8664].
          type: integer
          format: uint32
          default: 0
          x-field-uid: 2
        ipv4_node_address:
          description: |-
            IPv4 address representing a node.
          type: string
          format: ipv4
          x-field-uid: 3
        sr_mpls_sid:
          description: |-
            Optional SR-MPLS SID.
          $ref: '#/components/schemas/BgpSrte.SrMplsSid'
          x-field-uid: 4
    BgpSrte.SegmentFTypeSubTlv:
      description: |-
        Type F: IPv4 Local and Remote addresses with optional SID.
      type: object
      required:
      - local_ipv4_address
      - remote_ipv4_address
      properties:
        flags:
          description: |-
            One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12
          type: string
          format: hex
          x-field-uid: 1
        local_ipv4_address:
          description: |-
            Local IPv4 Address.
          type: string
          format: ipv4
          x-field-uid: 2
        remote_ipv4_address:
          description: |-
            Remote IPv4 Address.
          type: string
          format: ipv4
          x-field-uid: 3
        sr_mpls_sid:
          description: |-
            Optional SR-MPLS SID.
          $ref: '#/components/schemas/BgpSrte.SrMplsSid'
          x-field-uid: 4
    BgpSrte.SegmentGTypeSubTlv:
      description: |-
        Type G: IPv6 Address, Interface ID for local and remote pair with optional SID for SR MPLS.
      type: object
      required:
      - local_ipv6_node_address
      - remote_ipv6_node_address
      properties:
        flags:
          description: |-
            One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12
          type: string
          format: hex
          x-field-uid: 1
        local_interface_id:
          description: |-
            Local Interface ID: The Interface Index as defined in [RFC8664].
          type: integer
          format: uint32
          default: 0
          x-field-uid: 2
        local_ipv6_node_address:
          description: |-
            IPv6 address representing a node.
          type: string
          format: ipv6
          x-field-uid: 3
        remote_interface_id:
          description: |-
            Local Interface ID: The Interface Index as defined in [RFC8664].
          type: integer
          format: uint32
          default: 0
          x-field-uid: 4
        remote_ipv6_node_address:
          description: |-
            IPv6 address representing a node.
          type: string
          format: ipv6
          x-field-uid: 5
        sr_mpls_sid:
          description: |-
            Optional SR-MPLS SID.
          $ref: '#/components/schemas/BgpSrte.SrMplsSid'
          x-field-uid: 6
    BgpSrte.SegmentHTypeSubTlv:
      description: |-
        Type H: IPv6 Local and Remote addresses with optional SID for SR MPLS.
      type: object
      required:
      - local_ipv6_address
      - remote_ipv6_address
      properties:
        flags:
          description: |-
            One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12
          type: string
          format: hex
          x-field-uid: 1
        local_ipv6_address:
          description: |-
            Local IPv6 Address.
          type: string
          format: ipv6
          x-field-uid: 2
        remote_ipv6_address:
          description: |-
            Remote IPv6 Address.
          type: string
          format: ipv6
          x-field-uid: 3
        sr_mpls_sid:
          description: |-
            Optional SR-MPLS SID.
          $ref: '#/components/schemas/BgpSrte.SrMplsSid'
          x-field-uid: 4
    BgpSrte.SegmentITypeSubTlv:
      description: |-
        Type I: IPv6 Node Address with optional SRv6 SID.
      type: object
      required:
      - ipv6_node_address
      properties:
        flags:
          description: |-
            One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12
          type: string
          format: hex
          x-field-uid: 1
        ipv6_node_address:
          description: |-
            IPv6 address representing a node.
          type: string
          format: ipv6
          x-field-uid: 2
        srv6_sid:
          description: |-
            Optional SRv6 SID.
          type: string
          format: ipv6
          x-field-uid: 3
        srv6_sid_endpoint_behavior:
          description: |-
            Optional SRv6 Endpoint Behavior and SID Structure.
          $ref: '#/components/schemas/BgpSrte.SRv6SIDEndpointBehaviorAndStructure'
          x-field-uid: 4
    BgpSrte.SegmentJTypeSubTlv:
      description: |-
        Type J: IPv6 Address, Interface ID for local and remote pair for SRv6 with optional SID.
      type: object
      required:
      - local_ipv6_node_address
      - remote_ipv6_node_address
      properties:
        flags:
          description: |-
            One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12
          type: string
          format: hex
          x-field-uid: 1
        sr_algorithm:
          description: |-
            SR Algorithm identifier when A-Flag in on.
          type: integer
          format: uint32
          default: 0
          x-field-uid: 2
        local_interface_id:
          description: |-
            Local Interface ID: The Interface Index as defined in [RFC8664].
          type: integer
          format: uint32
          default: 0
          x-field-uid: 3
        local_ipv6_node_address:
          description: |-
            IPv6 address representing a node.
          type: string
          format: ipv6
          x-field-uid: 4
        remote_interface_id:
          description: |-
            Local Interface ID: The Interface Index as defined in [RFC8664].
          type: integer
          format: uint32
          default: 0
          x-field-uid: 5
        remote_ipv6_node_address:
          description: |-
            IPv6 address representing a node.
          type: string
          format: ipv6
          x-field-uid: 6
        srv6_sid:
          description: |-
            Optional SRv6 SID.
          type: string
          format: ipv6
          x-field-uid: 7
        srv6_sid_endpoint_behavior:
          description: |-
            Optional SRv6 Endpoint Behavior and SID Structure.
          $ref: '#/components/schemas/BgpSrte.SRv6SIDEndpointBehaviorAndStructure'
          x-field-uid: 8
    BgpSrte.SegmentKTypeSubTlv:
      description: |-
        Type K: IPv6 Local and Remote addresses for SRv6 with optional SID.
      type: object
      required:
      - local_ipv6_address
      - remote_ipv6_address
      properties:
        flags:
          description: |-
            One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12
          type: string
          format: hex
          x-field-uid: 1
        sr_algorithm:
          description: |-
            SR Algorithm identifier when A-Flag in on.
          type: integer
          format: uint32
          default: 0
          x-field-uid: 2
        local_ipv6_address:
          description: |-
            IPv6 address representing a node.
          type: string
          format: ipv6
          x-field-uid: 3
        remote_ipv6_address:
          description: |-
            IPv6 address representing a node.
          type: string
          format: ipv6
          x-field-uid: 4
        srv6_sid:
          description: |-
            Optional SRv6 SID.
          type: string
          format: ipv6
          x-field-uid: 5
        srv6_sid_endpoint_behavior:
          description: |-
            Optional SRv6 Endpoint Behavior and SID Structure.
          $ref: '#/components/schemas/BgpSrte.SRv6SIDEndpointBehaviorAndStructure'
          x-field-uid: 6
    BgpSrte.V6Policy:
      description: |
        Configuration for BGP Segment Routing Traffic Engineering policy.
      type: object
      required:
      - ipv6_endpoint
      - name
      properties:
        distinguisher:
          description: |-
            Identifies the policy in the context of (color and endpoint) tuple.  It is used by the SR Policy originator to make unique multiple  occurrences of the same SR Policy.
          type: integer
          format: uint32
          default: 1
          x-field-uid: 1
        color:
          description: "Identifies the policy. It is used to match the color of the\
            \  destination prefixes to steer traffic into the SR Policy. "
          type: integer
          format: uint32
          default: 100
          x-field-uid: 2
        ipv6_endpoint:
          description: |-
            Specifies a single node or a set of nodes (e.g., an anycast address). It is selected on the basis of the SR Policy type (AFI).
          type: string
          format: ipv6
          x-field-uid: 3
        next_hop_mode:
          description: |-
            Mode for choosing the NextHop in MP REACH NLRI. Available modes are : Local IP: Automatically fills the Nexthop with the Local IP of the BGP peer. For IPv6 BGP peer the Nexthop Encoding capability should be enabled. Manual: Override the Nexthop with any arbitrary IPv4/IPv6 address.
          type: string
          default: local_ip
          x-field-uid: 4
          x-enum:
            local_ip:
              x-field-uid: 1
            manual:
              x-field-uid: 2
          enum:
          - local_ip
          - manual
        next_hop_address_type:
          description: "Type of next hop IP address to be used when 'next_hop_mode'\
            \ is set to 'manual'. "
          type: string
          default: ipv6
          x-field-uid: 5
          x-enum:
            ipv4:
              x-field-uid: 1
            ipv6:
              x-field-uid: 2
          enum:
          - ipv4
          - ipv6
        next_hop_ipv4_address:
          description: |-
            The IPv4 address of the Nexthop if the 'next_hop_mode' is 'manual' and the Nexthop type 'next_hop_address_type' is IPv4. If BGP peer is of type IPv6, Nexthop Encoding capability extended_next_hop_encoding should be enabled.
          type: string
          format: ipv4
          default: 0.0.0.0
          x-field-uid: 6
        next_hop_ipv6_address:
          description: "The IPv6 address of the next hop if the Nexthop Mode 'next_hop_address_type'\
            \ is 'manual' and the Nexthop type 'next_hop_address_type' is IPv6. "
          type: string
          format: ipv6
          default: ::0
          x-field-uid: 7
        advanced:
          $ref: '#/components/schemas/Bgp.RouteAdvanced'
          x-field-uid: 8
        add_path:
          $ref: '#/components/schemas/Bgp.AddPath'
          x-field-uid: 9
        as_path:
          $ref: '#/components/schemas/Bgp.AsPath'
          x-field-uid: 10
        communities:
          description: |-
            Optional community settings.
          type: array
          items:
            $ref: '#/components/schemas/Bgp.Community'
          x-field-uid: 11
        extcommunities:
          description: |-
            Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities  attributes are utilized to trigger routing decisions, such as acceptance, rejection,  preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger  range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for  administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two  byte local administrator id.  When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for  administrator_ipv4_address is a four byte IPv4 address followed by a two byte local administrator id.  When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes  contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from  IANA's "ETHER TYPES" registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format.  When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the  last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates  occur for the same MAC address.
          type: array
          items:
            $ref: '#/components/schemas/Bgp.ExtCommunity'
          x-field-uid: 12
        tunnel_tlvs:
          description: |-
            List of optional tunnel TLV settings.
          type: array
          items:
            $ref: '#/components/schemas/BgpSrte.V6TunnelTlv'
          x-field-uid: 13
        name:
          x-field-uid: 14
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
        active:
          x-field-uid: 15
          description: |-
            If enabled means that this part of the configuration including any active 'children' nodes will be advertised to peer.  If disabled, this means that though config is present, it is not taking any part of the test but can be activated at run-time to advertise just this part of the configuration to the peer.
          type: boolean
          default: true
    BgpSrte.V6TunnelTlv:
      description: |-
        Configuration for BGP SRTE Tunnel TLV.
      type: object
      properties:
        remote_endpoint_sub_tlv:
          $ref: '#/components/schemas/BgpSrte.RemoteEndpointSubTlv'
          x-field-uid: 1
        color_sub_tlv:
          $ref: '#/components/schemas/BgpSrte.ColorSubTlv'
          x-field-uid: 2
        binding_sub_tlv:
          $ref: '#/components/schemas/BgpSrte.BindingSubTlv'
          x-field-uid: 3
        preference_sub_tlv:
          $ref: '#/components/schemas/BgpSrte.PreferenceSubTlv'
          x-field-uid: 4
        policy_priority_sub_tlv:
          $ref: '#/components/schemas/BgpSrte.PolicyPrioritySubTlv'
          x-field-uid: 5
        policy_name_sub_tlv:
          $ref: '#/components/schemas/BgpSrte.PolicyNameSubTlv'
          x-field-uid: 6
        explicit_null_label_policy_sub_tlv:
          $ref: '#/components/schemas/BgpSrte.ExplicitNullLabelPolicySubTlv'
          x-field-uid: 7
        segment_lists:
          type: array
          items:
            $ref: '#/components/schemas/BgpSrte.SegmentList'
          x-field-uid: 8
        name:
          x-field-uid: 9
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
        active:
          x-field-uid: 10
          description: |-
            If enabled means that this part of the configuration including any active 'children' nodes will be advertised to peer.  If disabled, this means that though config is present, it is not taking any part of the test but can be activated at run-time to advertise just this part of the configuration to the peer.
          type: boolean
          default: true
      required:
      - name
    Bgp.GracefulRestart:
      description: |-
        The Graceful Restart Capability (RFC 4724) is a BGP capability that can be used by a BGP speaker to indicate its ability to preserve its forwarding state during BGP restart. The Graceful Restart (GR) capability is advertised in OPEN messages sent between BGP peers. After a BGP session has been established, and the initial routing update has been completed,  an End-of-RIB (Routing Information Base) marker is sent in an UPDATE message to convey information  about routing convergence.
      type: object
      properties:
        enable_gr:
          description: |-
            If enabled, Graceful Restart capability is advertised in BGP OPEN messages.
          type: boolean
          default: false
          x-field-uid: 1
        restart_time:
          description: |-
            This is the estimated duration (in seconds) it will take for the BGP session to be re-established after a restart.  This can be used to speed up routing convergence by its peer in case the BGP speaker does not come back after a restart.
          type: integer
          format: uint32
          maximum: 4096
          default: 45
          x-field-uid: 2
        enable_llgr:
          description: "If enabled, the \"Long-lived Graceful Restart Capability\"\
            , or \"LLGR Capability\"\nwill be advertised.\nThis capability MUST be\
            \ advertised in conjunction with the Graceful Restart \ncapability."
          type: boolean
          default: false
          x-field-uid: 3
        stale_time:
          description: "Duration (in seconds) specifying how long stale information\
            \ (for the AFI/SAFI) \nmay be retained. This is a three byte field and\
            \ is applicable \nonly if 'enable_llgr' is set to 'true'."
          type: integer
          format: uint32
          maximum: 16777215
          default: 10
          x-field-uid: 4
        enable_notification:
          description: "If enabled, the N flag will be set in the Graceful Restart\
            \ capability in the Open message. \nIf both peers in a BGP connection\
            \ has this enabled, Graceful Restart procedures are performed\neven if\
            \ the peer goes down due to sending of a Notification Message as per RFC8538."
          type: boolean
          default: true
          x-field-uid: 5
    Bgp.UpdateReplay:
      description: |-
        Ordered BGP Updates ( including both Advertise and Withdraws ) to be sent in the order given in the input to the peer after the BGP session is established.
      type: object
      properties:
        choice:
          type: string
          default: structured_pdus
          x-enum:
            structured_pdus:
              x-field-uid: 1
            raw_bytes:
              x-field-uid: 2
          x-field-uid: 1
          enum:
          - structured_pdus
          - raw_bytes
        structured_pdus:
          x-field-uid: 2
          $ref: '#/components/schemas/Bgp.StructuredPdus'
        raw_bytes:
          x-field-uid: 3
          $ref: '#/components/schemas/Bgp.RawBytes'
    Bgp.RawBytes:
      description: |-
        Ordered BGP Updates ( including both Advertise and Withdraws ) to be sent in the order given in the input to the peer after the BGP session is established.
      type: object
      properties:
        updates:
          description: "Array of ordered BGP Updates ( including both Advertise and\
            \ Withdraws ) to be sent in the order given in the input to the peer after\
            \ the BGP session is established. "
          type: array
          items:
            $ref: '#/components/schemas/Bgp.OneUpdateReplay'
          x-field-uid: 1
    Bgp.OneUpdateReplay:
      description: "Specification of one BGP Update to be sent to the BGP peer.  \
        \      "
      type: object
      required:
      - update_bytes
      properties:
        time_gap:
          description: |-
            Minimum time interval in milliseconds from previous Update from the sequence of BGP Updates to be replayed.
          type: integer
          format: uint32
          default: 0
          x-field-uid: 1
        update_bytes:
          description: |-
            Bytes specified in hex format to be sent to peer after the BGP Update Header. The Update Header will always have the  initial 16 bytes containing Marker bytes, 2 bytes containing the Length and 1 byte containing the Type.The string MUST  contain sequence of valid hex bytes. The bytes specified in hex format should be appended to the Update message to be sent  to the peer after the fixed 19 bytes described above. This byte stream can be of any length from 1 to 4077 bytes.The value  4077 is derived from the maximum length allowed for a BGP message in RFC4271 which is 4096 minus mandatory 19 bytes described  above. In the imported byte stream, one byte is represented as string of 2 characters, for example 2 character string (0x)AB  represents value of a single byte. So the maximum length of this attribute is 8154 (4077 * 2 hex characters per byte).
          type: string
          format: hex
          minLength: 1
          maxLength: 8154
          x-field-uid: 2
    Bgp.StructuredPdus:
      description: |-
        Ordered BGP Updates ( including both Advertise and Withdraws ) to be sent in the order given in the input to the peer after the BGP session is established.
      type: object
      properties:
        updates:
          description: "Array of ordered BGP Updates ( including both Advertise and\
            \ Withdraws ) to be sent in the order given in the input to the peer after\
            \ the BGP session is established.            "
          type: array
          items:
            $ref: '#/components/schemas/Bgp.OneStructuredUpdateReplay'
          x-field-uid: 1
    Bgp.OneStructuredUpdateReplay:
      description: "One structured BGP Update.        "
      type: object
      properties:
        time_gap:
          description: |-
            Minimum time interval in milliseconds from previous Update from the sequence of BGP Updates to be replayed.
          type: integer
          format: uint32
          default: 0
          x-field-uid: 1
        path_attributes:
          description: "Attributes carried in the Update packet alongwith the reach/unreach\
            \ prefixes.          "
          $ref: '#/components/schemas/Bgp.Attributes'
          x-field-uid: 2
        traditional_unreach_nlris:
          description: "The IPv4 prefixes to be included in the traditional UNREACH_NLRI. "
          type: array
          items:
            $ref: '#/components/schemas/Bgp.OneTraditionalNlriPrefix'
          x-field-uid: 3
        traditional_reach_nlris:
          description: "The IPv4 prefixes to be included in the traditional REACH_NLRI. "
          type: array
          items:
            $ref: '#/components/schemas/Bgp.OneTraditionalNlriPrefix'
          x-field-uid: 4
    Bgp.OneTraditionalNlriPrefix:
      description: "TRADITIONAL_NLRI is an optional part of the the BGP Update which\
        \ can carry only IPv4 prefix information as defined in https://www.rfc-editor.org/rfc/rfc4271.html#section-4.3\
        \ \nand extended by https://datatracker.ietf.org/doc/html/rfc7911#section-3\
        \ to carry additional Path Id information per prefix."
      type: object
      properties:
        address:
          description: |-
            The IPv4 address of the network.
          type: string
          format: ipv4
          default: 0.0.0.0
          x-field-uid: 1
        prefix:
          description: "The IPv4 network prefix length to be applied to the address. "
          type: integer
          format: uint32
          default: 24
          maximum: 32
          x-field-uid: 2
        path_id:
          $ref: '#/components/schemas/Bgp.NLRIPrefixPathId'
          x-field-uid: 3
    Bgp.OneIpv4NLRIPrefix:
      description: |-
        One IPv4 NLRI Prefix.
      type: object
      properties:
        address:
          description: |-
            The IPv4 address of the network.
          type: string
          format: ipv4
          default: 0.0.0.0
          x-field-uid: 1
        prefix:
          description: "The IPv4 network prefix length to be applied to the address. "
          type: integer
          format: uint32
          default: 24
          maximum: 32
          x-field-uid: 2
        path_id:
          $ref: '#/components/schemas/Bgp.NLRIPrefixPathId'
          x-field-uid: 3
    Bgp.OneIpv6NLRIPrefix:
      description: |-
        One IPv6 NLRI Prefix.
      type: object
      properties:
        address:
          description: |-
            The IPv6 address of the network.
          type: string
          format: ipv6
          default: 0::0
          x-field-uid: 1
        prefix:
          description: "The IPv6 network prefix length to be applied to the address. "
          type: integer
          format: uint32
          default: 64
          maximum: 128
          x-field-uid: 2
        path_id:
          $ref: '#/components/schemas/Bgp.NLRIPrefixPathId'
          x-field-uid: 3
    Bgp.NLRIPrefixPathId:
      description: |-
        Optional field in the NLRI carrying Path Id of the prefix.
      type: object
      properties:
        value:
          description: "The value of the optional Path ID of the prefix. "
          type: integer
          format: uint32
          default: 1
          x-field-uid: 1
    Bgp.Ipv4SrPolicyNLRIPrefix:
      description: |-
        IPv4 Segment Routing Policy NLRI Prefix.
      type: object
      properties:
        distinguisher:
          description: "The 4-octet value uniquely identifying the policy in the context\
            \ of <color, endpoint> tuple.  The distinguisher has no semantic value\
            \ and is solely used by the SR Policy originator to make unique (from\
            \ an NLRI perspective)  both for multiple candidate paths of the same\
            \ SR Policy as well as candidate paths of different SR Policies  (i.e.\
            \ with different segment lists) with the same Color and Endpoint but meant\
            \ for different headends. "
          type: integer
          format: uint32
          default: 1
          x-field-uid: 1
        color:
          description: |-
            4-octet value identifying (with the endpoint) the policy. The color is used to match the color of the destination  prefixes to steer traffic into the SR Policy as specified in section 8 of RFC9256.
          type: integer
          format: uint32
          default: 1
          x-field-uid: 2
        endpoint:
          description: |-
            Identifies the endpoint of a policy.  The Endpoint is an IPv4 address and can be either a unicast or an unspecified address (0.0.0.0) as specified in section 2.1 of RFC9256.
          type: string
          format: ipv4
          default: 0.0.0.0
          x-field-uid: 3
    Bgp.Ipv6SrPolicyNLRIPrefix:
      description: |-
        One IPv6 Segment Routing Policy NLRI Prefix.
      type: object
      properties:
        distinguisher:
          description: "The 4-octet value uniquely identifying the policy in the context\
            \ of <color, endpoint> tuple.  The distinguisher has no semantic value\
            \ and is solely used by the SR Policy originator to make unique (from\
            \ an NLRI perspective)  both for multiple candidate paths of the same\
            \ SR Policy as well as candidate paths of different SR Policies  (i.e.\
            \ with different segment lists) with the same Color and Endpoint but meant\
            \ for different headends. "
          type: integer
          format: uint32
          default: 1
          x-field-uid: 1
        color:
          description: |-
            4-octet value identifying (with the endpoint) the policy. The color is used to match the color of the destination  prefixes to steer traffic into the SR Policy as specified in section 8 of RFC9256.
          type: integer
          format: uint32
          default: 1
          x-field-uid: 2
        endpoint:
          description: |-
            Identifies the endpoint of a policy.  The Endpoint may represent a single node or a set of nodes (e.g., an anycast address). The Endpoint is an IPv6 address and can be either a unicast or an unspecified address (0::0) as specified in section 2.1 of RFC9256.
          type: string
          format: ipv6
          default: 0::0
          x-field-uid: 3
    Bgp.Attributes:
      description: |-
        Attributes carried in the Update packet alongwith the reach/unreach prefixes.
      type: object
      properties:
        other_attributes:
          description: "Any attributes not present in the list of configurable attributes\
            \ should be added to the list of unknown attributes.            "
          type: array
          items:
            $ref: '#/components/schemas/Bgp.Attributes.OtherAttribute'
          x-field-uid: 1
        origin:
          description: "The ORIGIN attribute is a mandatory attribute which can take\
            \ three values: \nthe prefix originates from an interior routing protocol\
            \ 'igp', it originates from 'egp' \nor the origin is 'incomplete',if the\
            \ prefix is learned through other means.                    "
          type: string
          default: incomplete
          x-field-uid: 2
          x-enum:
            igp:
              x-field-uid: 1
            egp:
              x-field-uid: 2
            incomplete:
              x-field-uid: 3
          enum:
          - igp
          - egp
          - incomplete
        as_path:
          description: "AS_PATH attribute to be included in the Update. "
          $ref: '#/components/schemas/Bgp.Attributes.AsPath'
          x-field-uid: 3
        as4_path:
          description: "AS4_PATH attribute to be included in the Update.         \
            \    "
          $ref: '#/components/schemas/Bgp.Attributes.As4Path'
          x-field-uid: 4
        next_hop:
          $ref: '#/components/schemas/Bgp.Attributes.NextHop'
          x-field-uid: 5
        multi_exit_discriminator:
          $ref: '#/components/schemas/Bgp.Attributes.MultiExitDiscriminator'
          x-field-uid: 6
        local_preference:
          $ref: '#/components/schemas/Bgp.Attributes.LocalPreference'
          x-field-uid: 7
        include_atomic_aggregator:
          description: "If enabled, it indicates that the ATOMIC_AGGREGATOR attribute\
            \ should be included in the Update.\nPresence of this attribute Indicates\
            \ that this route might not be getting sent on a fully optimized path\
            \ \nsince some intermediate BGP speaker has aggregated the route.    \
            \                     "
          type: boolean
          default: false
          x-field-uid: 8
        aggregator:
          $ref: '#/components/schemas/Bgp.Attributes.Aggregator'
          x-field-uid: 9
        as4_aggregator:
          $ref: '#/components/schemas/Bgp.Attributes.As4Aggregator'
          x-field-uid: 10
        community:
          type: array
          items:
            $ref: '#/components/schemas/Bgp.Attributes.Community'
          x-field-uid: 11
        originator_id:
          $ref: '#/components/schemas/Bgp.Attributes.OriginatorId'
          x-field-uid: 12
        cluster_ids:
          description: "When a Route Reflector reflects a route, it prepends the local\
            \ CLUSTER_ID to the CLUSTER_LIST as defined in RFC4456.  "
          type: array
          items:
            type: string
            format: ipv4
            default: 0.0.0.0
          x-field-uid: 13
        extended_communities:
          description: "Optional EXTENDED_COMMUNITY attribute settings.\nThe EXTENDED_COMMUNITY\
            \ Attribute is a transitive optional BGP attribute, with the Type Code\
            \ 16. Community and Extended Communities  attributes\nare utilized to\
            \ trigger routing decisions, such as acceptance, rejection,  preference,\
            \ or redistribution. An extended community is an eight byte value.\nIt\
            \ is divided into two main parts. The first two bytes of the community\
            \ encode a type and sub-type fields and the last six bytes carry a unique\
            \ set\nof data in a format defined by the type and sub-type field. Extended\
            \ communities provide a larger range for grouping or categorizing communities.\
            \            "
          type: array
          items:
            $ref: '#/components/schemas/Bgp.ExtendedCommunity'
          x-field-uid: 14
        tunnel_encapsulation:
          $ref: '#/components/schemas/Bgp.Attributes.TunnelEncapsulation'
          x-field-uid: 15
        mp_reach:
          $ref: '#/components/schemas/Bgp.Attributes.MpReachNlri'
          x-field-uid: 16
        mp_unreach:
          $ref: '#/components/schemas/Bgp.Attributes.MpUnreachNlri'
          x-field-uid: 17
    Bgp.Attributes.OtherAttribute:
      description: |-
        One unknown attribute stored as hex bytes.
      type: object
      required:
      - type
      - raw_value
      properties:
        flag_optional:
          description: |-
            Optional flag in the BGP attribute.
          type: boolean
          default: false
          x-field-uid: 1
        flag_transitive:
          description: |-
            Transitive flag in the BGP attribute.
          type: boolean
          default: false
          x-field-uid: 2
        flag_partial:
          description: |-
            Partial flag in the BGP attribute.
          type: boolean
          default: false
          x-field-uid: 3
        flag_extended_length:
          description: |-
            Extended length flag in the BGP attribute.
          type: boolean
          default: false
          x-field-uid: 4
        type:
          description: |-
            The value of the Type field in the attribute.
          type: integer
          format: uint32
          x-field-uid: 5
        raw_value:
          description: "Contents of the value field ( the contents after the initial\
            \ two bytes containing the Flags and Type field ) of the attribute in\
            \ hex bytes. \nIt includes the contents of length of the extended length\
            \ field if included."
          type: string
          format: hex
          x-field-uid: 6
    Bgp.Attributes.AsPath:
      description: |-
        The AS_PATH attribute identifies the autonomous systems through  which routing information
        carried in this UPDATE message has passed.
        This contains the configuration of how to include the Local AS in the AS path
        attribute of the MP REACH NLRI. It also contains optional configuration of
        additional AS Path Segments that can be included in the AS Path attribute.
        The AS Path consists of a Set or Sequence of Autonomous Systems (AS) numbers  that
        a routing information passes through to reach the destination.
        There are two modes in which AS numbers can be encoded in the AS Path Segments
        - When the AS Path is being exchanged between old and new BGP speakers or between two old BGP speakers , the AS numbers are encoded as 2 byte values.
        - When the AS Path is being exchanged between two new BGP speakers supporting 4 byte AS , the AS numbers are encoded as 4 byte values.
      type: object
      properties:
        choice:
          type: string
          default: four_byte_as_path
          x-enum:
            four_byte_as_path:
              x-field-uid: 1
            two_byte_as_path:
              x-field-uid: 2
          x-field-uid: 1
          enum:
          - four_byte_as_path
          - two_byte_as_path
        four_byte_as_path:
          x-field-uid: 2
          $ref: '#/components/schemas/Bgp.Attributes.AsPath.FourByteAsPath'
        two_byte_as_path:
          x-field-uid: 3
          $ref: '#/components/schemas/Bgp.Attributes.AsPath.TwoByteAsPath'
    Bgp.Attributes.AsPath.FourByteAsPath:
      description: |-
        AS Paths with 4 byte AS numbers can be exchanged only if both BGP speakers support 4 byte AS number extensions.
      type: object
      properties:
        segments:
          description: "The AS path segments containing 4 byte AS numbers to be added\
            \ in the AS Path attribute.  By default, an empty AS path should always\
            \ be included and for EBGP at minimum the local AS number should be present\
            \ in the AS Path.            "
          type: array
          items:
            $ref: '#/components/schemas/Bgp.Attributes.FourByteAsPathSegment'
          x-field-uid: 1
    Bgp.Attributes.FourByteAsPathSegment:
      description: |-
        Configuration for a single BGP AS path segment containing 4 byte AS numbers.
      type: object
      properties:
        type:
          description: |-
            AS sequence is the most common type of AS_PATH, it contains the  list
            of ASNs starting with the most recent ASN being added read  from left
            to right.
            The other three AS_PATH types are used for Confederations
            - AS_SET is the type of AS_PATH attribute that summarizes routes using
            using the aggregate-address command, allowing AS_PATHs to be  summarized
            in the update as well.
            - AS_CONFED_SEQ gives the list of ASNs in the path starting with the  most
            recent ASN to be added reading left to right
            - AS_CONFED_SET will allow summarization of multiple AS PATHs to be  sent
            in BGP Updates.
          type: string
          default: as_seq
          x-field-uid: 1
          x-enum:
            as_seq:
              x-field-uid: 1
            as_set:
              x-field-uid: 2
            as_confed_seq:
              x-field-uid: 3
            as_confed_set:
              x-field-uid: 4
          enum:
          - as_seq
          - as_set
          - as_confed_seq
          - as_confed_set
        as_numbers:
          description: |-
            The 4 byte AS numbers in this AS path segment.
          type: array
          items:
            type: integer
            format: uint32
            default: 1
          x-field-uid: 2
    Bgp.Attributes.AsPath.TwoByteAsPath:
      description: |-
        AS Paths with 2 byte AS numbers is used when any of the two scenarios occur :
          - An old BGP speaker and new BGP speaker are sending BGP Updates to one another.
          - Two old BGP speakers are sending BGP Updates to one another.
      type: object
      properties:
        segments:
          description: "The AS path segments containing 2 byte AS numbers to be added\
            \ in the AS Path attribute.  By default, an empty AS path should always\
            \ be included and for EBGP the sender's AS number should be prepended\
            \ to the AS Path.            "
          type: array
          items:
            $ref: '#/components/schemas/Bgp.Attributes.TwoByteAsPathSegment'
          x-field-uid: 1
    Bgp.Attributes.TwoByteAsPathSegment:
      description: |-
        Configuration for a single BGP AS path segment containing 2 byte AS numbers.
      type: object
      properties:
        type:
          description: |-
            AS sequence is the most common type of AS_PATH, it contains the  list
            of ASNs starting with the most recent ASN being added read  from left
            to right.
            The other three AS_PATH types are used for Confederations
            - AS_SET is the type of AS_PATH attribute that summarizes routes using
            using the aggregate-address command, allowing AS_PATHs to be  summarized
            in the update as well.
            - AS_CONFED_SEQ gives the list of ASNs in the path starting with the  most
            recent ASN to be added reading left to right
            - AS_CONFED_SET will allow summarization of multiple AS PATHs to be  sent
            in BGP Updates.
          type: string
          default: as_seq
          x-field-uid: 1
          x-enum:
            as_seq:
              x-field-uid: 1
            as_set:
              x-field-uid: 2
            as_confed_seq:
              x-field-uid: 3
            as_confed_set:
              x-field-uid: 4
          enum:
          - as_seq
          - as_set
          - as_confed_seq
          - as_confed_set
        as_numbers:
          description: |-
            The 2 byte AS numbers in this AS path segment.
          type: array
          items:
            type: integer
            format: uint32
            default: 1
            maximum: 65535
          x-field-uid: 2
    Bgp.Attributes.As4Path:
      description: |-
        The AS4_PATH attribute identifies the autonomous systems through  which routing information
        carried in this UPDATE message has passed.
        This contains the configuration of how to include the Local AS in the AS path
        attribute of the MP REACH NLRI. It also contains optional configuration of
        additional AS Path Segments that can be included in the AS Path attribute.
        The AS Path consists of a Set or Sequence of Autonomous Systems (AS) numbers  that
        a routing information passes through to reach the destination.
        AS4_PATH is only exchanged in two scenarios:
        - When an old BGP speaker has to forward a received AS4_PATH containing 4 byte AS numbers to new BGP speaker.
        - When a new BGP speaker is connected to an old BGP speaker and has to propagate 4 byte AS numbers via the old BGP speaker.
        Its usage is described in RFC4893.
      type: object
      properties:
        segments:
          description: |-
            The AS path segments containing 4 byte AS numbers to be added in the AS4_PATH attribute.
          type: array
          items:
            $ref: '#/components/schemas/Bgp.Attributes.FourByteAsPathSegment'
          x-field-uid: 1
    Bgp.Attributes.Aggregator:
      description: "Optional AGGREGATOR attribute which maybe be added by a BGP speaker\
        \ which performs route aggregation.\nWhen AGGREGATOR attribute is being sent\
        \ to a new BGP speaker , the AS number is encoded as a 4 byte value.\nWhen\
        \ AGGREGATOR attribute is being exchanged between a new and an old BGP speaker\
        \ or between two old BGP speakers, \nthe AS number is encoded as a 2 byte\
        \ value.\nIt contain the AS number and IP address of the speaker performing\
        \ the aggregation.         "
      type: object
      properties:
        choice:
          type: string
          default: four_byte_as
          x-enum:
            four_byte_as:
              x-field-uid: 1
            two_byte_as:
              x-field-uid: 2
          x-field-uid: 1
          enum:
          - four_byte_as
          - two_byte_as
        four_byte_as:
          description: |-
            The value of the 4 byte  AS number of the BGP speaker which aggregated the route. If the value of the AS number is less than 2 octets ( 65535 or less), the AS4_AGGREGATOR object should not be sent.
          type: integer
          format: uint32
          default: 65536
          x-field-uid: 2
        two_byte_as:
          description: "The value of the 2 byte AS number of the BGP speaker which\
            \ aggregated the route.              "
          type: integer
          format: uint32
          default: 1
          maximum: 65535
          x-field-uid: 3
        ipv4_address:
          description: "The IPv4 address of the BGP speaker which aggregated the route.\
            \            "
          type: string
          format: ipv4
          default: 0.0.0.0
          x-field-uid: 4
    Bgp.Attributes.As4Aggregator:
      description: "Optional AS4_AGGREGATOR attribute which maybe be added by a BGP\
        \ speaker in one of two cases:\n- If it is a new BGP speaker speaking to an\
        \ old BGP speaker and needs to send a 4 byte value for the AS number of the\
        \ BGP route aggregator.\n- If it is a old BGP speaker speaking to a new BGP\
        \ speaker and has to transparently forward a received AS4_AGGREGATOR from\
        \ some other peer.\nIts usage is described in RFC4893.          "
      type: object
      properties:
        as_num:
          description: "The value of the 4 byte AS number of the BGP speaker which\
            \ aggregated the route.              "
          type: integer
          format: uint32
          x-field-uid: 1
        ipv4_address:
          description: "The IPv4 address of the BGP speaker which aggregated the route.\
            \            "
          type: string
          format: ipv4
          default: 0.0.0.0
          x-field-uid: 2
    Bgp.Attributes.Community:
      description: "The COMMUNITY attribute provide additional capability for tagging\
        \ routes and for modifying BGP routing policy on \nupstream and downstream\
        \ routers. BGP community is a 32-bit number which is broken into 16-bit AS\
        \ number and a \n16-bit custom value or it contains some pre-defined well\
        \ known values.           "
      type: object
      required:
      - choice
      properties:
        choice:
          description: "The type of community AS number.   "
          type: string
          x-field-uid: 1
          x-enum:
            custom_community:
              x-field-uid: 1
            no_export:
              x-field-uid: 2
            no_advertised:
              x-field-uid: 3
            no_export_subconfed:
              x-field-uid: 4
            llgr_stale:
              x-field-uid: 5
            no_llgr:
              x-field-uid: 6
          enum:
          - custom_community
          - no_export
          - no_advertised
          - no_export_subconfed
          - llgr_stale
          - no_llgr
        custom_community:
          $ref: '#/components/schemas/Bgp.Attributes.CustomCommunity'
          x-field-uid: 2
    Bgp.Attributes.CustomCommunity:
      description: "User defined COMMUNITY attribute containing 2 byte AS and custom\
        \ 2 byte value defined by the administrator of the domain.        "
      type: object
      properties:
        as_number:
          description: |-
            First two octets of the community value containing a 2 byte AS number.
          type: integer
          format: uint32
          maximum: 65535
          default: 0
          x-field-uid: 1
        custom:
          description: |-
            Last two octets of the community value in hex.  If user provides less than 4 hex bytes, it should be left-padded with 0s.
          type: string
          format: hex
          default: '0000'
          maxLength: 4
          x-field-uid: 2
    Bgp.Attributes.NextHop:
      description: "Next hop to be sent inside MP_REACH NLRI or as the NEXT_HOP attribute\
        \ if advertised as traditional NLRI.            "
      type: object
      required:
      - choice
      properties:
        choice:
          description: "The type of the next HOP.  "
          type: string
          x-field-uid: 1
          x-enum:
            ipv4:
              x-field-uid: 1
            ipv6:
              x-field-uid: 2
            ipv6_two_addresses:
              x-field-uid: 3
          enum:
          - ipv4
          - ipv6
          - ipv6_two_addresses
        ipv4:
          description: |-
            The 4 byte IPv4 address of the next-hop from which the route was received.
          type: string
          format: ipv4
          default: 0.0.0.0
          x-field-uid: 2
        ipv6:
          description: |-
            The 16 byte IPv6 address of the next-hop from which the route was received.
          type: string
          format: ipv6
          default: 0::0
          x-field-uid: 3
        ipv6_two_addresses:
          x-field-uid: 4
          $ref: '#/components/schemas/Bgp.Attributes.NextHop.Ipv6TwoAddresses'
    Bgp.Attributes.NextHop.Ipv6TwoAddresses:
      description: "There is a specific scenario in which it is possible to receive\
        \ a Global and Link Local address in the Next Hop \nfield in a MP_REACH attribute\
        \ or in the NEXT_HOP attribute(RFC2545: Section 3). "
      type: object
      properties:
        first:
          description: |-
            The first IPv6 next hop in the 32 byte IPv6 Next Hop.
          type: string
          format: ipv6
          default: 0::0
          x-field-uid: 1
        second:
          description: |-
            The second IPv6 next hop in the 32 byte IPv6 Next Hop.
          type: string
          format: ipv6
          default: 0::0
          x-field-uid: 2
    Bgp.Attributes.MpReachNlri:
      description: "The MP_REACH attribute is an optional attribute which can be included\
        \ in the attributes of a BGP Update message as defined in https://datatracker.ietf.org/doc/html/rfc4760#section-3.\n\
        The following AFI / SAFI combinations are supported:\n- IPv4 Unicast with\
        \ AFI as 1 and SAFI as 1 \n- IPv6 Unicast with AFI as 2 and SAFI as 1 \n-\
        \ Segment Routing Policy for IPv4 Unicast with AFI as 1 and SAFI as 73 ( draft-ietf-idr-sr-policy-safi-02\
        \ Section 2.1 )\n- Segment Routing Policy for IPv6 Unicast with AFI as 2 and\
        \ SAFI as 73"
      type: object
      required:
      - choice
      properties:
        next_hop:
          $ref: '#/components/schemas/Bgp.Attributes.NextHop'
          x-field-uid: 1
        choice:
          description: "The AFI and SAFI to be sent in the MPREACH_NLRI in the Update.\
            \  "
          type: string
          x-field-uid: 2
          x-enum:
            ipv4_unicast:
              x-field-uid: 1
            ipv6_unicast:
              x-field-uid: 2
            ipv4_srpolicy:
              x-field-uid: 3
            ipv6_srpolicy:
              x-field-uid: 4
          enum:
          - ipv4_unicast
          - ipv6_unicast
          - ipv4_srpolicy
          - ipv6_srpolicy
        ipv4_unicast:
          description: |-
            List of IPv4 prefixes being sent in the IPv4 Unicast MPREACH_NLRI .
          type: array
          items:
            $ref: '#/components/schemas/Bgp.OneIpv4NLRIPrefix'
          x-field-uid: 3
        ipv6_unicast:
          description: |-
            List of IPv6 prefixes being sent in the IPv6 Unicast MPREACH_NLRI .
          type: array
          items:
            $ref: '#/components/schemas/Bgp.OneIpv6NLRIPrefix'
          x-field-uid: 4
        ipv4_srpolicy:
          description: |-
            IPv4 endpoint with Segment Routing Policy being sent in the IPv4 MPREACH_NLRI .
          $ref: '#/components/schemas/Bgp.Ipv4SrPolicyNLRIPrefix'
          x-field-uid: 5
        ipv6_srpolicy:
          description: "IPv6 endpoint with Segment Routing Policy being sent in the\
            \ IPv6 MPREACH_NLRI .          "
          $ref: '#/components/schemas/Bgp.Ipv6SrPolicyNLRIPrefix'
          x-field-uid: 6
    Bgp.Attributes.MpUnreachNlri:
      description: "The MP_UNREACH attribute is an optional attribute which can be\
        \ included in the attributes of a BGP Update message as defined in https://datatracker.ietf.org/doc/html/rfc4760#section-3.\n\
        The following AFI / SAFI combinations are supported:\n- IPv4 Unicast with\
        \ AFI as 1 and SAFI as 1 \n- IPv6 Unicast with AFI as 2 and SAFI as 1 \n-\
        \ Segment Routing Policy for IPv4 Unicast with AFI as 1 and SAFI as 73 (draft-ietf-idr-sr-policy-safi-02\
        \ Section 2.1)\n- Segment Routing Policy for IPv6 Unicast with AFI as 2 and\
        \ SAFI as 73"
      type: object
      properties:
        choice:
          description: "The AFI and SAFI to be sent in the MPUNREACH_NLRI in the Update.\
            \  "
          type: string
          x-field-uid: 1
          x-enum:
            ipv4_unicast:
              x-field-uid: 1
            ipv6_unicast:
              x-field-uid: 2
            ipv4_srpolicy:
              x-field-uid: 3
            ipv6_srpolicy:
              x-field-uid: 4
          enum:
          - ipv4_unicast
          - ipv6_unicast
          - ipv4_srpolicy
          - ipv6_srpolicy
        ipv4_unicast:
          description: |-
            List of IPv4 prefixes being sent in the IPv4 Unicast MPUNREACH_NLRI .
          type: array
          items:
            $ref: '#/components/schemas/Bgp.OneIpv4NLRIPrefix'
          x-field-uid: 2
        ipv6_unicast:
          description: |-
            List of IPv6 prefixes being sent in the IPv6 Unicast MPUNREACH_NLRI .
          type: array
          items:
            $ref: '#/components/schemas/Bgp.OneIpv6NLRIPrefix'
          x-field-uid: 3
        ipv4_srpolicy:
          description: |-
            IPv4 endpoint with Segment Routing Policy being sent in the IPv4 MPUNREACH_NLRI .
          $ref: '#/components/schemas/Bgp.Ipv4SrPolicyNLRIPrefix'
          x-field-uid: 4
        ipv6_srpolicy:
          description: "IPv6 endpoint with Segment Routing Policy being sent in the\
            \ IPv4 MPUNREACH_NLRI .          "
          $ref: '#/components/schemas/Bgp.Ipv6SrPolicyNLRIPrefix'
          x-field-uid: 5
    Bgp.Attributes.MultiExitDiscriminator:
      description: "Optional MULTI_EXIT_DISCRIMINATOR attribute sent to the peer to\
        \ help in the route selection process. "
      properties:
        value:
          description: "The multi exit discriminator (MED) value used for route selection\
            \ sent to the peer.            "
          type: integer
          format: uint32
          default: 0
          x-field-uid: 1
    Bgp.Attributes.LocalPreference:
      description: "Optional LOCAL_PREFERENCE attribute sent to the peer to indicate\
        \ the degree of preference \nfor externally learned routes.This should be\
        \ included only for internal peers.It is \nused for the selection of the path\
        \ for the traffic leaving the AS.The route with the \nhighest local preference\
        \ value is preferred."
      properties:
        value:
          description: "Value to be set in the LOCAL_PREFERENCE attribute The multi\
            \ exit discriminator (MED) value used for route selection sent to the\
            \ peer.            "
          type: integer
          format: uint32
          default: 100
          x-field-uid: 1
    Bgp.Attributes.OriginatorId:
      description: |-
        Optional ORIGINATOR_ID attribute (type code 9) carries the Router Id of the route's originator in the local AS.
      properties:
        value:
          description: "The value of the originator's Router Id.            "
          type: string
          format: ipv4
          default: 0.0.0.0
          x-field-uid: 1
    Bgp.Attributes.TunnelEncapsulation:
      description: |-
        The TUNNEL_ENCAPSULATION  attribute is used by a BGP speaker to inform other BGP speakers how to encapsulate packets that need to be sent to it.
        It is defined in RFC9012 and is assigned a Type code of 23.
      properties:
        choice:
          description: |-
            Identifies a type of tunnel. The field contains values from the IANA registry "BGP Tunnel Encapsulation Attribute Tunnel Types".
          type: string
          x-field-uid: 1
          x-enum:
            sr_policy:
              x-field-uid: 1
          default: sr_policy
          enum:
          - sr_policy
        sr_policy:
          $ref: '#/components/schemas/Bgp.Attributes.SegmentRoutingPolicy'
          x-field-uid: 2
    Bgp.Attributes.SegmentRoutingPolicy:
      description: "Optional Segment Routing Policy information as defined in draft-ietf-idr-sr-policy-safi-02.\n\
        This information is carried in TUNNEL_ENCAPSULATION attribute with type set\
        \ to  SR Policy (15). "
      type: object
      properties:
        binding_segment_identifier:
          $ref: '#/components/schemas/Bgp.Attributes.Bsid'
          x-field-uid: 1
        srv6_binding_segment_identifier:
          description: "The SRv6 Binding SID sub-TLV is an optional sub-TLV of type\
            \ 20 that is used to signal the SRv6 Binding SID\nrelated information\
            \ of an SR Policy candidate path. \n  - More than one SRv6 Binding SID\
            \ sub-TLVs MAY be signaled in the same SR Policy encoding to indicate\
            \ one\n    or more SRv6 SIDs, each with potentially different SRv6 Endpoint\
            \ Behaviors to be instantiated.\n  - The format of the sub-TLV is defined\
            \ in draft-ietf-idr-sr-policy-safi-02 Section 2.4.3 .       "
          type: array
          items:
            $ref: '#/components/schemas/Bgp.Attributes.Srv6Bsid'
          x-field-uid: 2
        preference:
          $ref: '#/components/schemas/Bgp.Attributes.SrPolicy.Preference'
          x-field-uid: 3
        priority:
          $ref: '#/components/schemas/Bgp.Attributes.SrPolicy.Priority'
          x-field-uid: 4
        policy_name:
          $ref: '#/components/schemas/Bgp.Attributes.SrPolicy.PolicyName'
          x-field-uid: 5
        policy_candidate_name:
          $ref: '#/components/schemas/Bgp.Attributes.SrPolicy.PolicyCandidateName'
          x-field-uid: 6
        explicit_null_label_policy:
          $ref: '#/components/schemas/Bgp.Attributes.SrPolicy.ExplicitNullPolicy'
          x-field-uid: 7
        segment_list:
          type: array
          items:
            $ref: '#/components/schemas/Bgp.Attributes.SrPolicy.SegmentList'
          x-field-uid: 8
    Bgp.Attributes.Bsid:
      description: "The Binding Segment Identifier is an optional sub-tlv of type\
        \ 13 that can be sent with a SR Policy \nTunnel Encapsulation attribute.\n\
        When the active candidate path has a specified Binding Segment Identifier,\
        \ the SR Policy uses that \nBSID if this value (label in MPLS, IPv6 address\
        \ in SRv6) is available.\n- The format of the sub-TLV is defined in draft-ietf-idr-sr-policy-safi-02\
        \ Section 2.4.2 . \n- It is recommended that if SRv6 Binding SID is desired\
        \ to be signalled, the SRv6 Binding SID sub-TLV that enables \n  the specification\
        \ of the SRv6 Endpoint Behavior should be used."
      type: object
      required:
      - choice
      properties:
        choice:
          description: "The type of Segment Identifier.   "
          type: string
          x-field-uid: 1
          x-enum:
            mpls:
              x-field-uid: 1
            srv6:
              x-field-uid: 2
          enum:
          - mpls
          - srv6
        mpls:
          $ref: '#/components/schemas/Bgp.Attributes.Bsid.Mpls'
          x-field-uid: 2
        srv6:
          $ref: '#/components/schemas/Bgp.Attributes.Bsid.Srv6'
          x-field-uid: 3
    Bgp.Attributes.Bsid.Mpls:
      description: "When the active candidate path has a specified Binding Segment\
        \ Identifier, the SR Policy uses that BSID defined \nas a MPLS label.The format\
        \ of the sub-TLV is defined in draft-ietf-idr-sr-policy-safi-02  Section 2.4.2\
        \ ."
      type: object
      properties:
        flag_specified_bsid_only:
          description: "S-Flag: This flag encodes the \"Specified-BSID-only\" behavior.\
            \ It's usage is \ndescribed in section 6.2.3 in [RFC9256]."
          type: boolean
          default: false
          x-field-uid: 1
        flag_drop_upon_invalid:
          description: "I-Flag: This flag encodes the \"Drop Upon Invalid\" behavior.\
            \ \nIt's usage is described in section 8.2 in [RFC9256]."
          type: boolean
          default: false
          x-field-uid: 2
        mpls_sid:
          $ref: '#/components/schemas/Bgp.Attributes.Sid.Mpls'
          x-field-uid: 3
    Bgp.Attributes.Bsid.Srv6:
      description: "When the active candidate path has a specified Binding Segment\
        \ Identifier, the SR Policy uses that BSID defined \nas an IPv6 Address.The\
        \ format of the sub-TLV is defined in draft-ietf-idr-sr-policy-safi-02 Section\
        \ 2.4.2 ."
      type: object
      properties:
        flag_specified_bsid_only:
          description: "S-Flag: This flag encodes the \"Specified-BSID-only\" behavior.\
            \ It's usage is \ndescribed in section 6.2.3 in [RFC9256]."
          type: boolean
          default: false
          x-field-uid: 1
        flag_drop_upon_invalid:
          description: "I-Flag: This flag encodes the \"Drop Upon Invalid\" behavior.\
            \ \nIt's usage is described in section 8.2 in [RFC9256]."
          type: boolean
          default: false
          x-field-uid: 2
        ipv6_addr:
          description: |-
            IPv6 address denoting the SRv6 SID.
          type: string
          format: ipv6
          default: 0::0
          x-field-uid: 3
    Bgp.Attributes.Srv6Bsid:
      description: "The SRv6 Binding SID sub-TLV is an optional sub-TLV of type 20\
        \ that is used to signal the SRv6 Binding SID\nrelated information of an SR\
        \ Policy candidate path. \n  - More than one SRv6 Binding SID sub-TLVs MAY\
        \ be signaled in the same SR Policy encoding to indicate one or\n    more\
        \ SRv6 SIDs, each with potentially different SRv6 Endpoint Behaviors to be\
        \ instantiated.\n  - The format of the sub-TLV is defined in draft-ietf-idr-sr-policy-safi-02\
        \ Section 2.4.3 ."
      type: object
      properties:
        flag_specified_bsid_only:
          description: "S-Flag: This flag encodes the \"Specified-BSID-only\" behavior.\
            \ It's usage is \ndescribed in section 6.2.3 in [RFC9256]."
          type: boolean
          default: false
          x-field-uid: 1
        flag_drop_upon_invalid:
          description: "I-Flag: This flag encodes the \"Drop Upon Invalid\" behavior.\
            \ \nIt's usage is described in section 8.2 in [RFC9256]."
          type: boolean
          default: false
          x-field-uid: 2
        flag_srv6_endpoint_behavior:
          description: "B-Flag: This flag, when set, indicates the presence of the\
            \ SRv6 Endpoint Behavior \nand SID Structure encoding specified in Section\
            \ 2.4.4.2.4 of draft-ietf-idr-sr-policy-safi-02."
          type: boolean
          default: false
          x-field-uid: 3
        ipv6_addr:
          description: |-
            IPv6 address denoting the SRv6 SID.
          type: string
          format: ipv6
          default: 0::0
          x-field-uid: 4
        srv6_endpoint_behavior:
          $ref: '#/components/schemas/Bgp.Attributes.SegmentRoutingPolicy.SRv6SIDEndpointBehaviorAndStructure'
          x-field-uid: 5
    Bgp.Attributes.Sid.Mpls:
      description: "This carries a 20 bit Multi Protocol Label Switching alongwith\
        \ 3 bits traffic class, 1 bit indicating presence\nor absence of Bottom-Of-Stack\
        \ and 8 bits carrying the Time to Live value. "
      type: object
      properties:
        label:
          description: |-
            20 bit MPLS Label value.
          type: integer
          format: uint32
          default: 16
          maximum: 1048576
          x-field-uid: 1
        traffic_class:
          description: |-
            3 bits of Traffic Class.
          type: integer
          format: uint32
          default: 0
          maximum: 7
          x-field-uid: 2
        flag_bos:
          description: |-
            Bottom of Stack
          type: boolean
          default: true
          x-field-uid: 3
        ttl:
          description: |-
            8 bits Time to Live
          type: integer
          format: uint32
          default: 63
          maximum: 63
          x-field-uid: 4
    Bgp.Attributes.Sid.Srv6:
      description: |-
        An IPv6 address denoting a SRv6 SID.
      type: object
      properties:
        ip:
          type: string
          format: ipv6
          default: 0::0
          x-field-uid: 1
    Bgp.Attributes.SrPolicy.Preference:
      description: |
        Optional Preference sub-tlv (Type 12) is used to select the best candidate path for an SR Policy.
        It is defined in Section 2.4.1 of draft-ietf-idr-sr-policy-safi-02 .
      type: object
      properties:
        value:
          description: |-
            Value to be carried in the Preference sub-tlv.
          type: integer
          format: uint32
          default: 0
          x-field-uid: 1
    Bgp.Attributes.SrPolicy.Priority:
      description: |-
        Optional Priority sub-tlv (Type 15) used to select the order in which policies should be re-computed.
        - It is defined in Section 2.4.6 of draft-ietf-idr-sr-policy-safi-02 .
      type: object
      properties:
        value:
          description: "Value to be carried in the Priority sub-tlv.            "
          type: integer
          format: uint32
          maximum: 255
          default: 0
          x-field-uid: 1
    Bgp.Attributes.SrPolicy.PolicyCandidateName:
      description: "Optional Policy Candidate Path Name sub-tlv (Type 129) which carries\
        \ the symbolic name for the SR Policy candidate path \nfor debugging.    \n\
        - It is defined in Section 2.4.7 of draft-ietf-idr-sr-policy-safi-02 ."
      type: object
      required:
      - value
      properties:
        value:
          description: |-
            Value of the symbolic Policy Candidate Path Name carried in the Policy Candidate Path Name sub-tlv.
            It is recommended that the size of the name is limited to 255 bytes.
          type: string
          maxLength: 500
          x-field-uid: 1
    Bgp.Attributes.SrPolicy.PolicyName:
      description: "Optional Policy Name sub-tlv (Type 130) which carries the symbolic\
        \ name for the SR Policy for which the \ncandidate path is being advertised\
        \ for debugging.    \n- It is defined in Section 2.4.8 of draft-ietf-idr-sr-policy-safi-02\
        \ ."
      type: object
      required:
      - value
      properties:
        value:
          description: |-
            Value of the symbolic policy name carried in the Policy Name sub-tlv.
            It is recommended that the size of the name is limited to 255 bytes.
          type: string
          maxLength: 500
          x-field-uid: 1
    Bgp.Attributes.SrPolicy.ExplicitNullPolicy:
      description: |-
        This is an optional sub-tlv (Type 14) which indicates whether an Explicit NULL Label must be pushed on an unlabeled IP
        packet before other labels for IPv4 or IPv6 flows.
        - It is defined in Section 2.4.5 of draft-ietf-idr-sr-policy-safi-02.
      properties:
        choice:
          description: |-
            The Explicit NULL Label policy.
          type: string
          x-field-uid: 1
          x-enum:
            unknown:
              x-field-uid: 1
            push_ipv4:
              x-field-uid: 2
            push_ipv6:
              x-field-uid: 3
            push_ipv4_and_ipv6:
              x-field-uid: 4
            donot_push:
              x-field-uid: 5
          default: push_ipv4_and_ipv6
          enum:
          - unknown
          - push_ipv4
          - push_ipv6
          - push_ipv4_and_ipv6
          - donot_push
    Bgp.Attributes.SrPolicy.SegmentList:
      description: "One optional SEGMENT_LIST sub-tlv encoded with type of 128.\n\
        One sub-tlv (Type 128) encodes a single explicit path towards the endpoint\
        \ as described in \nsection 5.1 of [RFC9256]. \nThe Segment List sub-TLV includes\
        \ the elements of the paths (i.e., segments) as well \nas an optional Weight\
        \ sub-TLV."
      type: object
      properties:
        weight:
          $ref: '#/components/schemas/Bgp.Attributes.SegmentRoutingPolicy.SegmentList.Weight'
          x-field-uid: 1
        segments:
          type: array
          items:
            $ref: '#/components/schemas/Bgp.Attributes.SegmentRoutingPolicy.SegmentList.Segment'
          x-field-uid: 2
    Bgp.Attributes.SegmentRoutingPolicy.SegmentList.Weight:
      description: |-
        The optional Weight sub-TLV (Type 9) specifies the weight associated with a given segment list. The weight is used for weighted multipath.
      type: object
      properties:
        value:
          description: |-
            Value of the weight.
          type: integer
          format: uint32
          default: 0
          x-field-uid: 1
    Bgp.Attributes.SegmentRoutingPolicy.SegmentList.Segment:
      description: "A Segment sub-TLV describes a single segment in a segment list\
        \  i.e., a single\nelement of the explicit path. The Segment sub-TLVs are\
        \ optional.\nSegment Types A and B are defined as described in 2.4.4.2.\n\
        Segment Types C upto K are defined as described in in draft-ietf-idr-bgp-sr-segtypes-ext-03\
        \  .      "
      type: object
      required:
      - choice
      properties:
        choice:
          description: |-
            Specify one of the segment types as defined in ietf-idr-segment-routing-te-policy
            - Type  A: SID only, in the form of MPLS Label.
            - Type  B: SID only, in the form of IPv6 Address.
            - Type  C: IPv4 Prefix with optional SR Algorithm.
            - Type  D: IPv6 Global Prefix with optional SR Algorithm for SR-MPLS.
            - Type  E: IPv4 Prefix with Local Interface ID.
            - Type  F: IPv4 Addresses for link endpoints as Local, Remote pair.
            - Type  G: IPv6 Prefix and Interface ID for link endpoints as Local, Remote pair for SR-MPLS.
            - Type  H: IPv6 Addresses for link endpoints as Local, Remote pair for SR-MPLS.
            - Type  I: IPv6 Global Prefix with optional SR Algorithm for SRv6.
            - Type  J: IPv6 Prefix and Interface ID for link endpoints as Local, Remote pair for SRv6.
            - Type  K: IPv6 Addresses for link endpoints as Local, Remote pair for SRv6.
          type: string
          x-field-uid: 1
          x-enum:
            type_a:
              x-field-uid: 1
            type_b:
              x-field-uid: 2
            type_c:
              x-field-uid: 3
            type_d:
              x-field-uid: 4
            type_e:
              x-field-uid: 5
            type_f:
              x-field-uid: 6
            type_g:
              x-field-uid: 7
            type_h:
              x-field-uid: 8
            type_i:
              x-field-uid: 9
            type_j:
              x-field-uid: 10
            type_k:
              x-field-uid: 11
          enum:
          - type_a
          - type_b
          - type_c
          - type_d
          - type_e
          - type_f
          - type_g
          - type_h
          - type_i
          - type_j
          - type_k
        type_a:
          $ref: '#/components/schemas/Bgp.Attributes.SegmentRoutingPolicy.TypeA'
          x-field-uid: 2
        type_b:
          $ref: '#/components/schemas/Bgp.Attributes.SegmentRoutingPolicy.TypeB'
          x-field-uid: 3
        type_c:
          $ref: '#/components/schemas/Bgp.Attributes.SegmentRoutingPolicy.TypeC'
          x-field-uid: 4
        type_d:
          $ref: '#/components/schemas/Bgp.Attributes.SegmentRoutingPolicy.TypeD'
          x-field-uid: 5
        type_e:
          $ref: '#/components/schemas/Bgp.Attributes.SegmentRoutingPolicy.TypeE'
          x-field-uid: 6
        type_f:
          $ref: '#/components/schemas/Bgp.Attributes.SegmentRoutingPolicy.TypeF'
          x-field-uid: 7
        type_g:
          $ref: '#/components/schemas/Bgp.Attributes.SegmentRoutingPolicy.TypeG'
          x-field-uid: 8
        type_h:
          $ref: '#/components/schemas/Bgp.Attributes.SegmentRoutingPolicy.TypeH'
          x-field-uid: 9
        type_i:
          $ref: '#/components/schemas/Bgp.Attributes.SegmentRoutingPolicy.TypeI'
          x-field-uid: 10
        type_j:
          $ref: '#/components/schemas/Bgp.Attributes.SegmentRoutingPolicy.TypeJ'
          x-field-uid: 11
        type_k:
          $ref: '#/components/schemas/Bgp.Attributes.SegmentRoutingPolicy.TypeK'
          x-field-uid: 12
    Bgp.Attributes.SegmentRoutingPolicy.TypeA:
      description: |-
        Type A: SID only, in the form of MPLS Label.
        It is encoded as a Segment of Type 1 in the SEGMENT_LIST sub-tlv.
      type: object
      properties:
        flags:
          $ref: '#/components/schemas/Bgp.Attributes.SegmentRoutingPolicy.TypeFlags'
          x-field-uid: 1
        mpls_sid:
          $ref: '#/components/schemas/Bgp.Attributes.Sid.Mpls'
          x-field-uid: 2
    Bgp.Attributes.SegmentRoutingPolicy.TypeB:
      description: |-
        Type B: SID only, in the form of IPv6 address.
        It is encoded as a Segment of Type 13 in the SEGMENT_LIST sub-tlv.
      type: object
      properties:
        flags:
          $ref: '#/components/schemas/Bgp.Attributes.SegmentRoutingPolicy.TypeFlags'
          x-field-uid: 1
        srv6_sid:
          description: |-
            SRv6 SID.
          type: string
          format: ipv6
          default: 0::0
          x-field-uid: 2
        srv6_endpoint_behavior:
          $ref: '#/components/schemas/Bgp.Attributes.SegmentRoutingPolicy.SRv6SIDEndpointBehaviorAndStructure'
          x-field-uid: 3
    Bgp.Attributes.SegmentRoutingPolicy.TypeC:
      description: |-
        Type C: IPv4 Node Address with optional SID.
        It is encoded as a Segment of Type 3 in the SEGMENT_LIST sub-tlv.
      type: object
      properties:
        flags:
          $ref: '#/components/schemas/Bgp.Attributes.SegmentRoutingPolicy.TypeFlags'
          x-field-uid: 1
        sr_algorithm:
          description: |-
            SR Algorithm identifier when A-Flag in on. If A-flag is not enabled, it should be set to 0 on transmission and ignored on receipt.
          type: integer
          format: uint32
          maximum: 255
          default: 0
          x-field-uid: 2
        ipv4_node_address:
          description: |-
            IPv4 address representing a node.
          type: string
          format: ipv4
          default: 0.0.0.0
          x-field-uid: 3
        sr_mpls_sid:
          description: |-
            Optional SR-MPLS SID.
          $ref: '#/components/schemas/Bgp.Attributes.Sid.Mpls'
          x-field-uid: 4
    Bgp.Attributes.SegmentRoutingPolicy.TypeD:
      description: "Type D: IPv6 Node Address with optional SID for SR MPLS.\nIt is\
        \ encoded as a Segment of Type 4 in the SEGMENT_LIST sub-tlv.        "
      type: object
      properties:
        flags:
          $ref: '#/components/schemas/Bgp.Attributes.SegmentRoutingPolicy.TypeFlags'
          x-field-uid: 1
        sr_algorithm:
          description: |-
            SR Algorithm identifier when A-Flag in on. If A-flag is not enabled, it should be set to 0 on transmission and ignored on receipt.
          type: integer
          format: uint32
          maximum: 255
          default: 0
          x-field-uid: 2
        ipv6_node_address:
          description: |-
            IPv6 address representing a node.
          type: string
          format: ipv6
          default: 0::0
          x-field-uid: 3
        sr_mpls_sid:
          description: |-
            Optional SR-MPLS SID.
          $ref: '#/components/schemas/Bgp.Attributes.Sid.Mpls'
          x-field-uid: 4
    Bgp.Attributes.SegmentRoutingPolicy.TypeE:
      description: "Type E: IPv4 Address and Local Interface ID with optional SID\n\
        It is encoded as a Segment of Type 5 in the SEGMENT_LIST sub-tlv. "
      type: object
      properties:
        flags:
          $ref: '#/components/schemas/Bgp.Attributes.SegmentRoutingPolicy.TypeFlags'
          x-field-uid: 1
        local_interface_id:
          description: |-
            The Interface Index as defined in [RFC8664].
          type: integer
          format: uint32
          default: 0
          x-field-uid: 2
        ipv4_node_address:
          description: |-
            IPv4 address representing a node.
          type: string
          format: ipv4
          default: 0.0.0.0
          x-field-uid: 3
        sr_mpls_sid:
          description: |-
            Optional SR-MPLS SID.
          $ref: '#/components/schemas/Bgp.Attributes.Sid.Mpls'
          x-field-uid: 4
    Bgp.Attributes.SegmentRoutingPolicy.TypeF:
      description: "Type F: IPv4 Local and Remote addresses with optional SR-MPLS\
        \ SID.\nIt is encoded as a Segment of Type 6 in the SEGMENT_LIST sub-tlv. "
      type: object
      properties:
        flags:
          $ref: '#/components/schemas/Bgp.Attributes.SegmentRoutingPolicy.TypeFlags'
          x-field-uid: 1
        local_ipv4_address:
          description: |-
            Local IPv4 Address.
          type: string
          format: ipv4
          default: 0.0.0.0
          x-field-uid: 2
        remote_ipv4_address:
          description: |-
            Remote IPv4 Address.
          type: string
          format: ipv4
          default: 0.0.0.0
          x-field-uid: 3
        sr_mpls_sid:
          description: |-
            Optional SR-MPLS SID.
          $ref: '#/components/schemas/Bgp.Attributes.Sid.Mpls'
          x-field-uid: 4
    Bgp.Attributes.SegmentRoutingPolicy.TypeG:
      description: "Type G: IPv6 Address, Interface ID for local and remote pair with\
        \ optional SID for SR MPLS.\nIt is encoded as a Segment of Type 7 in the SEGMENT_LIST\
        \ sub-tlv. "
      type: object
      properties:
        flags:
          $ref: '#/components/schemas/Bgp.Attributes.SegmentRoutingPolicy.TypeFlags'
          x-field-uid: 1
        local_interface_id:
          description: |-
            The local Interface Index as defined in [RFC8664].
          type: integer
          format: uint32
          default: 0
          x-field-uid: 2
        local_ipv6_node_address:
          description: |-
            The IPv6 address representing the local node.
          type: string
          format: ipv6
          default: 0::0
          x-field-uid: 3
        remote_interface_id:
          description: |-
            The remote Interface Index as defined in [RFC8664]. The value MAY be set to zero when the local node address and interface identifiers are sufficient to describe the link.
          type: integer
          format: uint32
          default: 0
          x-field-uid: 4
        remote_ipv6_node_address:
          description: |-
            IPv6 address representing the remote node. The value MAY be set to zero when the local node address and interface identifiers are sufficient to describe the link.
          type: string
          format: ipv6
          default: 0::0
          x-field-uid: 5
        sr_mpls_sid:
          description: |-
            Optional SR-MPLS SID.
          $ref: '#/components/schemas/Bgp.Attributes.Sid.Mpls'
          x-field-uid: 6
    Bgp.Attributes.SegmentRoutingPolicy.TypeH:
      description: "Type H: IPv6 Local and Remote addresses with optional SID for\
        \ SR MPLS.\nIt is encoded as a Segment of Type 8 in the SEGMENT_LIST sub-tlv. "
      type: object
      properties:
        flags:
          $ref: '#/components/schemas/Bgp.Attributes.SegmentRoutingPolicy.TypeFlags'
          x-field-uid: 1
        local_ipv6_address:
          description: |-
            Local IPv6 Address.
          type: string
          format: ipv6
          default: 0::0
          x-field-uid: 2
        remote_ipv6_address:
          description: |-
            Remote IPv6 Address.
          type: string
          format: ipv6
          default: 0::0
          x-field-uid: 3
        sr_mpls_sid:
          description: |-
            Optional SR-MPLS SID.
          $ref: '#/components/schemas/Bgp.Attributes.Sid.Mpls'
          x-field-uid: 6
    Bgp.Attributes.SegmentRoutingPolicy.TypeI:
      description: "Type I: IPv6 Node Address with optional SR Algorithm and optional\
        \ SRv6 SID.\nIt is encoded as a Segment of Type 14 in the SEGMENT_LIST sub-tlv. "
      type: object
      properties:
        flags:
          $ref: '#/components/schemas/Bgp.Attributes.SegmentRoutingPolicy.TypeFlags'
          x-field-uid: 1
        sr_algorithm:
          description: |-
            SR Algorithm identifier when A-Flag in on. If A-flag is not enabled, it should be set to 0 on transmission and ignored on receipt.
          type: integer
          format: uint32
          maximum: 255
          default: 0
          x-field-uid: 2
        ipv6_node_address:
          description: |-
            IPv6 address representing a node.
          type: string
          format: ipv6
          default: 0::0
          x-field-uid: 3
        srv6_sid:
          $ref: '#/components/schemas/Bgp.Attributes.Sid.Srv6'
          x-field-uid: 4
        srv6_endpoint_behavior:
          $ref: '#/components/schemas/Bgp.Attributes.SegmentRoutingPolicy.SRv6SIDEndpointBehaviorAndStructure'
          x-field-uid: 5
    Bgp.Attributes.SegmentRoutingPolicy.TypeJ:
      description: "Type J: IPv6 Address, Interface ID for local and remote pair for\
        \ SRv6 with optional SID.\nIt is encoded as a Segment of Type 15 in the SEGMENT_LIST\
        \ sub-tlv. "
      type: object
      properties:
        flags:
          $ref: '#/components/schemas/Bgp.Attributes.SegmentRoutingPolicy.TypeFlags'
          x-field-uid: 1
        sr_algorithm:
          description: |-
            SR Algorithm identifier when A-Flag in on. If A-flag is not enabled, it should be set to 0 on transmission and ignored on receipt.
          type: integer
          format: uint32
          maximum: 255
          default: 0
          x-field-uid: 2
        local_interface_id:
          description: |-
            The local Interface Index as defined in [RFC8664].
          type: integer
          format: uint32
          default: 0
          x-field-uid: 3
        local_ipv6_node_address:
          description: |-
            The IPv6 address representing the local node.
          type: string
          format: ipv6
          default: 0::0
          x-field-uid: 4
        remote_interface_id:
          description: |-
            The remote Interface Index as defined in [RFC8664]. The value MAY be set to zero when the local node address and interface identifiers are sufficient to describe the link.
          type: integer
          format: uint32
          default: 0
          x-field-uid: 5
        remote_ipv6_node_address:
          description: |-
            IPv6 address representing the remote node. The value MAY be set to zero when the local node address and interface identifiers are sufficient to describe the link.
          type: string
          format: ipv6
          default: 0::0
          x-field-uid: 6
        srv6_sid:
          $ref: '#/components/schemas/Bgp.Attributes.Sid.Srv6'
          x-field-uid: 7
        srv6_endpoint_behavior:
          $ref: '#/components/schemas/Bgp.Attributes.SegmentRoutingPolicy.SRv6SIDEndpointBehaviorAndStructure'
          x-field-uid: 8
    Bgp.Attributes.SegmentRoutingPolicy.TypeK:
      description: "Type K: IPv6 Local and Remote addresses for SRv6 with optional\
        \ SID.\nIt is encoded as a Segment of Type 16 in the SEGMENT_LIST sub-tlv. "
      type: object
      properties:
        flags:
          $ref: '#/components/schemas/Bgp.Attributes.SegmentRoutingPolicy.TypeFlags'
          x-field-uid: 1
        sr_algorithm:
          description: |-
            SR Algorithm identifier when A-Flag in on. If A-flag is not enabled, it should be set to 0 on transmission and ignored on receipt.
          type: integer
          format: uint32
          maximum: 255
          default: 0
          x-field-uid: 2
        local_ipv6_address:
          description: |-
            Local IPv6 Address.
          type: string
          format: ipv6
          default: 0::0
          x-field-uid: 3
        remote_ipv6_address:
          description: |-
            Remote IPv6 Address.
          type: string
          format: ipv6
          default: 0::0
          x-field-uid: 4
        srv6_sid:
          $ref: '#/components/schemas/Bgp.Attributes.Sid.Srv6'
          x-field-uid: 5
        srv6_endpoint_behavior:
          $ref: '#/components/schemas/Bgp.Attributes.SegmentRoutingPolicy.SRv6SIDEndpointBehaviorAndStructure'
          x-field-uid: 6
    Bgp.Attributes.SegmentRoutingPolicy.TypeFlags:
      description: |-
        Flags for each Segment in SEGMENT_LIST sub-tlv.
        - V-flag. Indicates verification is enabled. See section 5, of https://datatracker.ietf.org/doc/html/rfc9256
        - A-flag. Indicates presence of SR Algorithm field applicable to Segment Types C, D , I , J and K .
        - B-Flag. Indicates presence of SRv6 Endpoint Behavior and SID Structure encoding applicable to Segment Types B , I , J and K .
        - S-Flag: This flag, when set, indicates the presence of the SR-MPLS or SRv6 SID depending on the segment type. (draft-ietf-idr-bgp-sr-segtypes-ext-03 Section 2.10).
                  This flag is applicable for Segment Types C, D, E, F, G, H, I, J, and K.
      type: object
      properties:
        v_flag:
          description: "Indicates verification of segment data in is enabled.    \
            \        "
          type: boolean
          default: false
          x-field-uid: 1
        a_flag:
          description: "Indicates presence of SR Algorithm field applicable to Segment\
            \ Types 3, 4, and 9.           "
          type: boolean
          default: false
          x-field-uid: 2
        s_flag:
          description: |-
            This flag, when set, indicates the presence of the SR-MPLS or SRv6 SID depending on the segment type.
          type: boolean
          default: false
          x-field-uid: 3
        b_flag:
          description: "Indicates presence of SRv6 Endpoint Behavior and SID Structure\
            \ encoding specified in Section 2.4.4.2.4\nof draft-ietf-idr-sr-policy-safi-02.\
            \         "
          type: boolean
          default: false
          x-field-uid: 4
    Bgp.Attributes.SegmentRoutingPolicy.SRv6SIDEndpointBehaviorAndStructure:
      description: |-
        Configuration for optional SRv6 Endpoint Behavior and SID Structure. Summation of lengths for Locator Block, Locator Node,  Function, and Argument MUST be less than or equal to 128. - This is specified in draft-ietf-idr-sr-policy-safi-02 Section 2.4.4.2.4
      type: object
      properties:
        endpoint_behaviour:
          description: "This is a 2-octet field that is used to specify the SRv6 Endpoint\
            \ Behavior code point for the SRv6 SID as defined \nin section 9.2 of\
            \ [RFC8986]. When set with the value 0xFFFF (i.e., Opaque), the choice\
            \ of SRv6 Endpoint Behavior is \nleft to the headend. Well known 16-bit\
            \ values for this field are available at \nhttps://www.iana.org/assignments/segment-routing/segment-routing.xhtml\
            \ ."
          type: string
          format: hex
          default: ffff
          maxLength: 4
          x-field-uid: 1
        lb_length:
          description: |-
            SRv6 SID Locator Block length in bits.
          type: integer
          format: uint32
          maximum: 128
          default: 0
          x-field-uid: 2
        ln_length:
          description: |-
            SRv6 SID Locator Node length in bits.
          type: integer
          format: uint32
          maximum: 128
          default: 0
          x-field-uid: 3
        func_length:
          description: |-
            SRv6 SID Function length in bits.
          type: integer
          format: uint32
          maximum: 128
          default: 0
          x-field-uid: 4
        arg_length:
          description: |-
            SRv6 SID Arguments length in bits.
          type: integer
          format: uint32
          maximum: 128
          default: 0
          x-field-uid: 5
    Bgp.NLRIPrefixSegmentRoutingDistinguisher:
      description: |-
        Optional field in the NLRI carrying the distinguisher for Segment Routing Policy NLRI with SAFI 73.
      type: object
      properties:
        value:
          description: "The value of the optional Segment Routing distinguisher of\
            \ the prefix. "
          type: integer
          format: uint32
          default: 1
          x-field-uid: 1
    Bgp.V6Peer:
      description: |-
        Configuration for BGPv6 peer settings and routes.
      type: object
      required:
      - peer_address
      - as_type
      - as_number
      - name
      properties:
        peer_address:
          description: |-
            IPv6 address of the BGP peer for the session
          type: string
          format: ipv6
          x-field-uid: 1
        segment_routing:
          $ref: '#/components/schemas/Bgp.V6SegmentRouting'
          x-field-uid: 2
        evpn_ethernet_segments:
          description: "This contains the list of Ethernet Virtual Private Network\
            \ (EVPN) Ethernet Segments (ES) Per BGP Peer for IPv6 Address Family Identifier\
            \ (AFI).\n\nEach Ethernet Segment contains a list of EVPN Instances (EVIs)\
            \ . \nEach EVI contains a list of Broadcast Domains. \nEach Broadcast\
            \ Domain contains a list of MAC/IP Ranges. \n\n<Ethernet Segment, EVI,\
            \ Broadcast Domain> is responsible for advertising Ethernet Auto-discovery\
            \ Route Per EVI (Type 1).\n\n<Ethernet Segment, EVI> is responsible for\
            \ advertising Ethernet Auto-discovery Route Per Ethernet Segment (Type\
            \ 1).\n\n<Ethernet Segment, EVI, Broadcast Domain, MAC/IP> is responsible\
            \ for advertising MAC/IP Advertisement Route (Type 2).\n\n<Ethernet Segment,\
            \ EVI, Broadcast Domain> is responsible for advertising Inclusive Multicast\
            \ Ethernet Tag Route (Type 3).\n\nEthernet Segment is responsible for\
            \ advertising Ethernet Segment Route (Type 4)."
          type: array
          items:
            $ref: '#/components/schemas/BgpV6.EthernetSegment'
          x-field-uid: 3
        as_type:
          x-field-uid: 4
          description: |-
            The type of BGP autonomous system. External BGP is used for BGP links between two or more autonomous systems (ebgp). Internal BGP is used within a single autonomous system (ibgp). BGP property defaults are aligned with this object defined as an internal BGP peer. If the as_type is specified as 'ebgp' then other properties will need to be specified as per an external BGP peer. Specifically, for 'ebgp',  'as_set_mode' attribute in 'as_path' field  in any Route Range should be changed from default value 'do_not_include_local_as' to any other value.
          type: string
          x-enum:
            ibgp:
              x-field-uid: 1
            ebgp:
              x-field-uid: 2
          enum:
          - ibgp
          - ebgp
        as_number:
          x-field-uid: 5
          description: |-
            Autonomous System Number (AS number or ASN)
          type: integer
          format: uint32
        as_number_width:
          x-field-uid: 6
          description: |-
            The width in bytes of the as_number values. Any as_number values that exceeds the width MUST result in an error.
          type: string
          default: four
          x-enum:
            two:
              x-field-uid: 1
            four:
              x-field-uid: 2
          enum:
          - two
          - four
        advanced:
          x-field-uid: 7
          $ref: '#/components/schemas/Bgp.Advanced'
        capability:
          x-field-uid: 8
          $ref: '#/components/schemas/Bgp.Capability'
        learned_information_filter:
          x-field-uid: 9
          $ref: '#/components/schemas/Bgp.LearnedInformationFilter'
        v4_routes:
          x-field-uid: 10
          description: |-
            Emulated BGPv4 route ranges.
          type: array
          items:
            $ref: '#/components/schemas/Bgp.V4RouteRange'
        v6_routes:
          x-field-uid: 11
          description: |-
            Emulated BGPv6 route ranges.
          type: array
          items:
            $ref: '#/components/schemas/Bgp.V6RouteRange'
        v4_srte_policies:
          x-field-uid: 12
          description: |-
            Segment Routing Traffic Engineering (SR TE) Policies for IPv4 Address Family Identifier (AFI).
          type: array
          items:
            $ref: '#/components/schemas/BgpSrte.V4Policy'
        v6_srte_policies:
          x-field-uid: 13
          description: |-
            Segment Routing Traffic Engineering (SR TE) Policies for IPv6 Address Family Identifier (AFI).
          type: array
          items:
            $ref: '#/components/schemas/BgpSrte.V6Policy'
        name:
          x-field-uid: 14
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
        graceful_restart:
          x-field-uid: 15
          $ref: '#/components/schemas/Bgp.GracefulRestart'
        replay_updates:
          description: "BGP Updates to be sent to the peer as specified after the\
            \ session is established. "
          $ref: '#/components/schemas/Bgp.UpdateReplay'
          x-field-uid: 16
    Bgp.V6Interface:
      description: |-
        Configuration for emulated BGPv6 peers and routes on a single IPv6 interface.
      type: object
      required:
      - ipv6_name
      properties:
        ipv6_name:
          description: |
            The unique name of IPv6 Loopback IPv6 interface or DHCPv4 client used as the source IP for this list of BGP peers.

            x-constraint:
            - /components/schemas/Device.Ipv6/properties/name
            - /components/schemas/Device.Ipv6Loopback/properties/name
            - /components/schemas/Device.Dhcpv6client/properties/name
          type: string
          x-constraint:
          - /components/schemas/Device.Ipv6/properties/name
          - /components/schemas/Device.Ipv6Loopback/properties/name
          - /components/schemas/Device.Dhcpv6client/properties/name
          x-field-uid: 1
        peers:
          description: |-
            This contains the list of BGPv6 peers configured on this interface.
          type: array
          items:
            $ref: '#/components/schemas/Bgp.V6Peer'
          x-field-uid: 2
    Bgp.V6SegmentRouting:
      description: |-
        Configuration for BGPv6 segment routing settings.
      type: object
      properties:
        ingress_supports_vpn:
          description: |-
            TBD
          type: boolean
          default: false
          x-field-uid: 1
        reduced_encapsulation:
          description: |-
            TBD
          type: boolean
          default: false
          x-field-uid: 2
        copy_time_to_live:
          description: |-
            TBD
          type: boolean
          default: false
          x-field-uid: 3
        time_to_live:
          description: |-
            TBD
          type: integer
          format: uint32
          default: 0
          x-field-uid: 4
        max_sids_per_srh:
          description: |-
            TBD
          type: integer
          format: uint32
          default: 0
          maximum: 255
          x-field-uid: 5
        auto_generate_segment_left_value:
          description: |-
            TBD
          type: boolean
          default: false
          x-field-uid: 6
        segment_left_value:
          description: |-
            TBD
          type: integer
          format: uint32
          default: 0
          x-field-uid: 7
        advertise_sr_te_policy:
          description: |-
            TBD
          type: boolean
          default: false
          x-field-uid: 8
    BgpV6.EthernetSegment:
      description: |-
        Configuration for BGP Ethernet Segment ranges. Advertises following routes -

        Type 4 - Ethernet Segment Route
      type: object
      properties:
        df_election:
          description: |-
            Designated Forwarder (DF) election configuration.
          $ref: '#/components/schemas/Bgp.EthernetSegment.DfElection'
          x-field-uid: 1
        evis:
          description: |-
            This contains the list of EVIs.
          type: array
          items:
            $ref: '#/components/schemas/BgpV6.EvpnEvis'
          x-field-uid: 2
        esi:
          x-field-uid: 3
          description: |-
            10-octet Ethernet Segment Identifier (ESI) Example - For multi-home scenario nonZero ESI is '10000000000000000000' .
          type: string
          format: hex
          default: '00000000000000000000'
        active_mode:
          x-field-uid: 4
          description: |-
            Single Active or All Active mode Redundancy mode selection for Multi-home.
          type: string
          default: all_active
          x-enum:
            single_active:
              x-field-uid: 1
            all_active:
              x-field-uid: 2
          enum:
          - single_active
          - all_active
        esi_label:
          x-field-uid: 5
          description: "The label value to be advertised as ESI Label in ESI Label\
            \ Extended Community. This is included in Ethernet Auto-discovery per\
            \ ES Routes advertised by a router. "
          type: integer
          format: uint32
          maximum: 16777215
          default: 0
        advanced:
          x-field-uid: 6
          $ref: '#/components/schemas/Bgp.RouteAdvanced'
        communities:
          x-field-uid: 7
          description: |-
            Optional community settings.
          type: array
          items:
            $ref: '#/components/schemas/Bgp.Community'
        ext_communities:
          x-field-uid: 8
          description: |-
            Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities  attributes are utilized to trigger routing decisions, such as acceptance, rejection,  preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger  range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for  administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two  byte local administrator id.  When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for  administrator_ipv4_address is a four byte IPv4 address followed by a two byte local administrator id.  When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes  contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from  IANA's "ETHER TYPES" registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format.  When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the  last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates  occur for the same MAC address.
          type: array
          items:
            $ref: '#/components/schemas/Bgp.ExtCommunity'
        as_path:
          x-field-uid: 9
          description: |-
            Optional AS PATH settings.
          $ref: '#/components/schemas/Bgp.AsPath'
    BgpV6.EvpnEvis:
      description: "This contains a list of different flavors of EVPN. \nFor example\
        \ EVPN over VXLAN or EVPN over MPLS etc to be configured per Ethernet segment.\
        \ \nNeed to instantiate correct type of EVPN instance as per requirement."
      type: object
      properties:
        choice:
          type: string
          default: evi_vxlan
          x-field-uid: 1
          x-enum:
            evi_vxlan:
              x-field-uid: 1
          enum:
          - evi_vxlan
        evi_vxlan:
          description: "EVPN VXLAN instance to be configured per Ethernet Segment.\
            \                    "
          $ref: '#/components/schemas/BgpV6.EviVxlan'
          x-field-uid: 2
    BgpV6.EviVxlan:
      description: |-
        Configuration for BGP EVPN EVI. Advertises following routes -

        Type 3 - Inclusive Multicast Ethernet Tag Route

        Type 1 -  Ethernet Auto-discovery Route (Per EVI)

        Type 1 -  Ethernet Auto-discovery Route (Per ES)
      type: object
      properties:
        broadcast_domains:
          description: |-
            This contains the list of Broadcast Domains to be configured per EVI.
          type: array
          items:
            $ref: '#/components/schemas/BgpV6.EviVxlan.BroadcastDomain'
          x-field-uid: 1
        replication_type:
          x-field-uid: 2
          description: |-
            This model only supports Ingress Replication
          type: string
          default: ingress_replication
          x-enum:
            ingress_replication:
              x-field-uid: 1
          enum:
          - ingress_replication
        pmsi_label:
          x-field-uid: 3
          description: |-
            Downstream assigned VNI to be carried as Part of P-Multicast Service Interface Tunnel attribute (PMSI Tunnel Attribute) in Type 3 Inclusive Multicast Ethernet Tag Route.
          type: integer
          format: uint32
          maximum: 16777215
          default: 16
        ad_label:
          x-field-uid: 4
          description: |-
            The Auto-discovery Route label (AD label) value, which gets advertised in the Ethernet Auto-discovery Route per <EVI, ESI>
          type: integer
          format: uint32
          maximum: 16777215
          default: 0
        route_distinguisher:
          x-field-uid: 5
          description: |-
            Colon separated Extended Community value of 6 Bytes - "AS number: Value" identifying an EVI.            Example - for the as_2octet "60005:100".
          $ref: '#/components/schemas/Bgp.RouteDistinguisher'
        route_target_export:
          x-field-uid: 6
          description: "List of Layer 2 Virtual Network Identifier (L2VNI) export\
            \ targets associated with this EVI. "
          type: array
          items:
            $ref: '#/components/schemas/Bgp.RouteTarget'
        route_target_import:
          x-field-uid: 7
          description: "List of L2VNI import targets associated with this EVI. "
          type: array
          items:
            $ref: '#/components/schemas/Bgp.RouteTarget'
        l3_route_target_export:
          x-field-uid: 8
          description: |-
            List of Layer 3 Virtual Network Identifier (L3VNI) Export Route Targets.
          type: array
          items:
            $ref: '#/components/schemas/Bgp.RouteTarget'
        l3_route_target_import:
          x-field-uid: 9
          description: |-
            List of L3VNI Import Route Targets.
          type: array
          items:
            $ref: '#/components/schemas/Bgp.RouteTarget'
        advanced:
          x-field-uid: 10
          $ref: '#/components/schemas/Bgp.RouteAdvanced'
        communities:
          x-field-uid: 11
          description: |-
            Optional community settings.
          type: array
          items:
            $ref: '#/components/schemas/Bgp.Community'
        ext_communities:
          x-field-uid: 12
          description: |-
            Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities  attributes are utilized to trigger routing decisions, such as acceptance, rejection,  preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger  range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for  administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two  byte local administrator id.  When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for  administrator_ipv4_address is a four byte IPv4 address followed by a two byte local administrator id.  When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes  contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from  IANA's "ETHER TYPES" registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format.  When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the  last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates  occur for the same MAC address.
          type: array
          items:
            $ref: '#/components/schemas/Bgp.ExtCommunity'
        as_path:
          x-field-uid: 13
          description: |-
            Optional AS PATH settings.
          $ref: '#/components/schemas/Bgp.AsPath'
    BgpV6.EviVxlan.BroadcastDomain:
      description: |-
        Configuration for Broadcast Domains per EVI.
      type: object
      properties:
        cmac_ip_range:
          description: "This contains the list of Customer MAC/IP Ranges to be configured\
            \ per Broadcast Domain. \n\nAdvertises following route - \nType 2 - MAC/IP\
            \ Advertisement Route."
          type: array
          items:
            $ref: '#/components/schemas/Bgp.CMacIpRange'
          x-field-uid: 1
        ethernet_tag_id:
          x-field-uid: 2
          description: |-
            The Ethernet Tag ID of the Broadcast Domain.
          type: integer
          format: uint32
          default: 0
        vlan_aware_service:
          x-field-uid: 3
          description: |-
            VLAN-Aware service to be enabled or disabled.
          type: boolean
          default: false
    Device.Vxlan:
      properties:
        v4_tunnels:
          description: |-
            IPv4 VXLAN Tunnels
          type: array
          items:
            $ref: '#/components/schemas/Vxlan.V4Tunnel'
          x-field-uid: 1
        v6_tunnels:
          description: |-
            IPv6 VXLAN Tunnels
          type: array
          items:
            $ref: '#/components/schemas/Vxlan.V6Tunnel'
          x-field-uid: 2
    Vxlan.V4Tunnel:
      description: |-
        Configuration and operational state parameters relating to IPv4 VXLAN tunnel end-point interface.
      type: object
      required:
      - source_interface
      - vni
      - name
      properties:
        source_interface:
          description: |
            Determines the source interface.

            x-constraint:
            - /components/schemas/Device.Ipv4/properties/name
            - /components/schemas/Device.Ipv4Loopback/properties/name
          type: string
          x-constraint:
          - /components/schemas/Device.Ipv4/properties/name
          - /components/schemas/Device.Ipv4Loopback/properties/name
          x-field-uid: 1
        destination_ip_mode:
          $ref: '#/components/schemas/Vxlan.V4Tunnel.DestinationIPMode'
          x-field-uid: 2
        vni:
          x-field-uid: 3
          description: |-
            VXLAN Network Identifier (VNI) to distinguish network instances on the wire
          type: integer
          format: uint32
          minimum: 1
          maximum: 16777215
        name:
          x-field-uid: 4
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
    Vxlan.V6Tunnel:
      description: |-
        Configuration and operational state parameters relating to IPv6 VXLAN tunnel end-point interface.
      type: object
      required:
      - source_interface
      - vni
      - name
      properties:
        source_interface:
          description: |
            Determines the source interface.

            x-constraint:
            - /components/schemas/Device.Ipv6/properties/name
            - /components/schemas/Device.Ipv6Loopback/properties/name
          type: string
          x-constraint:
          - /components/schemas/Device.Ipv6/properties/name
          - /components/schemas/Device.Ipv6Loopback/properties/name
          x-field-uid: 1
        destination_ip_mode:
          $ref: '#/components/schemas/Vxlan.V6Tunnel.DestinationIPMode'
          x-field-uid: 2
        vni:
          x-field-uid: 3
          description: |-
            VXLAN Network Identifier (VNI) to distinguish network instances on the wire
          type: integer
          format: uint32
          minimum: 1
          maximum: 16777215
        name:
          x-field-uid: 4
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
    Vxlan.V4Tunnel.DestinationIPMode:
      description: |-
        Communication mode between the VTEPs, either unicast or multicast.
      type: object
      properties:
        choice:
          description: |-
            unicast or multicast
          type: string
          default: multicast
          x-field-uid: 1
          x-enum:
            unicast:
              x-field-uid: 1
            multicast:
              x-field-uid: 2
          enum:
          - unicast
          - multicast
        unicast:
          $ref: '#/components/schemas/Vxlan.V4Tunnel.DestinationIPMode.Unicast'
          x-field-uid: 2
        multicast:
          $ref: '#/components/schemas/Vxlan.V4Tunnel.DestinationIPMode.Multicast'
          x-field-uid: 3
    Vxlan.V6Tunnel.DestinationIPMode:
      description: |-
        Communication mode between the VTEPs, either unicast or multicast.
      type: object
      properties:
        choice:
          description: |-
            unicast or multicast
          type: string
          default: multicast
          x-field-uid: 1
          x-enum:
            unicast:
              x-field-uid: 1
            multicast:
              x-field-uid: 2
          enum:
          - unicast
          - multicast
        unicast:
          $ref: '#/components/schemas/Vxlan.V6Tunnel.DestinationIPMode.Unicast'
          x-field-uid: 2
        multicast:
          $ref: '#/components/schemas/Vxlan.V6Tunnel.DestinationIPMode.Multicast'
          x-field-uid: 3
    Vxlan.V4Tunnel.DestinationIPMode.Unicast:
      properties:
        vteps:
          description: |-
            List of VTEPs for member VNI(VXLAN Network Identifier)
          type: array
          items:
            $ref: '#/components/schemas/Vxlan.V4Tunnel.DestinationIPMode.Unicast.Vtep'
          x-field-uid: 1
    Vxlan.V6Tunnel.DestinationIPMode.Unicast:
      properties:
        vteps:
          description: |-
            List of VTEPs for member VNI(VXLAN Network Identifier)
          type: array
          items:
            $ref: '#/components/schemas/Vxlan.V6Tunnel.DestinationIPMode.Unicast.Vtep'
          x-field-uid: 1
    Vxlan.Tunnel.DestinationIPMode.Unicast.ArpSuppressionCache:
      description: |-
        Each VTEP maintains an ARP suppression cache table for known IP hosts and their associated MAC addresses in the VNI segment.  When an end host in the VNI sends an ARP request for another end-host IP address,  its local VTEP intercepts the ARP request and checks for the ARP-resolved IP address in its ARP suppression cache table.  If it finds a match, the local VTEP sends an ARP response on behalf of the remote end host.
      type: object
      properties:
        remote_vm_mac:
          description: |-
            Remote VM MAC address bound to Remote VM IPv4 address
          type: string
          format: mac
          x-field-uid: 1
        remote_vm_ipv4:
          description: |-
            Remote VM IPv4 address
          type: string
          format: ipv4
          x-field-uid: 2
    Vxlan.V4Tunnel.DestinationIPMode.Unicast.Vtep:
      description: |-
        VTEP (VXLAN Tunnel End Point (VTEP)) parameters
      type: object
      properties:
        remote_vtep_address:
          description: |-
            Remote VXLAN Tunnel End Point address
          type: string
          format: ipv4
          x-field-uid: 1
        arp_suppression_cache:
          x-field-uid: 2
          description: |-
            Each VTEP maintains an ARP suppression cache table for known IP hosts and their associated MAC addresses in the VNI segment.  When an end host in the VNI sends an ARP request for another end-host IP address,  its local VTEP intercepts the ARP request and checks for the ARP-resolved IP address in its ARP suppression cache table.  If it finds a match, the local VTEP sends an ARP response on behalf of the remote end host.
          type: array
          items:
            $ref: '#/components/schemas/Vxlan.Tunnel.DestinationIPMode.Unicast.ArpSuppressionCache'
    Vxlan.V6Tunnel.DestinationIPMode.Unicast.Vtep:
      description: |-
        VTEP (VXLAN Tunnel End Point (VTEP)) parameters
      type: object
      properties:
        remote_vtep_address:
          description: |-
            Remote VXLAN Tunnel End Point address
          type: string
          format: ipv6
          x-field-uid: 1
        arp_suppression_cache:
          x-field-uid: 2
          description: |-
            Each VTEP maintains an ARP suppression cache table for known IP hosts and their associated MAC addresses in the VNI segment.  When an end host in the VNI sends an ARP request for another end-host IP address,  its local VTEP intercepts the ARP request and checks for the ARP-resolved IP address in its ARP suppression cache table.  If it finds a match, the local VTEP sends an ARP response on behalf of the remote end host.
          type: array
          items:
            $ref: '#/components/schemas/Vxlan.Tunnel.DestinationIPMode.Unicast.ArpSuppressionCache'
    Vxlan.V4Tunnel.DestinationIPMode.Multicast:
      description: |-
        Multicast Group address for member VNI(VXLAN Network Identifier)
      type: object
      properties:
        address:
          description: |-
            IPv4 Multicast address
          type: string
          format: ipv4
          x-field-uid: 1
    Vxlan.V6Tunnel.DestinationIPMode.Multicast:
      description: |-
        Multicast Group address for member VNI(VXLAN Network Identifier)
      type: object
      properties:
        address:
          description: |-
            IPv6 Multicast address
          type: string
          format: ipv6
          x-field-uid: 1
    Device.Rsvp:
      description: |-
        Configuration for one or more RSVP interfaces, ingress and egress LSPs. In this model, currently IPv4 RSVP and point-to-point LSPs are supported as per RFC3209 and related specifications.
      type: object
      properties:
        ipv4_interfaces:
          description: |-
            List of IPv4 RSVP connected interfaces. At least one interface should be present for device connected to the DUT. For unconnected devices, this array must be empty.
          type: array
          items:
            $ref: '#/components/schemas/Rsvp.Ipv4Interface'
          x-field-uid: 1
        lsp_ipv4_interfaces:
          description: |-
            List of IPv4 Loopback or IPv4 connected interfaces acting as RSVP ingress and egress endpoints.
          type: array
          items:
            $ref: '#/components/schemas/Rsvp.LspIpv4Interface'
          x-field-uid: 2
        name:
          x-field-uid: 3
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
    Rsvp.Ipv4Interface:
      description: |-
        Configuration for RSVP Interface.
      type: object
      required:
      - ipv4_name
      - neighbor_ip
      properties:
        ipv4_name:
          description: "The globally unique name of the IPv4 interface connected to\
            \ the DUT. This name must match the \"name\" field of the \"ipv4_addresses\"\
            \ on top which this RSVP interface is configured.          \n\nx-constraint:\n\
            - /components/schemas/Device.Ipv4/properties/name\n"
          type: string
          x-constraint:
          - /components/schemas/Device.Ipv4/properties/name
          x-field-uid: 1
        neighbor_ip:
          description: |-
            IPv4 address of the RSVP neighbor on this interface.
          type: string
          format: ipv4
          x-field-uid: 2
        label_space_start:
          description: "The user-defined label space start value. The LSPs for which\
            \ this router acts as a egress are assigned labels from this label pool.The\"\
            label_space_start\" and \"label_space_end\" together defines this label-pool. "
          type: integer
          format: uint32
          default: 1000
          maximum: 1048575
          x-field-uid: 3
        label_space_end:
          description: |-
            The user-defined label space end value.The last label value that can be assigned to the LSPs for which this router acts as egress.
          type: integer
          format: uint32
          default: 100000
          maximum: 1048575
          x-field-uid: 4
        enable_refresh_reduction:
          description: |-
            Enables sending of Refresh Reduction as described in RFC2961.
          type: boolean
          default: false
          x-field-uid: 5
        summary_refresh_interval:
          description: |-
            The number of seconds between transmissions of successive Summary Refreshes. There is no specification specified maximum value. For clarity, setting the maximum to 1 hour.
          type: integer
          format: uint32
          default: 30
          maximum: 3600
          x-field-uid: 6
        send_bundle:
          description: |-
            Enables aggregration of different RSVP messages within a single PDU.
          type: boolean
          default: false
          x-field-uid: 7
        bundle_threshold:
          description: |-
            The number of milliseconds to wait after which RSVP will bundle different RSVP messages and transmit Bundle messages.
          type: integer
          format: uint32
          default: 50
          maximum: 1000
          x-field-uid: 8
        enable_hello:
          description: "Enables sending of Hello Messages as per RFC3209.        \
            \    "
          type: boolean
          default: false
          x-field-uid: 9
        hello_interval:
          description: |-
            If enable_hello is set to 'true', this specifies the minimum hello interval in seconds at which successive Hello Messages  are sent as per RFC3209. There is no specification specified maximum value. For clarity, setting the maximum to 1 hour.
          type: integer
          format: uint32
          default: 9
          maximum: 3600
          x-field-uid: 10
        timeout_multiplier:
          description: |-
            The number of missed hellos after which the node should consider RSVP Neighbor to have timed out. There is no specification specified maximum value. Setting the maximum allowed value to 10.
          type: integer
          format: uint32
          default: 3
          maximum: 10
          x-field-uid: 11
    Rsvp.LspIpv4Interface:
      description: |-
        Configuration for RSVP LSP IPv4 Interface.
      type: object
      required:
      - ipv4_name
      properties:
        ipv4_name:
          description: |
            The globally unique name of the IPv4 or Loopback IPv4 interface acting as the RSVP ingress and egress endpoint for  the LSPs configured on this interface. This must match the "name" field of either "ipv4_addresses" or "ipv4_loopbacks"  on which this LSP interface is configured.

            x-constraint:
            - /components/schemas/Device.Ipv4/properties/name
            - /components/schemas/Device.Ipv4Loopback/properties/name
          type: string
          x-constraint:
          - /components/schemas/Device.Ipv4/properties/name
          - /components/schemas/Device.Ipv4Loopback/properties/name
          x-field-uid: 1
        p2p_egress_ipv4_lsps:
          description: "Contains properties of Tail(Egress) LSPs. "
          $ref: '#/components/schemas/Rsvp.LspIpv4Interface.P2PEgressIpv4Lsp'
          x-field-uid: 2
        p2p_ingress_ipv4_lsps:
          description: |-
            Array of point-to-point RSVP-TE P2P LSPs originating from this interface.
          type: array
          items:
            $ref: '#/components/schemas/Rsvp.LspIpv4Interface.P2PIngressIpv4Lsp'
          x-field-uid: 3
    Rsvp.LspIpv4Interface.P2PEgressIpv4Lsp:
      description: |-
        Configuration for RSVP Egress Point-to-Point(P2P) IPv4 LSPs.
      type: object
      required:
      - name
      properties:
        name:
          x-field-uid: 1
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
        refresh_interval:
          description: "The time in seconds between successive transmissions of RESV\
            \ Refreshes. The actual refresh interval is jittered by upto 50%. There\
            \ is no specification specified maximum value. For clarity, setting the\
            \ maximum to 1 hour. "
          type: integer
          format: uint32
          default: 30
          maximum: 3600
          x-field-uid: 2
        timeout_multiplier:
          description: |-
            The number of missed PATH refreshes after which a recieving node should consider the LSP state to have timed out. There is no specification specified maximum value. Setting the maximum allowed value to 10.
          type: integer
          format: uint32
          default: 3
          maximum: 10
          x-field-uid: 3
        reservation_style:
          description: |-
            It determines how RSVP-TE enabled network devices set up reservations along the path between an end-to-end  QOS-enabled connection. If 'auto' is enabled, the style is chosen based on whether the incoming Path has 'SE Desired' flag set. Otherwise, the style is chosen based on the value selected for this attribute.
          type: string
          x-enum:
            shared_explicit:
              x-field-uid: 1
            fixed_filter:
              x-field-uid: 2
            auto:
              x-field-uid: 3
          default: shared_explicit
          x-field-uid: 4
          enum:
          - shared_explicit
          - fixed_filter
          - auto
        enable_fixed_label:
          description: "If enabled, a specific fixed label will be advertised by the\
            \ egress or tail end for all Path messages received by this egress.  This\
            \ can be leveraged to advertise Explicit or Implicit null labels.    \
            \        "
          type: boolean
          default: false
          x-field-uid: 5
        fixed_label_value:
          description: |-
            The fixed label value as advertised by egress in RESV message. Applicable only if 'fixed_label' is set to 'true'. Special values are '0 - IPv4 Explicit NULL', '2 - IPv6 Explicit NULL' and '3 - Implicit NULL'.   Outside of this, labels are expected to have a minimum value of 16.
          type: integer
          format: uint32
          default: 0
          maximum: 1048575
          x-field-uid: 6
    Rsvp.LspIpv4Interface.P2PIngressIpv4Lsp:
      description: |-
        Configuration for an RSVP Ingress point-to-point LSP.
      type: object
      required:
      - remote_address
      - name
      properties:
        name:
          x-field-uid: 1
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
        remote_address:
          description: |-
            IPv4 address of the remote endpoint of the LSP.
          type: string
          format: ipv4
          x-field-uid: 2
        tunnel_id:
          description: |-
            The Tunnel ID of the RSVP LSP. Carried in the SESSION object in Path Messages.
          type: integer
          format: uint32
          default: 1
          minimum: 1
          maximum: 65535
          x-field-uid: 3
        lsp_id:
          description: |-
            The LSP ID of the RSVP LSP. Carried in the SENDER_TEMPLATE object in Path Messages.
          type: integer
          format: uint32
          default: 1
          minimum: 1
          maximum: 65535
          x-field-uid: 4
        refresh_interval:
          description: "The time in seconds between successive transmissions of PATH\
            \ Refreshes.  The actual refresh interval is jittered by upto 50%. There\
            \ is no specification specified maximum value. For clarity, setting the\
            \ maximum to 1 hour. "
          type: integer
          format: uint32
          default: 30
          minimum: 1
          maximum: 3600
          x-field-uid: 5
        timeout_multiplier:
          description: |-
            The number of missed RESV refreshes after which a recieving node should consider the LSP state to have timed out. There is no specification specified maximum value. Setting the maximum allowed value to 10.
          type: integer
          format: uint32
          default: 3
          minimum: 1
          maximum: 10
          x-field-uid: 6
        backup_lsp_id:
          description: |-
            The LSP id that will be used when creating a Make-Before-Break LSP when the active LSP is using lsp_id. If the active LSP on which Make-Before-Break is being done is using the backup_lsp_id, the new LSP created will toggle to  use the lsp_id instead.
          type: integer
          format: uint32
          default: 2
          minimum: 1
          maximum: 65535
          x-field-uid: 7
        lsp_switchover_delay:
          description: |-
            The amount of delay in milliseconds that an implementation should wait for before switching traffic to the new LSP created after  a Make-Before-Break is done on an LSP. The default value is 0 which means to switch immediately. An implementation should support a minimum delay value of at least 50ms . There is no specification specified maximum value. Setting maximum allowed value to 1 minute.  If a delay value is supplied which is lesser than the minimum delay value supported, a warning should be provided indicating that the minimum value of LSP switchover delay is automatically increased to the supported minimum value. This warning should be included in the list of warnings in the 'Response.Warning' attribute sent in the SetConfig 'Success' Response.
          type: integer
          format: uint32
          default: 0
          minimum: 0
          maximum: 60000
          x-field-uid: 8
        session_attribute:
          description: "This contains the values of the fields to be included in the\
            \ SESSION_ATTRIBUTE object in the Path Message sent for the LSP.     \
            \       "
          $ref: '#/components/schemas/Rsvp.SessionAttribute'
          x-field-uid: 9
        tspec:
          description: "This contains the values of the fields to be included in the\
            \ TSPEC object in the Path Message sent for the LSP.            "
          $ref: '#/components/schemas/Rsvp.Tspec'
          x-field-uid: 10
        fast_reroute:
          description: "This contains the values of the fields to be included in the\
            \ FAST_REROUTE object in the Path Message sent for the LSP. \nThis is\
            \ an optional object . If this attribute is not included , the FAST_REROUTE\
            \ object will not be included.           "
          $ref: '#/components/schemas/Rsvp.FastReroute'
          x-field-uid: 11
        ero:
          description: "This contains the values of the fields to be included in the\
            \ ERO object in the Path Message sent for the LSP. \nThis is an optional\
            \ object . If this attribute is not included , the ERO object will not\
            \ be included.           "
          $ref: '#/components/schemas/Rsvp.Ero'
          x-field-uid: 12
    Rsvp.SessionAttribute:
      description: |-
        Configuration for RSVP-TE SESSION_ATTRIBUTE object included in Path Messages as defined in RFC3209. The bandwidth_protection_desired and node_protection_desired flags are defined in RFC4090 (Fast Reroute).
      type: object
      properties:
        auto_generate_session_name:
          description: |-
            If this is enabled, an auto-generated Session Name is included in the SESSION_ATTRIBUTE object in the Path Message for this LSP.
          type: boolean
          default: true
          x-field-uid: 1
        session_name:
          description: "If auto_generate_session_name is set to 'false', then the\
            \ value of this field is used to fill the Session Name field of the SESSION_ATTRIBUTE\
            \ object in the Path Message for this LSP. It is suggested to include\
            \ the Local IP, Remote IP, Tunnel ID and LSP ID in the auto-generated\
            \ Session Name to ensure uniqueness of the name in the test. The maximum\
            \ length of session name is 254 bytes.           "
          type: string
          minLength: 0
          maxLength: 254
          x-field-uid: 2
        setup_priority:
          description: |-
            Specifies the value of the Setup Priority field. This controls whether the LSP should pre-empt existing  LSP setup with certain Holding Priority if resource limitation is encountered when setting up the LSP. (e.g. bandwidth availability). The value 0 is the highest priority while 7 is the lowest.
          type: integer
          format: uint32
          default: 7
          maximum: 7
          x-field-uid: 3
        holding_priority:
          description: |-
            Specifies the value of the Holding Priority field. This controls whether a new LSP being created with certain Setup Priority should pre-empt this LSP if resource limitation is encountered when setting up the LSP. (e.g. bandwidth availability). The value 0 is the highest priority while 7 is the lowest.
          type: integer
          format: uint32
          default: 7
          maximum: 7
          x-field-uid: 4
        local_protection_desired:
          description: |-
            This flag permits transit routers to use a local repair mechanism which may result in violation of the explicit route object.  When a fault is detected on an adjacent downstream link or node, a transit router can reroute traffic for fast service restoration.
          type: boolean
          default: false
          x-field-uid: 5
        label_recording_desired:
          description: |-
            This flag indicates that label information should be included when doing a route record.
          type: boolean
          default: false
          x-field-uid: 6
        se_style_desired:
          description: |-
            This flag indicates that the tunnel ingress node may choose to reroute this tunnel without tearing it down. A tunnel egress node SHOULD use the Shared Explicit(SE) Style when responding with a Resv message.
          type: boolean
          default: false
          x-field-uid: 7
        bandwidth_protection_desired:
          description: |-
            This flag in the SESSION_ATTRIBUTE object in the Path Message indicates to the PLRs along the protected LSP path that a  backup path with a bandwidth guarantee is desired.   This bandwidth has to be guaranteed for the protected LSP, if no FAST_REROUTE object is included in the PATH message. If a FAST_REROUTE object is present in the Path message, then the bandwidth specified therein is to be guaranteed.
          type: boolean
          default: false
          x-field-uid: 8
        node_protection_desired:
          description: |-
            This flag in the SESSION_ATTRIBUTE object in the Path Message indicates to the PLRs along a protected LSP path that it is desired to have a backup path that bypasses at least the next node of the protected LSP.
          type: boolean
          default: false
          x-field-uid: 9
        resource_affinities:
          description: "This is an optional object. If included the extended SESSION_ATTRIBUTE\
            \ object is sent in the Path message containing \nthe additional fields\
            \ included in this object. This contains a set of three bitmaps using\
            \ which further constraints can be\nset on the path calculated for the\
            \ LSP based on the Admin Group settings in the IGP (e.g ISIS or OSPF interface).\
            \        "
          $ref: '#/components/schemas/Rsvp.ResourceAffinities'
          x-field-uid: 10
    Rsvp.ResourceAffinities:
      description: "This is an optional object. If included, the extended SESSION_ATTRIBUTE\
        \ object is sent in the Path message containing \nthe additional fields included\
        \ in this object. This contains a set of three bitmaps using which further\
        \ constraints can be\nset on the path calculated for the LSP based on the\
        \ Admin Group settings in the IGP (e.g ISIS or OSPF interface)."
      type: object
      properties:
        exclude_any:
          description: "A 32-bit vector representing a set of attribute filters associated\
            \ with a tunnel any of which renders a link unacceptable.  A null set\
            \ (all bits set to zero) doesn't render the link unacceptable.  The most\
            \ significant byte in the hex-string is the farthest  to the left in the\
            \ byte sequence.  Leading zero bytes in the configured value may be omitted\
            \ for brevity.          "
          type: string
          format: hex
          default: '0'
          minLength: 0
          maxLength: 8
          x-field-uid: 1
        include_any:
          description: "A 32-bit vector representing a set of attribute filters associated\
            \ with a tunnel any of which renders a link acceptable. A null set (all\
            \ bits set to zero) automatically passes. The most significant byte in\
            \ the hex-string is the farthest  to the left in the byte sequence.  Leading\
            \ zero bytes in the configured value may be omitted for brevity.     \
            \    "
          type: string
          format: hex
          default: '0'
          minLength: 0
          maxLength: 8
          x-field-uid: 2
        include_all:
          description: "A 32-bit vector representing a set of attribute filters associated\
            \ with a tunnel all of which must be present for a link to be acceptable.\
            \ A null set (all bits set to zero) automatically passes. The most significant\
            \ byte in the hex-string is the farthest  to the left in the byte sequence.\
            \  Leading zero bytes in the configured value may be omitted for brevity.\
            \         "
          type: string
          format: hex
          default: '0'
          minLength: 0
          maxLength: 8
          x-field-uid: 3
    Rsvp.Tspec:
      description: |-
        Configuration for RSVP-TE TSPEC object included in Path Messages. The usage of these parameters is defined in RFC2215.
      type: object
      properties:
        token_bucket_rate:
          description: |-
            The rate of the traffic to be carried in this LSP in bytes per second. This is part of the Token Bucket specification defined for a traffic flow defined in RFC2215.
          type: number
          format: float
          default: 0
          x-field-uid: 1
        token_bucket_size:
          description: |-
            The depth of the token bucket in bytes used to specify the Token Bucket characteristics of the traffic to be carried in the LSP. This is part of the Token Bucket specification defined for a traffic flow defined in RFC2215.
          type: number
          format: float
          default: 0
          x-field-uid: 2
        peak_data_rate:
          description: |-
            The peak data rate of the traffic in bytes per second used to specify the Token Bucket characteristics of the traffic  to be carried in the LSP. This is part of the Token Bucket specification defined for a traffic flow defined in RFC2215.
          type: number
          format: float
          default: 0
          x-field-uid: 3
        minimum_policed_unit:
          description: "Specifies the minium length of packet frames that will be\
            \ policed. "
          type: integer
          format: uint32
          default: 0
          maximum: 65535
          x-field-uid: 4
        maximum_policed_unit:
          description: "Specifies the maximum length of packet frames that will be\
            \ policed. "
          type: integer
          format: uint32
          default: 0
          maximum: 65535
          x-field-uid: 5
    Rsvp.FastReroute:
      description: "Configuration for the optional RSVP-TE FAST_REROUTE object included\
        \ in Path Messages as defined in RFC4090. "
      type: object
      properties:
        setup_priority:
          description: |-
            Specifies the value of the Setup Priority field. This controls whether the backup LSP should pre-empt existing LSP that is setup with certain Holding Priority. While setting up a backup LSP, preemption of existing LSP can happen  if resource limitation is encountered (e.g bandwidth availability).
          type: integer
          format: uint32
          default: 7
          maximum: 7
          x-field-uid: 1
        holding_priority:
          description: "Specifies the value of the Holding Priority field. This controls\
            \ whether a new LSP being created with certain Setup Priority should pre-empt\
            \ this LSP set up with this Holding Priority. While setting up a new LSP,\
            \ preemption of existing LSP can happen  if resource limitation is encountered\
            \ (e.g bandwidth availability).            "
          type: integer
          format: uint32
          default: 7
          maximum: 7
          x-field-uid: 2
        hop_limit:
          description: |-
            Specifies the value of the Hop Limit field. This controls the maximum number of hops the LSP should traverse to reach the  LSP end-point.
          type: integer
          format: uint32
          default: 3
          maximum: 255
          x-field-uid: 3
        bandwidth:
          description: "Specifies the value of the Bandwidth field as a 32-bit IEEE\
            \ floating point integer, in bytes per second, as desired for the LSP. "
          type: number
          format: float
          default: 0
          x-field-uid: 4
        exclude_any:
          description: "A 32-bit vector representing a set of attribute filters associated\
            \ with a tunnel any of which renders a link unacceptable. A null set (all\
            \ bits set to zero) doesn't render the link unacceptable. The most significant\
            \ byte in the hex-string is the farthest  to the left in the byte sequence.\
            \  Leading zero bytes in the configured value may be omitted for brevity.\
            \           "
          type: string
          format: hex
          default: '0'
          minLength: 0
          maxLength: 8
          x-field-uid: 5
        include_any:
          description: "A 32-bit vector representing a set of attribute filters associated\
            \ with a tunnel any of which renders a link acceptable. A null set (all\
            \ bits set to zero) automatically passes. The most significant byte in\
            \ the hex-string is the farthest  to the left in the byte sequence.  Leading\
            \ zero bytes in the configured value may be omitted for brevity.     "
          type: string
          format: hex
          default: '0'
          minLength: 0
          maxLength: 8
          x-field-uid: 6
        include_all:
          description: "A 32-bit vector representing a set of attribute filters associated\
            \ with a tunnel all of which must be present for a link to be acceptable.\
            \ A null set (all bits set to zero) automatically passes. The most significant\
            \ byte in the hex-string is the farthest  to the left in the byte sequence.\
            \  Leading zero bytes in the configured value may be omitted for brevity.\
            \          "
          type: string
          format: hex
          default: '0'
          minLength: 0
          maxLength: 8
          x-field-uid: 7
        one_to_one_backup_desired:
          description: "Requests protection via the one-to-one backup method.    \
            \       "
          type: boolean
          default: false
          x-field-uid: 8
        facility_backup_desired:
          description: "Requests protection via the facility backup method.      \
            \     "
          type: boolean
          default: false
          x-field-uid: 9
    Rsvp.Ero:
      description: "Configuration for the optional RSVP-TE explicit route object(ERO)\
        \ object included in Path Messages. "
      type: object
      properties:
        prepend_neighbor_ip:
          description: |-
            Determines whether the IP address of the RSVP neighbor should be added as an ERO sub-object. If it is to be included, it can be included as a Loose hop or as a Strict hop.
          type: string
          x-enum:
            dont_prepend:
              x-field-uid: 1
            prepend_loose:
              x-field-uid: 2
            prepend_strict:
              x-field-uid: 3
          default: prepend_loose
          x-field-uid: 1
          enum:
          - dont_prepend
          - prepend_loose
          - prepend_strict
        prefix_length:
          description: "If prepend_egress_ip is set to one of 'prepend_loose' or 'prepend_strict',\
            \ then set this value as the prefix length of the ERO sub-object containing\
            \ egress IP address.                        "
          type: integer
          format: uint32
          default: 32
          maximum: 32
          x-field-uid: 2
        subobjects:
          description: |-
            Array of sub-objects to be included in the ERO. These sub-objects contain the intermediate hops to be traversed by the LSP while being forwarded towards the egress endpoint. These sub-objects are included after the optional sub-object containing IP address of egress endpoint of the LSP (when present).
          type: array
          items:
            $ref: '#/components/schemas/Rsvp.Ero.Subobject'
          x-field-uid: 3
    Rsvp.Ero.Subobject:
      description: |-
        Configuration for the ERO sub-object.
      type: object
      properties:
        type:
          description: |-
            The type of the ERO sub-object, one of IPv4 Address or AS Number.
          type: string
          x-enum:
            ipv4:
              x-field-uid: 1
            as_number:
              x-field-uid: 2
          default: ipv4
          x-field-uid: 1
          enum:
          - ipv4
          - as_number
        ipv4_address:
          description: |-
            IPv4 address that this LSP should traverse through. This field is applicable only if the value of 'type' is set to 'ipv4'.
          type: string
          format: ipv4
          default: 0.0.0.0
          x-field-uid: 2
        prefix_length:
          description: |-
            Prefix length for the IPv4 address in the ERO sub-object. This field is applicable only if the value of 'type' is set to 'ipv4'.
          type: integer
          format: uint32
          default: 32
          maximum: 32
          x-field-uid: 3
        as_number:
          description: |-
            Autonomous System number to be set in the ERO sub-object that this LSP should traverse through. This field is applicable only if the value of 'type' is set to 'as_number'. Note that as per RFC3209, 4-byte AS encoding is not supported.
          type: integer
          format: uint32
          default: 0
          maximum: 65535
          x-field-uid: 4
        hop_type:
          description: |-
            The hop type of the ERO sub-object, one of Strict or Loose.
          type: string
          x-enum:
            strict:
              x-field-uid: 1
            loose:
              x-field-uid: 2
          default: loose
          x-field-uid: 5
          enum:
          - strict
          - loose
    Device.DhcpServer:
      description: |-
        Configuration for one or more IPv4 or IPv6 DHCP servers.
      type: object
      properties:
        ipv4_interfaces:
          description: "This contains an array of references to IPv4 interfaces, each\
            \ of which will contain one DHCPv4 server.  "
          type: array
          items:
            $ref: '#/components/schemas/DhcpServer.V4'
          x-field-uid: 2
        ipv6_interfaces:
          description: |-
            This contains an array of references to IPv6 interfaces, each of which will contain one DHCPv6 server.
          type: array
          items:
            $ref: '#/components/schemas/DhcpServer.V6'
          x-field-uid: 3
    DhcpServer.V4:
      description: |-
        Configuration for emulated DHCPv4 Server.
      type: object
      required:
      - name
      - ipv4_name
      - address_pools
      properties:
        name:
          x-field-uid: 1
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
        ipv4_name:
          description: |
            The unique name of the IPv4 on which DHCPv4 server will run.

            x-constraint:
            - /components/schemas/Device.Ipv4/properties/name
          type: string
          x-constraint:
          - /components/schemas/Device.Ipv4/properties/name
          x-field-uid: 2
        address_pools:
          description: |-
            List of DHCPv4 Server Lease parameters
          type: array
          items:
            $ref: '#/components/schemas/DhcpServerV4.Pool'
          x-field-uid: 3
    DhcpServerV4.Pool:
      description: |-
        Configuration for DHCPv4 address pool for a lease.
      type: object
      required:
      - start_address
      properties:
        name:
          x-field-uid: 1
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
        lease_time:
          description: |-
            The duration of time in seconds that is assigned to a lease.
          type: integer
          format: uint32
          minimum: 10
          default: 86400
          x-field-uid: 2
        start_address:
          description: |-
            The IPv4 address of the first lease pool.
          type: string
          format: ipv4
          x-field-uid: 3
        prefix_length:
          description: "The IPv4 network prefix length to be applied to the address. "
          type: integer
          format: uint32
          default: 24
          maximum: 32
          x-field-uid: 4
        count:
          description: |-
            The total number of addresses in the pool.
          type: integer
          format: uint32
          default: 1
          minimum: 1
          maximum: 1000000
          x-field-uid: 5
        step:
          description: |-
            The increment value for the lease address within the lease pool. The value is incremented according to the prefix_length and step.
          type: integer
          format: uint32
          default: 1
          minimum: 1
          x-field-uid: 6
        options:
          description: |-
            Optional configuration for DHCPv4 address pool for the lease.
          $ref: '#/components/schemas/DhcpServerV4.PoolOption'
          x-field-uid: 7
    DhcpServerV4.PoolOption:
      description: |-
        Optional configuration for DHCPv4 address pool for the lease.
      type: object
      properties:
        router_address:
          description: |-
            The Router address advertised by the DHCPv4 server in Offer and Ack messages.
          type: string
          format: ipv4
          default: 0.0.0.0
          x-field-uid: 1
        primary_dns_server:
          description: |-
            The primary DNS server address that is offered to DHCP clients that request this information through a TLV option.
          type: string
          format: ipv4
          default: 0.0.0.0
          x-field-uid: 2
        secondary_dns_server:
          description: |-
            The primary DNS server address that is offered to DHCP clients that request this information through a TLV option.
          type: string
          format: ipv4
          default: 0.0.0.0
          x-field-uid: 3
        echo_relay_with_tlv_82:
          description: |-
            If selected, the DHCP server includes in its replies the TLV information for the DHCPv4 Relay Agent Option 82 and the corresponding sub-TLVs that it receives from a DHCP relay agent, otherwise it replies without including this TLV.
          type: boolean
          default: true
          x-field-uid: 4
    DhcpServer.V6:
      description: |-
        Configuration for emulated DHCPv6 Server.
      type: object
      required:
      - name
      - ipv6_name
      - leases
      properties:
        name:
          x-field-uid: 1
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
        ipv6_name:
          description: |
            The unique name of the IPv6 on which DHCPv6 server will run.

            x-constraint:
            - /components/schemas/Device.Ipv6/properties/name
          type: string
          x-constraint:
          - /components/schemas/Device.Ipv6/properties/name
          x-field-uid: 2
        rapid_commit:
          description: |-
            If Rapid Commit is set, server responds to client initiated Rapid Commit two-message exchanges.
          type: boolean
          default: false
          x-field-uid: 3
        reconfigure_via_relay_agent:
          description: |-
            If the server does not have an address to which it can send the Reconfigure message directly to the client, the  server uses a Relay-reply message to send the Reconfigure message to a relay agent that will relay the message to the client.
          type: boolean
          default: false
          x-field-uid: 4
        leases:
          description: "Array of DHCP pools configured on a server.            "
          type: array
          items:
            $ref: '#/components/schemas/DhcpV6Server.Lease'
          x-field-uid: 5
        options:
          description: |-
            Optional DHCPv4 Server options that are sent in Dhcp server messages.
          $ref: '#/components/schemas/Dhcpv6Server.Options'
          x-field-uid: 6
    Dhcpv6Server.Options:
      description: |-
        DHCP server options, these configured options are sent in Dhcp server messages.
      type: object
      properties:
        dns:
          description: "Additional DHCP server primary dns and other configuration\
            \ options.            "
          $ref: '#/components/schemas/DhcpV6Server.Dns'
          x-field-uid: 1
        vendor_info:
          description: |-
            This option is used by servers to exchange vendor-specific information with clients.
          $ref: '#/components/schemas/Dhcpv6ServerOptions.VendorInfo'
          x-field-uid: 2
        bootfile_url:
          description: |-
            The server sends this option to inform the client about a URL to a boot file which client will use for
            network boots.
          $ref: '#/components/schemas/Dhcpv6ServerOptions.BootfileUrl'
          x-field-uid: 3
    DhcpV6Server.Lease:
      description: "One DHCP pool configuration on a server.        "
      type: object
      required:
      - ia_type
      properties:
        lease_time:
          description: |-
            The Life Time length in seconds that is assigned to a lease if the requesting DHCP client does not specify a specific expiration time.
          type: integer
          format: uint32
          minimum: 300
          maximum: 30000000
          default: 86400
          x-field-uid: 1
        ia_type:
          $ref: '#/components/schemas/Dhcpv6Server.IaType'
          x-field-uid: 5
    Dhcpv6Server.IaType:
      type: object
      properties:
        choice:
          description: |-
            Identity Association: a collection of leases assigned to a client. Each IA has an associated IAID.  Each IA holds one type of lease, like an identity association for temporary addresses (IA_TA) holds  temporary addresses, and an identity association for prefix delegation (IA_PD).
          type: string
          default: iana
          x-field-uid: 1
          x-enum:
            iana:
              x-field-uid: 1
            iata:
              x-field-uid: 2
            iapd:
              x-field-uid: 3
            ianapd:
              x-field-uid: 4
          enum:
          - iana
          - iata
          - iapd
          - ianapd
        iana:
          $ref: '#/components/schemas/Dhcpv6Server.PoolInfo'
          x-field-uid: 2
        iata:
          $ref: '#/components/schemas/Dhcpv6Server.PoolInfo'
          x-field-uid: 3
        iapd:
          $ref: '#/components/schemas/Dhcpv6Server.IapdPoolInfo'
          x-field-uid: 4
        ianapd:
          $ref: '#/components/schemas/Dhcpv6Server.IanapdPoolInfo'
          x-field-uid: 5
    Dhcpv6Server.PoolInfo:
      description: |-
        The container for pool configurations for IA types iana and iata.
      type: object
      properties:
        start_address:
          description: |-
            The first IP address of the lease pool.
          type: string
          format: ipv6
          x-field-uid: 1
        prefix_len:
          description: |-
            The prefix_len ( in conjunction with the step) can be used to increment the IPv6 lease addresses  to be assigned to the requested clients when multiple addresses are configured by using the size field  in the pool. The address is incremented using the prefix_len and step.
          type: integer
          format: uint32
          default: 64
          maximum: 128
          x-field-uid: 2
        size:
          description: |-
            The total number of addresses in the pool.
          type: integer
          format: uint32
          default: 1
          minimum: 1
          maximum: 1000000
          x-field-uid: 3
        step:
          description: |-
            The increment value for the lease address within the lease pool where multiple addresses are present.  The value of the advertised IPv6 prefixes are incremented according to the prefix_len and step.
          type: integer
          format: uint32
          default: 1
          minimum: 1
          x-field-uid: 4
    Dhcpv6Server.IapdPoolInfo:
      description: |-
        The container for prefix pool configurations for IA type iapd.
      type: object
      properties:
        start_prefix_address:
          description: |-
            The first IP address of the prefix pool.
          type: string
          format: ipv6
          x-field-uid: 1
        configured_prefix_len:
          description: |-
            The configured_prefix_len ( in conjunction with the prefix_step) can be used to increment the IPv6 lease addresses  to be assigned to the requested clients when multiple addresses are configured by using the size field in the pool.  e.g. This can be used to assign multiple IPv6 host addresses within the same IPv6 subnet ( defined by advertised_prefix_len )  to multiple requesting clients.
          type: integer
          format: uint32
          default: 128
          maximum: 128
          x-field-uid: 2
        prefix_size:
          description: |-
            The total number of addresses in the pool.
          type: integer
          format: uint32
          default: 10
          minimum: 1
          maximum: 1000000
          x-field-uid: 3
        prefix_step:
          description: |-
            The increment value for the lease address within the lease pool where multiple addresses are present.  The value of the advertised IPv6 prefixes are incremented according to the configured_prefix_len and prefix_step.
          type: integer
          format: uint32
          default: 1
          minimum: 1
          x-field-uid: 4
        advertised_prefix_len:
          description: "The prefix length of the IPv6 prefix that the Dhcpv6 server\
            \ offers to the Dhcpv6 client. "
          type: integer
          format: uint32
          default: 64
          maximum: 128
          x-field-uid: 5
    Dhcpv6Server.IanapdPoolInfo:
      description: |-
        The container for pool configurations for IA type ianapd.
      type: object
      properties:
        iana:
          description: |-
            The pool configurations for IA types iana in ianapd.
          $ref: '#/components/schemas/Dhcpv6Server.PoolInfo'
          x-field-uid: 1
        iapd:
          description: |-
            The pool configurations for IA types iapd in ianapd.
          $ref: '#/components/schemas/Dhcpv6Server.IapdPoolInfo'
          x-field-uid: 2
    DhcpV6Server.Dns:
      description: |-
        Optional Dns configuration for DHCPv6 server.
      type: object
      required:
      - primary
      properties:
        primary:
          description: |-
            The primary DNS server address that is offered to DHCP clients that request this information through a TLV option.
          type: string
          format: ipv6
          x-field-uid: 1
        secondary_dns:
          description: "DHCP server secondary dns configuration options. If included\
            \ secondary DNS server address will be offered to \nDHCP clients that\
            \ request this information through a TLV option."
          type: array
          items:
            $ref: '#/components/schemas/DhcpV6Server.SecondaryDns'
          x-field-uid: 2
    DhcpV6Server.SecondaryDns:
      description: |-
        Advanced Dns configuration for DHCPv6 server.
      type: object
      properties:
        ip:
          description: |-
            The secondary DNS server address that is offered to DHCP clients that request this information through a TLV option.
          type: string
          format: ipv6
          x-field-uid: 1
    Device.Ospfv2Router:
      description: |-
        Under Review: OSPFv2 is currently under review for pending exploration on use cases.

        A container of properties for an OSPFv2 router and its interfaces & Route Ranges.
      x-status:
        status: under_review
        information: OSPFv2 is currently under review for pending exploration on use
          cases.
      type: object
      required:
      - interfaces
      - name
      properties:
        name:
          x-field-uid: 1
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
        router_id:
          description: |-
            OSPFv2 Router Id.
          $ref: '#/components/schemas/Ospfv2.RouterId'
          x-field-uid: 2
        lsa_retransmit_time:
          description: |-
            The time in seconds for LSA retransmission.
          type: integer
          format: uint32
          default: 5
          minimum: 1
          x-field-uid: 3
        lsa_refresh_time:
          description: |-
            The time in seconds required for LSA refresh.
          type: integer
          format: uint32
          default: 1800
          minimum: 5
          x-field-uid: 4
        inter_burst_lsu_interval:
          description: "The gap in miliseconds between each Flood Link State Update\
            \ Burst "
          type: integer
          format: uint32
          default: 33
          x-field-uid: 5
        max_flood_lsu_per_burst:
          description: "The maximum number of Flood LSUpdates for each burst "
          type: integer
          format: uint32
          default: 1
          minimum: 1
          x-field-uid: 6
        graceful_restart:
          $ref: '#/components/schemas/Ospfv2.GracefulRestart'
          x-field-uid: 7
        store_lsa:
          description: |-
            Configuration for controlling storage of OSPFv2 learned LSAs received from the neighbors.
          type: boolean
          default: false
          x-field-uid: 8
        capabilities:
          description: |-
            A router indicates the optional capabilities that it supports in its OSPF Hello packets, Database Description packets and in its LSAs.
          $ref: '#/components/schemas/Ospfv2.Options'
          x-field-uid: 9
        interfaces:
          description: |-
            List of OSPFv2 interfaces for this router.
          type: array
          items:
            $ref: '#/components/schemas/Ospfv2.Interface'
          x-field-uid: 10
        v4_routes:
          description: |-
            Emulated OSPFv4 IPv4 routes.
          type: array
          items:
            $ref: '#/components/schemas/Ospfv2.V4RouteRange'
          x-field-uid: 11
    Ospfv2.RouterId:
      description: |-
        Container for OSPFv2 Router ID configuration.
      type: object
      properties:
        choice:
          description: |-
            IP address of Router ID for this emulated OSPFv2 router.
            - interface_ip: When IPv4 interface address to be assigned as Router ID.
            - custom: When, Router ID needs to be configured different from Interface IPv4 address.
          type: string
          default: interface_ip
          x-field-uid: 1
          x-enum:
            interface_ip:
              x-field-uid: 1
            custom:
              x-field-uid: 2
          enum:
          - interface_ip
          - custom
        custom:
          description: |-
            Router ID in IPv4 address format.
          type: string
          format: ipv4
          x-field-uid: 3
    Ospfv2.Options:
      description: "The OSPFv2 Options field is present Database Description packets\
        \ and all LSAs.  \nThis enables OSPF routers to support (or not support) optional\
        \ capabilities, \nand to communicate their capability level to other OSPF\
        \ routers.\nWhen capabilities are exchanged in Database Description packets\
        \ a\nrouter can choose not to forward certain LSAs to a neighbor because\n\
        of its reduced functionality.\nReference: A.2 The Options field: https://www.rfc-editor.org/rfc/rfc2328#page-46."
      type: object
      properties:
        t_bit:
          description: |-
            Type of Service: 0th-bit: describes OSPFv2's TOS capability.
          type: boolean
          default: false
          x-field-uid: 1
        e_bit:
          description: |-
            External Capability: 1st-bit: describes the way AS-external-LSAs are flooded.
          type: boolean
          default: false
          x-field-uid: 2
        mc_bit:
          description: |-
            Multicast Capability: 2nd-bit: describes whether IP multicast datagrams are forwarded according to  the specifications in [Ref18], rfc2328.
          type: boolean
          default: false
          x-field-uid: 3
        np_bit:
          description: |-
            NSSA Capability: 3rd-bit: describes the handling of Type-7 LSAs, as specified in [Ref19], rfc2328.
          type: boolean
          default: false
          x-field-uid: 4
        ea_bit:
          description: |-
            External Attribute: 4th-bit: describes the router's willingness to receive and forward External-Attributes-LSAs,  as specified in [Ref20], rfc2328.
          type: boolean
          default: false
          x-field-uid: 5
        dc_bit:
          description: |-
            Demand Circuit: 5th-bit: describes the router's handling of demand circuits, as specified in [Ref21], rfc2328.
          type: boolean
          default: false
          x-field-uid: 6
        o_bit:
          description: |-
            Opaque LSA's Forwarded: 6th-bit: describes the router's willingness to receive and forward Opaque-LSAs, rfc2370.
          type: boolean
          default: false
          x-field-uid: 7
        unused_bit:
          description: |-
            Opaque LSA's Forwarded: 7th-bit: unused bit.
          type: boolean
          default: false
          x-field-uid: 8
        lsa_b_bit:
          description: |-
            Set to indicate that the router acts as an Area Border Router.
          type: boolean
          default: false
          x-field-uid: 9
        lsa_e_bit:
          description: |-
            Set to indicate that the router acts as an AS Boundary Router.
          type: boolean
          default: false
          x-field-uid: 10
    Ospfv2.GracefulRestart:
      description: |-
        Container of properties of OSPFv2 Graceful Retstart.
      type: object
      properties:
        helper_mode:
          description: |-
            Support of Graceful Restart in Helper Mode.
          type: boolean
          default: false
          x-field-uid: 1
    Ospfv2.Interface:
      description: |-
        Configuration for single OSPFv2 interface.
      type: object
      required:
      - name
      - ipv4_name
      properties:
        name:
          x-field-uid: 1
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
        ipv4_name:
          description: "The globally unique name of the IPv4 interface connected to\
            \ the DUT.            \n\nx-constraint:\n- /components/schemas/Device.Ipv4/properties/name\n"
          type: string
          x-constraint:
          - /components/schemas/Device.Ipv4/properties/name
          x-field-uid: 2
        area:
          description: "The Area ID of the area to which the attached network belongs.\n\
            All routing protocol packets originating from the interface are\nlabelled\
            \ with this Area ID.           "
          $ref: '#/components/schemas/Ospfv2Interface.Area'
          x-field-uid: 3
        network_type:
          description: |-
            The OSPF network link type.
          $ref: '#/components/schemas/Ospfv2Interface.NetworkType'
          x-field-uid: 4
        traffic_engineering:
          description: |-
            Contains a list of Traffic Engineering attributes.
          type: array
          items:
            $ref: '#/components/schemas/LinkState.TE'
          x-field-uid: 5
        authentication:
          description: |-
            OSPFv2 authentication properties.
            If the authentication is not configured, none OSPF packet exchange is authenticated.
          $ref: '#/components/schemas/Ospfv2Interface.Authentication'
          x-field-uid: 6
        advanced:
          description: |-
            Optional container for advanced interface properties.
          $ref: '#/components/schemas/Ospfv2Interface.Advanced'
          x-field-uid: 7
        link_protection:
          description: |-
            Link protection on the OSPFv2 link between two interfaces.
          $ref: '#/components/schemas/Ospfv2Interface.LinkProtection'
          x-field-uid: 8
        srlg_values:
          description: |-
            A Shared Risk Link Group (SRLG) is represented by a 32-bit number unique within an IGP (OSPFv2 and IS-IS) domain.
            An SRLG is a set of links sharing a common resource, which affects all links in the set if the common resource fails.
            Links share the same risk of failure and are therefore considered to belong to the same SRLG.
          type: array
          items:
            type: integer
            format: uint32
            maximum: 16777215
            default: 0
          x-field-uid: 9
    Ospfv2Interface.Area:
      description: "Container for OSPF Area ID identifies the routing area to which\
        \ the host belongs..      "
      type: object
      properties:
        choice:
          description: |-
            The OSPF Area ID identifies the routing area to which the host belongs. Area ID type can be following format.
            - id: A 32-bit number identifying the area.
            - ip:     The Area ID in IPv4 address format.
          type: string
          default: id
          x-field-uid: 1
          x-enum:
            id:
              x-field-uid: 1
            ip:
              x-field-uid: 2
          enum:
          - id
          - ip
        id:
          description: |-
            The Area ID.
          type: integer
          format: uint32
          default: 0
          x-field-uid: 2
        ip:
          description: |-
            The Area ID in IPv4 address format.
          type: string
          format: ipv4
          x-field-uid: 3
    Ospfv2Interface.NetworkType:
      description: "The OSPF network link type options.\n  - Point to Point: \n  -\
        \ Broadcast: \n  - Point to Multipoint: In this case, at least a neigbor to\
        \ be configured. "
      type: object
      properties:
        choice:
          type: string
          default: broadcast
          x-field-uid: 1
          x-enum:
            broadcast:
              x-field-uid: 1
            point_to_point:
              x-field-uid: 2
            point_to_multipoint:
              x-field-uid: 3
          enum:
          - broadcast
          - point_to_point
          - point_to_multipoint
        point_to_multipoint:
          description: |-
            List of Neigbhors.
          type: array
          items:
            $ref: '#/components/schemas/Ospfv2Interface.Neighbor'
          x-field-uid: 2
    Ospfv2Interface.Neighbor:
      description: |-
        Configuration of a neighbor.
      type: object
      properties:
        neighbor_ip:
          type: string
          format: ipv4
          x-field-uid: 1
    Ospfv2Interface.Advanced:
      description: |-
        Contains OSPFv2 advanced properties.
      type: object
      properties:
        hello_interval:
          description: |-
            The time interval, in seconds, between the Hello packets that
            the router sends on the interface. Advertised in Hello packets
            sent out this interface.
          type: integer
          format: uint32
          default: 10
          x-field-uid: 1
        dead_interval:
          description: |-
            The time interval in seconds before the router's neighbors will declare
            it down, when they stop hearing the router's Hello Packets.
            Advertised in Hello packets sent out this interface.
          type: integer
          format: uint32
          default: 40
          x-field-uid: 2
        routing_metric:
          description: |-
            Routing metric associated with the interface..
          type: integer
          format: uint32
          default: 0
          x-field-uid: 3
        priority:
          description: "The Priority for (Backup) Designated Router election.    \
            \      \t\nThis value is used in Hello packets for the Designated Router\
            \ (DR) election process.\nThe default is 0, which indicates that the router\
            \ will not participate in the DR election process."
          type: integer
          format: uint32
          default: 0
          x-field-uid: 4
        validate_received_mtu:
          description: "If this is set to true, then the MTU received from the neighbor\
            \ during Database (DB) Exchange \nwill be validated, otherwise it will\
            \ be ignored.\n"
          type: boolean
          default: true
          x-field-uid: 5
    Ospfv2Interface.Options:
      description: |-
        The OSPF Options field is present in OSPF Hello packets, Database Description packets and all LSAs.
        The Options field enables OSPF routers to support (or not support) optional capabilities, and to
        communicate their capability level to other OSPF routers https://datatracker.ietf.org/doc/html/rfc2328#page-46.
        When used in Hello packets, the Options field allows a router to reject a neighbor because of a capability mismatch.
      type: object
      properties:
        t_bit:
          description: |-
            Type of Service: 0th-bit: describes OSPFv2's TOS capability.
          type: boolean
          default: false
          x-field-uid: 1
        e_bit:
          description: |-
            External Capability: This bit describes the way AS-external-LSAs are flooded.
          type: boolean
          default: false
          x-field-uid: 2
        mc_bit:
          description: |-
            Multicast Capability: This bit describes whether IP multicast datagrams are forwarded according to  the specifications in [Ref18], rfc2328.
          type: boolean
          default: false
          x-field-uid: 3
        np_bit:
          description: |-
            NSSA Capability: This bit describes the handling of Type-7 LSAs, as specified in [Ref19], rfc2328.
          type: boolean
          default: false
          x-field-uid: 4
        ea_bit:
          description: |-
            External Attribute: This bit describes the router's willingness to receive and forward External-Attributes-LSAs,  as specified in [Ref20], rfc2328.
          type: boolean
          default: false
          x-field-uid: 5
        dc_bit:
          description: |-
            Demand Circuit: This bit describes the router's handling of demand circuits, as specified in [Ref21], rfc2328.
          type: boolean
          default: false
          x-field-uid: 6
        o_bit:
          description: |-
            Opaque LSA's Forwarded: This bit describes the router's willingness to receive and forward Opaque-LSAs, rfc2370.
          type: boolean
          default: false
          x-field-uid: 7
        unused_bit:
          description: |-
            Opaque LSA's Forwarded: 7th-bit: unused bit.
          type: boolean
          default: false
          x-field-uid: 8
    Ospfv2Interface.Authentication:
      description: |-
        This contains OSPFv2 authentication properties.
        Reference: https://www.rfc-editor.org/rfc/rfc2328#appendix-D
      type: object
      properties:
        choice:
          description: "The authentication method.\n- md5 - Cryptographic authentication.\n\
            - clear_text - Simple password authentication. A 64-bit field is configured\
            \ on a per-network basis. \n  All packets sent on a particular network\
            \ must have this configured value (in clear text) \n  in their OSPF header\
            \ 64-bit authentication field."
          type: string
          default: clear_text
          x-field-uid: 1
          x-enum:
            md5s:
              x-field-uid: 1
            clear_text:
              x-field-uid: 2
          enum:
          - md5s
          - clear_text
        md5s:
          description: |-
            List of MD5 Key IDs and MD5 Keys.
          type: array
          items:
            $ref: '#/components/schemas/Ospfv2Authentication.Md5'
          x-field-uid: 2
        clear_text:
          description: |-
            The 8 Byte authentication field in the OSPF packet.
          type: string
          minLength: 1
          maxLength: 8
          default: otg
          x-field-uid: 4
    Ospfv2Authentication.Md5:
      description: "Container of Cryptographic authentication. \nIf the authentication\
        \ type is of 'md5' then 'md5_key_id' and 'md5_key' \nboth are to be configured.\
        \ A shared secret key is configured in all routers attached to a common network/subnet.\n\
        For each OSPF protocol packet, the key is used to generate/verify a \"message\
        \ digest\" that is appended to the end\nof the OSPF packet."
      type: object
      properties:
        key_id:
          description: |-
            The unique MD5 Key Identifier per-interface.
          type: integer
          format: uint32
          minimum: 1
          maximum: 255
          x-field-uid: 1
        key:
          description: "An alphanumeric secret used to generate the 16 byte MD5 hash\
            \ value added \nto the OSPFv2 PDU in the Authentication TLV."
          type: string
          minLength: 1
          maxLength: 16
          x-field-uid: 2
    Ospfv2Interface.LinkProtection:
      description: |-
        Optional container for the link protection sub TLV (type 20).
      type: object
      properties:
        extra_traffic:
          description: |-
            Enable this to protect other link or links. LSAs on a link of this type are lost
            if any of the links fail.
          type: boolean
          default: false
          x-field-uid: 1
        unprotected:
          description: "Enabling this signifies that there is no other link protecting\
            \ this \nlink. LSAs on a link of this type are lost if the link fails."
          type: boolean
          default: false
          x-field-uid: 2
        shared:
          description: "Enable this to share the Extra Traffic links between one or\
            \ more \nlinks of type Shared.There are one or more disjoint links of\
            \ type \nExtra Traffic that are protecting this link."
          type: boolean
          default: false
          x-field-uid: 3
        dedicated_1_to_1:
          description: "Enabling this signifies that there is one dedicated disjoint\
            \ link \nof type Extra Traffic that is protecting this link."
          type: boolean
          default: false
          x-field-uid: 4
        dedicated_1_plus_1:
          description: "Enabling this signifies that a dedicated disjoint link is\
            \ protecting \nthis link. However, the protecting link is not advertised\
            \ in the \nlink state database and is therefore not available for the\
            \ routing \nof LSAs."
          type: boolean
          default: false
          x-field-uid: 5
        enhanced:
          description: "Enabling this signifies that a protection scheme that is more\
            \ \nreliable than Dedicated 1+1."
          type: boolean
          default: false
          x-field-uid: 6
        reserved_40:
          description: "This is a Protection Scheme with value 0x40. "
          type: boolean
          default: false
          x-field-uid: 7
        reserved_80:
          description: "This is a Protection Scheme with value 0x80. "
          type: boolean
          default: false
          x-field-uid: 8
    Ospfv2.V4RouteRange:
      description: |-
        Emulated OSPFv2 IPv4 routes.
      type: object
      properties:
        name:
          x-field-uid: 1
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
        addresses:
          description: |-
            A list of group of IPv4 route addresses.
          type: array
          items:
            $ref: '#/components/schemas/V4RouteAddress'
          x-field-uid: 2
        metric:
          description: |-
            The user-defined metric associated with this route range.
          type: integer
          format: uint32
          default: 0
          minimum: 0
          maximum: 16777215
          x-field-uid: 3
        route_origin:
          description: |-
            The type of the OSPFv2 routes.
          $ref: '#/components/schemas/Ospfv2V4RR.RouteOrigin'
          x-field-uid: 4
      required:
      - name
    Ospfv2V4RR.RouteOrigin:
      description: "Container of type of the OSPFv2 types correspond directly to the\
        \ OSPFv2 LSAs types as\ndefined in the \"OSPFv2 Link State (LS) Type - http://www.iana.org/assignments/ospfv2-parameters.\
        \  "
      type: object
      properties:
        choice:
          description: |-
            Supported types are: - intra_area: for Intra-Area. - inter_area: for Inter Area. - external_type_1: for Autonomous System (AS) External with internal AS metric. - external_type_2: for Autonomous System (AS) External with internal and external AS metric. - nssa_external: for 7 Not-So-Stubby Area (NSSA) External.
          type: string
          default: inter_area
          x-field-uid: 1
          x-enum:
            intra_area:
              x-field-uid: 1
            inter_area:
              x-field-uid: 2
            external_type_1:
              x-field-uid: 3
            external_type_2:
              x-field-uid: 4
            nssa_external:
              x-field-uid: 5
          enum:
          - intra_area
          - inter_area
          - external_type_1
          - external_type_2
          - nssa_external
        intra_area:
          description: |-
            Configuration for the Intra-Area.
          $ref: '#/components/schemas/Ospfv2V4RR.IntraArea'
          x-field-uid: 2
        inter_area:
          description: |-
            Configuration for the Intra-Area.
          $ref: '#/components/schemas/Ospfv2V4RR.InterArea'
          x-field-uid: 3
        external_type_1:
          description: |-
            Configuration for the External Type 1.
          $ref: '#/components/schemas/Ospfv2V4RR.ExternalType1'
          x-field-uid: 4
        external_type_2:
          description: |-
            Configuration for the External Type 2.
          $ref: '#/components/schemas/Ospfv2V4RR.ExternalType2'
          x-field-uid: 5
        nssa_external:
          description: |-
            Configuration for the External Type 2.
          $ref: '#/components/schemas/Ospfv2V4RR.NssaExternal'
          x-field-uid: 6
    Ospfv2V4RR.IntraArea:
      description: |-
        Container for Intra-Area.
      type: object
      properties:
        flags:
          description: |-
            One-octet field contains flags applicable to the prefix.
          $ref: '#/components/schemas/Ospfv2V4RR.ExtdPrefixFlags'
          x-field-uid: 1
    Ospfv2V4RR.InterArea:
      description: |-
        Container for Intra-Area.
      type: object
      properties:
        flags:
          description: |-
            One-octet field contains flags applicable to the prefix.
          $ref: '#/components/schemas/Ospfv2V4RR.ExtdPrefixFlags'
          x-field-uid: 1
    Ospfv2V4RR.ExternalType1:
      description: |-
        Container for Intra-Area.
      type: object
      properties:
        flags:
          description: |-
            One-octet field contains flags applicable to the prefix.
          $ref: '#/components/schemas/Ospfv2V4RR.ExtdPrefixFlags'
          x-field-uid: 1
    Ospfv2V4RR.ExternalType2:
      description: |-
        Container for Intra-Area.
      type: object
      properties:
        flags:
          description: |-
            One-octet field contains flags applicable to the prefix.
          $ref: '#/components/schemas/Ospfv2V4RR.ExtdPrefixFlags'
          x-field-uid: 1
    Ospfv2V4RR.NssaExternal:
      description: |-
        Container for Intra-Area.
      type: object
      properties:
        flags:
          description: |-
            One-octet field contains flags applicable to the prefix.
          $ref: '#/components/schemas/Ospfv2V4RR.ExtdPrefixFlags'
          x-field-uid: 1
        propagation:
          description: |-
            The flag is set True if LSA will be propagated between Areas.
          type: boolean
          default: false
          x-field-uid: 2
    Ospfv2V4RR.ExtdPrefixFlags:
      description: |-
        One-octet field contains flags applicable to the prefix. https://datatracker.ietf.org/doc/html/rfc7684.
      type: object
      properties:
        a_flag:
          description: |-
            0x80 - (Attach Flag): An Area Border Router (ABR)
            generating an OSPFv2 Extended Prefix TLV for an inter-area
            prefix that is locally connected or attached in another
            connected area SHOULD set this flag.
          type: boolean
          default: false
          x-field-uid: 1
        n_flag:
          description: |-
            N-Flag (Node Flag): Set when the prefix identifies the
            advertising router, i.e., the prefix is a host prefix
            advertising a globally reachable address typically associated
            with a loopback address.
          type: boolean
          default: false
          x-field-uid: 2
    Device.Macsec:
      description: |-
        A container of properties for a MACsec capable device. Reference https://1.ieee802.org/security/802-1ae/.
      type: object
      required:
      - ethernet_interfaces
      properties:
        ethernet_interfaces:
          description: |-
            Ethernet Interfaces
          type: array
          items:
            $ref: '#/components/schemas/Device.Macsec.EthernetInterface'
          x-field-uid: 1
    Device.Macsec.EthernetInterface:
      description: |-
        Configuration for single MACsec interface.
      type: object
      required:
      - eth_name
      - secure_entity
      properties:
        eth_name:
          description: |
            The unique name of the Ethernet interface on which MACsec is enabled.

            x-constraint:
            - /components/schemas/Device.Ethernet/properties/name
          type: string
          x-constraint:
          - /components/schemas/Device.Ethernet/properties/name
          x-field-uid: 1
        secure_entity:
          description: |-
            This contains the properties of Secure Entity (SecY).
          $ref: '#/components/schemas/SecureEntity'
          x-field-uid: 2
    SecureEntity:
      description: |-
        Configuration of a Secure Entity (SecY).
      type: object
      required:
      - name
      - key_generation_protocol
      properties:
        name:
          x-field-uid: 1
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
        key_generation_protocol:
          description: |-
            This contains the properties of key generation protocol of Secure Entity (SecY).
          $ref: '#/components/schemas/SecureEntity.KeyGenerationProtocol'
          x-field-uid: 2
        data_plane:
          description: |-
            This contains the properties of data plane of Secure Entity (SecY).
          $ref: '#/components/schemas/SecureEntity.DataPlane'
          x-field-uid: 3
    SecureEntity.KeyGenerationProtocol:
      description: |-
        Container of Key generation protocol configuration.
      type: object
      properties:
        choice:
          description: |-
            Key generation protocol choices. Choose "mka" for dynamic key distribution using MACsec key agreement(MKA) protocol. Choose "static_key" for static configuration of secure association key(SAK).
          type: string
          default: mka
          x-field-uid: 1
          x-enum:
            mka:
              x-field-uid: 1
            static_key:
              x-field-uid: 2
          enum:
          - mka
          - static_key
        mka:
          description: |-
            This contains the properties of Key Agreement Entity (KaY) in MKA supplicant.
          x-field-uid: 2
          $ref: '#/components/schemas/Mka'
        static_key:
          description: |-
            Static key properties properties of SecY. Static key is used in absence MKA.
          $ref: '#/components/schemas/SecureEntity.StaticKey'
          x-field-uid: 3
    SecureEntity.DataPlane:
      description: |-
        A container of data plane properties.
      type: object
      properties:
        choice:
          description: |-
            Choose "encapsulation" so that data packets are sent with MACsec encapsulation. Choose "no_encapsulation" so that data packets are sent without MACsec encapsulation.
          type: string
          default: encapsulation
          x-field-uid: 1
          x-enum:
            encapsulation:
              x-field-uid: 1
            no_encapsulation:
              x-field-uid: 2
          enum:
          - encapsulation
          - no_encapsulation
        encapsulation:
          description: |-
            A container of encapsulation properties for a secure entity(SecY).
          $ref: '#/components/schemas/SecureEntity.DataPlane.Encapsulation'
          x-field-uid: 2
    SecureEntity.DataPlane.Encapsulation:
      description: |-
        A container of encapsulation properties for a secure entity(SecY).
      type: object
      required:
      - crypto_engine
      properties:
        tx:
          description: |-
            Tx properties of SecY.
          $ref: '#/components/schemas/SecureEntity.DataPlane.Tx'
          x-field-uid: 1
        rx:
          description: |-
            Rx properties of SecY.
          $ref: '#/components/schemas/SecureEntity.DataPlane.Rx'
          x-field-uid: 2
        crypto_engine:
          description: |-
            Crypto engine properties of SecY.
          $ref: '#/components/schemas/SecureEntity.CryptoEngine'
          x-field-uid: 3
    SecureEntity.DataPlane.Tx:
      description: |-
        A container of Tx properties of SecY.
      type: object
      properties:
        end_station:
          description: |-
            End station on not.
          type: boolean
          default: false
          x-field-uid: 1
        include_sci:
          description: |-
            Include SCI on not.
          type: boolean
          default: false
          x-field-uid: 2
    SecureEntity.DataPlane.Rx:
      description: |-
        A container for Rx settings of SecY.
      type: object
      properties:
        replay_protection:
          description: "Enable replay protection on not. "
          type: boolean
          default: false
          x-field-uid: 1
        replay_window:
          description: "Replay window size. "
          type: integer
          format: uint32
          minimum: 1
          default: 1
          x-field-uid: 2
    SecureEntity.CryptoEngine:
      description: |-
        A container of crypto engine properties of a SecY.
      type: object
      properties:
        choice:
          description: |-
            Engine type based on encryption and/ or decryption capability. Supported types: encrypt_only - engine can only encrypt transmitted packets but it cannot decrypt packets upon arrival. As the packets cannot be decrypted on arrival, such packets cannot be delivered to the receiving device. Hence only stateless traffic can be sent.
          type: string
          default: encrypt_only
          x-field-uid: 1
          x-enum:
            encrypt_only:
              x-field-uid: 1
          enum:
          - encrypt_only
        encrypt_only:
          $ref: '#/components/schemas/SecureEntity.CryptoEngine.EncryptOnly'
          x-field-uid: 2
    SecureEntity.CryptoEngine.EncryptOnly:
      description: |-
        The container for encrypt only engine configuration.
      type: object
      properties:
        secure_channels:
          type: array
          items:
            $ref: '#/components/schemas/SecureEntity.CryptoEngine.EncryptOnly.TxSc'
          x-field-uid: 1
        traffic_options:
          $ref: '#/components/schemas/SecureEntity.CryptoEngine.EncryptOnly.TrafficOptions'
          x-field-uid: 2
    SecureEntity.CryptoEngine.EncryptOnly.TxSc:
      description: |-
        The container for Tx secure channel configuration.
      type: object
      properties:
        tx_pn:
          $ref: '#/components/schemas/SecureEntity.CryptoEngine.EncryptOnly.TxSc.TxPn'
          x-field-uid: 1
    SecureEntity.CryptoEngine.EncryptOnly.TxSc.TxPn:
      description: |-
        Tx packet number(PN) configuration.
      type: object
      properties:
        choice:
          description: |-
            Types of Tx packet number(PN) series. Supported choices: 1) fixed PN - MACsec packets will be sent out with the configured fixed PN or lower half of configured fixed XPN. 2) incrementing PN - MACsec packets will be sent out by single device with an incrementing PN or XPN.
          type: string
          default: fixed_pn
          x-field-uid: 1
          x-enum:
            fixed_pn:
              x-field-uid: 1
            incrementing_pn:
              x-field-uid: 2
          enum:
          - fixed_pn
          - incrementing_pn
        fixed:
          $ref: '#/components/schemas/SecureEntity.CryptoEngine.EncryptOnly.FixedPn'
          x-field-uid: 2
        incrementing:
          $ref: '#/components/schemas/SecureEntity.CryptoEngine.EncryptOnly.IncrementingPn'
          x-field-uid: 3
    SecureEntity.CryptoEngine.EncryptOnly.FixedPn:
      description: |-
        Fixed packet number(PN) configuration.
      type: object
      properties:
        pn:
          description: |-
            Fixed Tx packet number(PN). 4 bytes PN with which all packets will be sent out.
          type: integer
          format: uint32
          minimum: 1
          maximum: 4294967295
          default: 6
          x-field-uid: 1
        xpn:
          description: |-
            Fixed Tx extended packet number(XPN). 8 bytes XPN with which all packets will be sent out.
          type: string
          format: hex
          minLength: 1
          maxLength: 16
          minimum: 1
          default: '0x0000000000000006'
          x-field-uid: 2
    SecureEntity.CryptoEngine.EncryptOnly.IncrementingPn:
      description: |-
        Incrementing packet number(PN) configuration.
      type: object
      properties:
        count:
          description: "Count of packet numbers in series. "
          type: integer
          format: uint32
          minimum: 2
          maximum: 1000000
          default: 100
          x-field-uid: 1
        starting_pn:
          description: |-
            The starting packet number(PN).
          type: integer
          format: uint32
          minimum: 1
          default: 10000
          x-field-uid: 2
        starting_xpn:
          description: |-
            The starting extended packet number(XPN).
          type: string
          format: hex
          minLength: 1
          maxLength: 16
          minimum: 1
          default: '0x0000000000010000'
          x-field-uid: 3
    SecureEntity.CryptoEngine.EncryptOnly.TrafficOptions:
      description: |-
        Encrypt only traffic options.
      type: object
      properties:
        send_gratuitous_arp:
          description: |-
            Send gratuitous ARP or not.
          type: boolean
          default: true
          x-field-uid: 1
    Mka:
      description: |-
        Configuration of a MKA Key Agreement Entity (KaY). Reference https://1.ieee802.org/security/802-1x/.
      type: object
      required:
      - name
      - basic
      - tx
      properties:
        name:
          x-field-uid: 1
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
        basic:
          description: |-
            This contains the basic properties of KaY.
          $ref: '#/components/schemas/Mka.Basic'
          x-field-uid: 2
        key_server:
          description: |-
            Key server attributes.
          $ref: '#/components/schemas/Mka.KeyServer'
          x-field-uid: 3
        tx:
          description: |-
            Tx Properties.
          $ref: '#/components/schemas/Mka.Tx'
          x-field-uid: 4
    Mka.Basic:
      description: |-
        A container of basic properties for a KaY.
      type: object
      required:
      - key_source
      properties:
        key_derivation_function:
          description: |-
            Key Derivation Function.
          type: string
          default: aes_cmac_128
          x-field-uid: 1
          x-enum:
            aes_cmac_128:
              x-field-uid: 1
            aes_cmac_256:
              x-field-uid: 2
          enum:
          - aes_cmac_128
          - aes_cmac_256
        key_source:
          description: |-
            Key source.
          x-field-uid: 2
          $ref: '#/components/schemas/Mka.Basic.KeySource'
        actor_priority:
          description: |-
            Actor priority.
          type: string
          format: hex
          minLength: 1
          maxLength: 2
          default: '70'
          x-field-uid: 3
        macsec_desired:
          description: |-
            Determines whether MACsec is desired or not. It is advertised in periodic Hellos.
          type: boolean
          default: true
          x-field-uid: 4
        macsec_capability:
          description: |-
            MACSec Capability.
          type: string
          default: macsec_integrity_with_confidentiality_offset
          x-field-uid: 5
          x-enum:
            macsec_not_implemented:
              x-field-uid: 1
            macsec_integrity_without_confidentiality:
              x-field-uid: 2
            macsec_integrity_with_no_confidentiality_offset:
              x-field-uid: 3
            macsec_integrity_with_confidentiality_offset:
              x-field-uid: 4
          enum:
          - macsec_not_implemented
          - macsec_integrity_without_confidentiality
          - macsec_integrity_with_no_confidentiality_offset
          - macsec_integrity_with_confidentiality_offset
        supported_cipher_suites:
          description: |-
            Supported Cipher Suites.
          x-field-uid: 6
          $ref: '#/components/schemas/Mka.Basic.SupportedCipherSuites'
        eapol_ethernet_type:
          description: |-
            EAPOL Ethernet type.
          type: string
          format: hex
          minLength: 1
          maxLength: 4
          default: 888E
          x-field-uid: 7
        mka_version:
          description: |-
            MKA Version.
          type: integer
          format: uint32
          default: 3
          x-field-uid: 8
        mka_hello_time:
          description: |-
            MKA Hello Time (msec).
          type: integer
          format: uint32
          minimum: 500
          maximum: 10000
          default: 2000
          x-field-uid: 9
        mka_life_time:
          description: |-
            MKA Life Time (sec).
          type: integer
          format: uint32
          minimum: 1
          maximum: 255
          default: 6
          x-field-uid: 10
        send_icv_indicatior_in_mkpdu:
          description: |-
            Send ICV Indicator in MKPDU.
          type: boolean
          default: true
          x-field-uid: 11
        delay_protect:
          description: |-
            Delay Protect or not. When delay protect is enabled, it guards against delaying the delivery of MACsec encrypted frames by an attacker to the recipient.
          type: boolean
          default: true
          x-field-uid: 12
        rekey_mode:
          description: |-
            Rekey Mode.
          $ref: '#/components/schemas/Mka.Basic.RekeyMode'
          x-field-uid: 13
        psk_chain_start_time:
          $ref: '#/components/schemas/Mka.Basic.PskChainStartTime'
          x-field-uid: 14
    Mka.Basic.SupportedCipherSuites:
      description: |-
        The container for supported cipher suites.
      type: object
      properties:
        gcm_aes_128:
          description: |-
            GCM-AES-128.
          type: boolean
          default: true
          x-field-uid: 1
        gcm_aes_256:
          description: |-
            GCM-AES-256.
          type: boolean
          default: true
          x-field-uid: 2
        gcm_aes_xpn_128:
          description: |-
            GCM-AES-XPN-128.
          type: boolean
          default: true
          x-field-uid: 3
        gcm_aes_xpn_256:
          description: |-
            GCM-AES-XPN-256.
          type: boolean
          default: true
          x-field-uid: 4
    Mka.Basic.KeySource:
      description: |-
        The container for key source settings.
      type: object
      properties:
        choice:
          description: |-
            Key source. Choose one from PSK or MSK.
          type: string
          default: psk
          x-field-uid: 1
          x-enum:
            psk:
              x-field-uid: 1
            msk:
              x-field-uid: 2
          enum:
          - psk
          - msk
        psks:
          description: |-
            PSK chain.
          type: array
          items:
            $ref: '#/components/schemas/Mka.Basic.KeySource.Psk'
          x-field-uid: 2
    Mka.Basic.KeySource.Psk:
      description: |-
        The container for Pre-shared key(PSK).
      type: object
      properties:
        cak_value:
          description: |-
            Connectivity association key(CAK) value. It can be 128 bits or 256 bits long depending on the chosen MKA key derivation function.
          type: string
          format: hex
          minLength: 1
          maxLength: 64
          default: F123456789ABCDEF0123456789ABCDEF
          x-field-uid: 1
        cak_name:
          description: |-
            Connectivity association key(CAK) name.
          type: string
          format: hex
          minLength: 1
          maxLength: 64
          default: F123456789ABCDEF0123456789ABCDEFF123456789ABCDEF0123456789ABCDEF
          x-field-uid: 2
        start_offset_time:
          description: ""
          $ref: '#/components/schemas/Mka.Basic.StartOffsetTime'
          x-field-uid: 3
        end_offset_time:
          description: ""
          $ref: '#/components/schemas/Mka.Basic.EndOffsetTime'
          x-field-uid: 4
    Mka.Basic.StartOffsetTime:
      description: |-
        Key start offset time in HH:MM. This is relative to key chain start time.
      type: object
      properties:
        hh:
          description: |-
            Hours in HH format.
          type: integer
          format: uint32
          minimum: 0
          default: 0
          x-field-uid: 1
        mm:
          description: |-
            Minutes in MM format.
          type: integer
          format: uint32
          minimum: 0
          maximum: 59
          default: 0
          x-field-uid: 2
    Mka.Basic.EndOffsetTime:
      description: |-
        Key end offset time in HH:MM. This is relative to key chain start time. A value of "00:00" makes the key valid for lifetime.
      type: object
      properties:
        hh:
          description: |-
            Hours in HH format.
          type: integer
          format: uint32
          minimum: 0
          default: 0
          x-field-uid: 1
        mm:
          description: |-
            Minutes in MM format.
          type: integer
          format: uint32
          minimum: 0
          maximum: 59
          default: 0
          x-field-uid: 2
    Mka.Basic.PskChainStartTime:
      description: |-
        Pre-shared key(PSK) chain start time in UTC time format DD-MM-YYYY HH:MM:SS. If this time is set, the key start time will be relative to this value. Otherwise if this value is not set, key start time will be relative to test start time.
      type: object
      properties:
        choice:
          description: |-
            Timezone choice. Currently only Coordinated Universal Time(UTC) is supported.
          type: string
          default: utc
          x-field-uid: 1
          x-enum:
            utc:
              x-field-uid: 1
          enum:
          - utc
        utc:
          description: |-
            Coordinated Universal Time(UTC) time.
          $ref: '#/components/schemas/Mka.Basic.TimeUtc'
          x-field-uid: 2
    Mka.Basic.TimeUtc:
      description: |-
        Coordinated Universal Time(UTC).
      type: object
      properties:
        day:
          description: |-
            Day of the month in DD format.
          type: integer
          format: uint32
          minimum: 1
          maximum: 31
          x-field-uid: 1
        month:
          description: |-
            Month of the year in MM format.
          type: integer
          format: uint32
          minimum: 1
          maximum: 12
          x-field-uid: 2
        year:
          description: |-
            Year from the start of common era(CE) in YYYY format.
          type: integer
          format: uint32
          minimum: 0
          maximum: 9999
          x-field-uid: 3
        hour:
          description: |-
            Hour of the day in HH format.
          type: integer
          format: uint32
          minimum: 0
          maximum: 23
          x-field-uid: 4
        minute:
          description: |-
            Minute of the hour in MM format.
          type: integer
          format: uint32
          minimum: 0
          maximum: 59
          x-field-uid: 5
        second:
          description: |-
            Second of the minute in SS format.
          type: integer
          format: uint32
          minimum: 0
          maximum: 59
          x-field-uid: 6
    Mka.Basic.RekeyMode:
      description: |-
        Rekey mode.
      type: object
      properties:
        choice:
          description: |-
            Mode choices.
          type: string
          default: dont_rekey
          x-field-uid: 1
          x-enum:
            dont_rekey:
              x-field-uid: 1
            timer_based:
              x-field-uid: 2
            pn_based:
              x-field-uid: 3
          enum:
          - dont_rekey
          - timer_based
          - pn_based
        timer_based:
          description: |-
            Container for timer based periodic rekey properties.
          x-field-uid: 2
          $ref: '#/components/schemas/Mka.Basic.RekeyMode.TimerBased'
    Mka.Basic.RekeyMode.TimerBased:
      description: |-
        Timer based periodic rekey properties.
      type: object
      properties:
        choice:
          description: |-
            Periodic Rekey count.
          type: string
          default: continuous
          x-field-uid: 1
          x-enum:
            continuous:
              x-field-uid: 1
            fixed_count:
              x-field-uid: 2
          enum:
          - continuous
          - fixed_count
        fixed_count:
          description: |-
            Fixed rekey attempts.
          type: integer
          format: uint32
          minimum: 1
          maximum: 65535
          default: 10
          x-field-uid: 2
        interval:
          description: |-
            Periodic rekey interval (sec).
          type: integer
          format: uint32
          minimum: 30
          maximum: 65535
          default: 300
          x-field-uid: 3
    Mka.KeyServer:
      description: |-
        Key server attributes of a KaY.
      properties:
        confidentialty_offset:
          description: |-
            Confidentiality Offset.
          type: string
          default: no_confidentiality_offset
          x-field-uid: 1
          x-enum:
            no_confidentiality:
              x-field-uid: 1
            no_confidentiality_offset:
              x-field-uid: 2
            confidentiality_offset_30_octets:
              x-field-uid: 3
            confidentiality_offset_50_octets:
              x-field-uid: 4
          enum:
          - no_confidentiality
          - no_confidentiality_offset
          - confidentiality_offset_30_octets
          - confidentiality_offset_50_octets
        cipher_suite:
          description: |-
            The cipher suite. Choose one from GCM-AES-128 GCM-AES-256 GCM-AES-XPN-128 GCM-AES-XPN-256
          type: string
          default: gcm_aes_128
          x-field-uid: 2
          x-enum:
            gcm_aes_128:
              x-field-uid: 1
            gcm_aes_256:
              x-field-uid: 2
            gcm_aes_xpn_128:
              x-field-uid: 3
            gcm_aes_xpn_256:
              x-field-uid: 4
          enum:
          - gcm_aes_128
          - gcm_aes_256
          - gcm_aes_xpn_128
          - gcm_aes_xpn_256
        starting_key_number:
          description: |-
            Starting Key Number.
          type: integer
          format: uint32
          minimum: 1
          maximum: 65535
          default: 1
          x-field-uid: 3
        starting_distributed_an:
          description: |-
            Starting Distributed AN.
          type: integer
          format: uint32
          minimum: 0
          maximum: 3
          default: 0
          x-field-uid: 4
        rekey_threshold_pn:
          description: |-
            Determines the PN rekey threshold.
          type: string
          format: hex
          minLength: 1
          maxLength: 8
          default: C0000000
          x-field-uid: 5
        rekey_threshold_xpn:
          description: |-
            Determines the XPN rekey threshold.
          type: string
          format: hex
          minLength: 1
          maxLength: 16
          default: C000000000000000
          x-field-uid: 6
    Mka.Tx:
      description: |-
        A container of Tx properties.
      type: object
      required:
      - secure_channels
      properties:
        secure_channels:
          description: |-
            Tx secure channels.
          type: array
          items:
            $ref: '#/components/schemas/Mka.TxSc'
          x-field-uid: 1
    Mka.TxSc:
      description: |-
        Tx secure channel(SC) properties.
      type: object
      required:
      - name
      - system_id
      properties:
        name:
          description: |-
            Tx SC name.
          type: string
          x-field-uid: 1
        system_id:
          description: "System ID. "
          type: string
          format: mac
          x-field-uid: 2
        port_id:
          description: "Port ID. "
          type: integer
          format: uint32
          minimum: 1
          maximum: 65535
          default: 1
          x-field-uid: 3
        starting_message_number:
          description: |-
            Starting Message Number.
          type: integer
          format: uint64
          minimum: 1
          maximum: 4294967295
          default: 1
          x-field-uid: 4
    SecureEntity.StaticKey:
      description: |-
        A container of static key properties for a secure entity(SecY). This configuration is applicable when no dynamic key management protocol i.e. MACsec key agreement(MKA) is configured. If MKA is configured, any static key configuration is not applicable.
      type: object
      properties:
        cipher_suite:
          description: |-
            The cipher suite. Choose one from GCM-AES-128 GCM-AES-128 GCM-AES-256 GCM-AES-XPN-128 GCM-AES-XPN-256
          type: string
          default: gcm_aes_128
          x-field-uid: 1
          x-enum:
            gcm_aes_128:
              x-field-uid: 1
            gcm_aes_256:
              x-field-uid: 2
            gcm_aes_xpn_128:
              x-field-uid: 3
            gcm_aes_xpn_256:
              x-field-uid: 4
          enum:
          - gcm_aes_128
          - gcm_aes_256
          - gcm_aes_xpn_128
          - gcm_aes_xpn_256
        confidentiality:
          description: "Encrypt or not. "
          type: boolean
          default: true
          x-field-uid: 2
        confidentiality_offset:
          description: |-
            Confidentiality offset.
          type: string
          default: zero
          x-field-uid: 3
          x-enum:
            zero:
              x-field-uid: 1
            thirty:
              x-field-uid: 2
            fifty:
              x-field-uid: 3
          enum:
          - zero
          - thirty
          - fifty
        tx:
          description: |-
            Tx properties of SecY.
          $ref: '#/components/schemas/SecureEntity.StaticKey.Tx'
          x-field-uid: 4
        rx:
          description: |-
            Rx properties of SecY.
          $ref: '#/components/schemas/SecureEntity.StaticKey.Rx'
          x-field-uid: 5
    SecureEntity.StaticKey.RekeyMode:
      description: |-
        Rekey mode.
      type: object
      properties:
        choice:
          description: |-
            Rekey mode choices.
          type: string
          default: dont_rekey
          x-field-uid: 1
          x-enum:
            dont_rekey:
              x-field-uid: 1
            timer_based:
              x-field-uid: 2
            pn_based:
              x-field-uid: 3
          enum:
          - dont_rekey
          - timer_based
          - pn_based
        timer_based:
          description: |-
            Container for timer based periodic rekey properties.
          x-field-uid: 2
          $ref: '#/components/schemas/SecureEntity.StaticKey.RekeyMode.TimerBased'
    SecureEntity.StaticKey.RekeyMode.TimerBased:
      description: |-
        Timer based periodic rekey properties.
      type: object
      properties:
        choice:
          description: |-
            Periodic rekey attempt choices.
          type: string
          default: continuous
          x-field-uid: 1
          x-enum:
            continuous:
              x-field-uid: 1
            fixed_count:
              x-field-uid: 2
          enum:
          - continuous
          - fixed_count
        fixed_count:
          description: |-
            Fixed rekey attempts.
          type: integer
          format: uint32
          minimum: 1
          maximum: 65535
          default: 10
          x-field-uid: 2
        interval:
          description: |-
            Periodic rekey interval (sec).
          type: integer
          format: uint32
          minimum: 30
          maximum: 65535
          default: 300
          x-field-uid: 3
    SecureEntity.StaticKey.Sak:
      description: |-
        The container for SAK.
      type: object
      properties:
        sak:
          description: |-
            Secure association key(SAK) bits as hex string. Either 128 bits or 256 bits depending on the chosen cipher suite.
          type: string
          format: hex
          minLength: 1
          maxLength: 64
          default: F123456789ABCDEF0123456789ABCDEF
          x-field-uid: 1
        ssci:
          description: |-
            4 bytes short SCI(SSCI) used in case of XPN cipher suites.
          type: string
          format: hex
          minLength: 1
          maxLength: 8
          default: '00000001'
          x-field-uid: 2
        salt:
          description: |-
            12 bytes salt used in case of XPN cipher suites.
          type: string
          format: hex
          minLength: 1
          maxLength: 24
          default: '000000000000000000000001'
          x-field-uid: 3
    SecureEntity.StaticKey.Tx:
      description: |-
        A container of static key Tx properties.
      type: object
      properties:
        secure_channels:
          description: |-
            Tx secure channels.
          type: array
          items:
            $ref: '#/components/schemas/SecureEntity.StaticKey.TxSc'
          x-field-uid: 1
        rekey_mode:
          $ref: '#/components/schemas/SecureEntity.StaticKey.RekeyMode'
          x-field-uid: 2
    SecureEntity.StaticKey.TxSc:
      description: |-
        Tx SC setting for static key.
      type: object
      properties:
        system_id:
          description: "System ID. "
          type: string
          format: mac
          x-field-uid: 1
        port_id:
          description: "Port ID. "
          type: integer
          format: uint32
          minimum: 1
          maximum: 65535
          default: 1
          x-field-uid: 2
        saks:
          description: |-
            Tx SAK pool.
          type: array
          items:
            $ref: '#/components/schemas/SecureEntity.StaticKey.Sak'
          x-field-uid: 3
    SecureEntity.StaticKey.Rx:
      description: |-
        A container of static key Rx properties.
      type: object
      properties:
        secure_channels:
          description: |-
            Rx secure channels.
          type: array
          items:
            $ref: '#/components/schemas/SecureEntity.StaticKey.RxSc'
          x-field-uid: 1
    SecureEntity.StaticKey.RxSc:
      description: |-
        Rx SC settings.
      type: object
      properties:
        dut_sci_system_id:
          description: "System ID in DUT SCI. "
          type: string
          format: mac
          x-field-uid: 1
        dut_sci_port_id:
          description: "Port ID in DUT SCI. "
          type: integer
          format: uint32
          minimum: 1
          maximum: 65535
          default: 1
          x-field-uid: 2
        dut_msb_xpn:
          description: |-
            DUT MSB of XPN. The 32 most significant bits of the XPN that DUT will be using to construct the 64 bits XPN value when test starts.
          type: integer
          format: uint32
          minimum: 0
          maximum: 4294967295
          default: 0
          x-field-uid: 3
        saks:
          description: |-
            Rx SAK pool.
          type: array
          items:
            $ref: '#/components/schemas/SecureEntity.StaticKey.Sak'
          x-field-uid: 4
    Device.Ospfv3Router:
      description: |-
        Under Review: OSPFv3 is currently under review for pending exploration on use cases.

        A container of properties for an OSPFv3 router.
      x-status:
        status: under_review
        information: OSPFv3 is currently under review for pending exploration on use
          cases.
      type: object
      required:
      - instances
      properties:
        router_id:
          description: |-
            OSPFv3 Router Id.
          $ref: '#/components/schemas/Ospfv3.RouterId'
          x-field-uid: 1
        instances:
          description: |-
            List of OSPFv3 router instances for this router.
          type: array
          items:
            $ref: '#/components/schemas/Ospfv3.RouterInstance'
          x-field-uid: 2
    Ospfv3.RouterInstance:
      description: |-
        A container of properties for an OSPFv3 router instance and its interfaces and route ranges.
      type: object
      required:
      - name
      - interfaces
      properties:
        name:
          x-field-uid: 1
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
        lsa_retransmit_time:
          description: |-
            The time in seconds for LSA retransmission.
          type: integer
          format: uint32
          default: 5
          minimum: 1
          x-field-uid: 2
        lsa_refresh_time:
          description: |-
            The time in seconds required for LSA refresh.
          type: integer
          format: uint32
          default: 1800
          minimum: 5
          x-field-uid: 3
        inter_burst_lsu_interval:
          description: "The gap in miliseconds between each Flood Link State Update\
            \ burst. "
          type: integer
          format: uint32
          default: 1000
          minimum: 1
          x-field-uid: 4
        graceful_restart:
          $ref: '#/components/schemas/Ospfv3.GracefulRestart'
          x-field-uid: 5
        store_lsa:
          description: |-
            Configuration for controlling storage of OSPFv3 learned LSAs received from the neighbors.
          type: boolean
          default: false
          x-field-uid: 6
        capabilities:
          description: |-
            Optional container for OSPFv3 router capabilities.
          $ref: '#/components/schemas/Ospfv3.Capabilities'
          x-field-uid: 7
        interfaces:
          description: |-
            List of OSPFv3 interfaces for this router.
          type: array
          items:
            $ref: '#/components/schemas/Ospfv3.Interface'
          x-field-uid: 8
        v6_routes:
          description: |-
            Emulated OSPFv4 IPv6 routes.
          type: array
          items:
            $ref: '#/components/schemas/Ospfv3.V6RouteRange'
          x-field-uid: 9
    Ospfv3.RouterId:
      description: |-
        Container for OSPFv3 Router ID configuration.
      type: object
      properties:
        choice:
          description: |-
            IP address of Router ID for this emulated OSPFv3 router.
            - auto: When first IPv4 address on the router is attempted to be assigned as Router ID.
                    If none are available for use, implementation should return an error.
            - custom: When, Router ID needs to be configured different from first IPv4 address of the router.
          type: string
          default: auto
          x-field-uid: 1
          x-enum:
            auto:
              x-field-uid: 1
            custom:
              x-field-uid: 2
          enum:
          - auto
          - custom
        custom:
          description: |-
            Router ID in IPv4 address format.
          type: string
          format: ipv4
          x-field-uid: 2
    Ospfv3.Capabilities:
      description: |-
        The OSPFv3 router optional attributes.
      type: object
      properties:
        lsa_b_bit:
          description: |-
            Set to indicate that the router acts as an Area Border Router.
          type: boolean
          default: false
          x-field-uid: 1
        lsa_e_bit:
          description: |-
            Set to indicate that the router acts as an AS Boundary Router.
          type: boolean
          default: false
          x-field-uid: 2
    Ospfv3.GracefulRestart:
      description: |-
        Container of properties of OSPFv3 Graceful Retstart.
      type: object
      properties:
        helper_mode:
          description: |-
            Support of Graceful Restart in Helper Mode.
          type: boolean
          default: false
          x-field-uid: 1
    Ospfv3.Interface:
      description: |-
        Configuration for single OSPFv3 interface.
      type: object
      required:
      - name
      - ipv6_name
      properties:
        name:
          x-field-uid: 1
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
        ipv6_name:
          description: "The globally unique name of the IPv6 interface connected to\
            \ the DUT.            \n\nx-constraint:\n- /components/schemas/Device.Ipv6/properties/name\n"
          type: string
          x-constraint:
          - /components/schemas/Device.Ipv6/properties/name
          x-field-uid: 2
        area:
          description: "The Area ID of the area to which the attached network belongs.\n\
            All routing protocol packets originating from the interface are\nlabelled\
            \ with this Area ID.           "
          $ref: '#/components/schemas/Ospfv3Interface.Area'
          x-field-uid: 3
        network_type:
          description: |-
            The OSPF network link type.
          $ref: '#/components/schemas/Ospfv3Interface.NetworkType'
          x-field-uid: 4
        advanced:
          description: |-
            Optional container for advanced interface properties.
          $ref: '#/components/schemas/Ospfv3Interface.Advanced'
          x-field-uid: 5
        options:
          description: |-
            Container for OSPFv3 optional interface properties.
          $ref: '#/components/schemas/Ospfv3Interface.Options'
          x-field-uid: 6
        instance_id:
          description: |-
            Enables multiple instances of OSPF to be run over a single link.
            Each protocol instance should be assigned a separate Instance ID;
            the Instance ID has link-local significance only.
          type: integer
          format: uint32
          default: 0
          maximum: 255
          x-field-uid: 7
    Ospfv3Interface.Area:
      description: "Container for OSPFv3 Area ID identifies the routing area to which\
        \ the host belongs.      "
      type: object
      properties:
        choice:
          description: |-
            The OSPFv3 Area ID identifies the routing area to which the host belongs. Area ID type can be following format.
            - id: A 32-bit number identifying the area.
            - ip: The Area ID in IPv4 address format.
          type: string
          default: id
          x-field-uid: 1
          x-enum:
            id:
              x-field-uid: 1
            ip:
              x-field-uid: 2
          enum:
          - id
          - ip
        id:
          description: |-
            The Area ID.
          type: integer
          format: uint32
          default: 0
          x-field-uid: 2
        ip:
          description: |-
            The Area ID in IPv4 address format.
          type: string
          format: ipv4
          x-field-uid: 3
    Ospfv3Interface.NetworkType:
      description: |-
        The OSPFv3 network link type options.
          - Broadcast
          - Point to Point
      type: object
      properties:
        choice:
          type: string
          default: broadcast
          x-field-uid: 1
          x-enum:
            broadcast:
              x-field-uid: 1
            point_to_point:
              x-field-uid: 2
          enum:
          - broadcast
          - point_to_point
        broadcast:
          description: |-
            Capabilities associated with network type broadcast.
          $ref: '#/components/schemas/Ospfv3Interface.Broadcast'
          x-field-uid: 2
    Ospfv3Interface.Advanced:
      description: |-
        Contains OSPFv3 advanced properties.
      type: object
      properties:
        hello_interval:
          description: |-
            The time interval, in seconds, between the Hello packets that
            the router sends on the interface. Advertised in Hello packets
            sent out this interface.
          type: integer
          format: uint32
          default: 10
          maximum: 65535
          x-field-uid: 1
        dead_interval:
          description: |-
            The time interval in seconds before the router's neighbors will declare
            it down, when they stop hearing the router's Hello Packets.
            Advertised in Hello packets sent out this interface.
          type: integer
          format: uint32
          default: 40
          maximum: 65535
          x-field-uid: 2
        link_metric:
          description: |-
            The cost of transmitting data on this link.
          type: integer
          format: uint32
          default: 10
          maximum: 65535
          x-field-uid: 3
        validate_received_mtu:
          description: "If this is set to true, then the MTU received from the neighbor\
            \ during Database (DB) Exchange \nwill be validated, otherwise it will\
            \ be ignored.\n"
          type: boolean
          default: true
          x-field-uid: 4
    Ospfv3Interface.Options:
      description: |-
        The Options field is present in OSPFv3 Hello packets, Database Description packets and all LSAs.
        The Options field enables OSPF routers to support (or not support) optional capabilities, and to
        communicate their capability level to other OSPF routers (https://datatracker.ietf.org/doc/html/rfc2740#appendix-A.2).
        When used in Hello packets, the Options field allows a router to reject a neighbor because of a capability mismatch.
      type: object
      properties:
        dc_bit:
          description: |-
            Demand Circuit: This bit describes the router's handling of demand circuits, as specified in [Ref10], rfc2740.
          type: boolean
          default: false
          x-field-uid: 1
        r_bit:
          description: |-
            Router: This bit indicates if the originator is an active router.
          type: boolean
          default: true
          x-field-uid: 2
        n_bit:
          description: |-
            NSSA Capability: This bit describes the handling of Type-7 LSAs, as specified in [Ref8], rfc2740.
          type: boolean
          default: false
          x-field-uid: 3
        e_bit:
          description: |-
            External Capability: This bit describes the router's willingness to receive and forward External-Attributes-LSAs,  as specified in [Ref1], rfc2740.
          type: boolean
          default: true
          x-field-uid: 4
        v6_bit:
          description: |-
            V6: If set, the router/link should be included in IPv6 routing calculations.
          type: boolean
          default: true
          x-field-uid: 5
    Ospfv3Interface.Broadcast:
      description: |-
        Container for capabilities associated with network type broadcast.
      type: object
      properties:
        priority:
          description: "The Priority for (Backup) Designated Router election.    \
            \      \t\nThis value is used in Hello packets for the Designated Router\
            \ (DR) election process.\nThe default is 0, which indicates that the router\
            \ will not participate in the DR election process."
          type: integer
          format: uint32
          default: 0
          maximum: 255
          x-field-uid: 1
    Ospfv3.V6RouteRange:
      description: |-
        Emulated OSPFv3 IPv6 routes.
      type: object
      required:
      - name
      properties:
        name:
          x-field-uid: 1
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
        addresses:
          description: |-
            A list of group of IPv6 route addresses.
          type: array
          items:
            $ref: '#/components/schemas/V6RouteAddress'
          x-field-uid: 2
        metric:
          description: |-
            The user-defined metric associated with this route range.
          type: integer
          format: uint32
          default: 0
          maximum: 16777215
          x-field-uid: 3
        route_origin:
          description: |-
            The type of the OSPFv3 routes.
          $ref: '#/components/schemas/Ospfv3V6RR.RouteOrigin'
          x-field-uid: 4
    Ospfv3V6RR.RouteOrigin:
      description: "Container of type of the OSPFv3 types correspond directly to the\
        \ OSPFv3 LSAs types.  "
      type: object
      properties:
        choice:
          description: |-
            Supported types are: - intra_area: for Intra-Area. - inter_area: for Inter Area. - external_type_1: for Autonomous System (AS) External with internal AS metric. - external_type_2: for Autonomous System (AS) External with internal and external AS metric. - nssa_external: for type 7 Not-So-Stubby Area (NSSA) External.
          type: string
          default: inter_area
          x-field-uid: 1
          x-enum:
            intra_area:
              x-field-uid: 1
            inter_area:
              x-field-uid: 2
            external_type_1:
              x-field-uid: 3
            external_type_2:
              x-field-uid: 4
            nssa_external:
              x-field-uid: 5
          enum:
          - intra_area
          - inter_area
          - external_type_1
          - external_type_2
          - nssa_external
        nssa_external:
          description: |-
            Configuration for the type 7 Not-So-Stubby Area (NSSA) External.
          $ref: '#/components/schemas/Ospfv3V6RR.NssaExternal'
          x-field-uid: 2
    Ospfv3V6RR.NssaExternal:
      description: |-
        Container for the forwarding address of NSSA External route origin configuration.
      type: object
      properties:
        capabilities:
          description: |-
            Configuration for capabilities associated with route origin.
          $ref: '#/components/schemas/Ospfv3V6RR.Capabilities'
          x-field-uid: 1
    Ospfv3V6RR.Capabilities:
      description: |-
        Container for the capabilities associated with route origin.
      type: object
      properties:
        propagation:
          description: |-
            If set, LSAs will be propagated between Areas.
          type: boolean
          default: false
          x-field-uid: 1
        forwarding_address:
          description: |-
            Configuration for forwarding address of NSSA External route origin.
          $ref: '#/components/schemas/Ospfv3V6RR.ForwardingAddress'
          x-field-uid: 2
    Ospfv3V6RR.ForwardingAddress:
      description: |-
        Container for the forwarding address of NSSA External route origin configuration.
      type: object
      properties:
        choice:
          description: |-
            IPv6 forwarding address of Type 7 LSA Not-So-Stubby Area (NSSA) External.
            - interface_ip: if set, forwarding address is set with Interface IPv6 address.
            - custom: if set, forwarding address is set with a custom IPv6 address.
          type: string
          default: interface_ip
          x-field-uid: 1
          x-enum:
            interface_ip:
              x-field-uid: 1
            custom:
              x-field-uid: 2
          enum:
          - interface_ip
          - custom
        custom:
          description: |-
            Forwarding address in IPv6 format.
          type: string
          format: ipv6
          x-field-uid: 2
    Device.Rocev2Peer:
      description: |-
        Configuration for one or more IPv4 or IPv6 RoCEv2 Peers.
      type: object
      properties:
        ipv4_interfaces:
          description: "This contains an array of references to IPv4 interfaces, each\
            \ having a list of IPv4 peers to various destinations.  "
          type: array
          items:
            $ref: '#/components/schemas/Rocev2.V4Interface'
          x-field-uid: 1
        ipv6_interfaces:
          description: |-
            This contains an array references to IPv6 interfaces, each with a list of IPv6 peers for various destinations.
          type: array
          items:
            $ref: '#/components/schemas/Rocev2.V6Interface'
          x-field-uid: 2
    Rocev2.V4Interface:
      description: |-
        This contains an array of references to IPv4 interfaces, each having a list of IPv4 peers to various destinations.
      type: object
      required:
      - ipv4_name
      properties:
        ipv4_name:
          description: |
            The unique name of the IPv4 interface, used as the source IP for this list of RoCEv2 peers.

            x-constraint:
            - /components/schemas/Device.Ipv4/properties/name
          type: string
          x-constraint:
          - /components/schemas/Device.Ipv4/properties/name
          x-field-uid: 1
        ib_mtu:
          description: |-
            The InfiniBand protocol defines several fixed sizes for the Maximum Transmission Unit (IB MTU): 256, 512, 1024, 2048, or 4096 bytes. RDMA messages will have a payload size that corresponds to the configured IB MTU. Additionally, it is possible to configure a custom size.
          type: integer
          default: 1024
          format: uint32
          minimum: 0
          maximum: 14000
          x-field-uid: 2
        peers:
          description: |-
            This contains the list of RoCEv2 peers configured on this interface.
          type: array
          items:
            $ref: '#/components/schemas/Rocev2.V4Peer'
          x-field-uid: 3
    Rocev2.V4Peer:
      description: |-
        Configuration for RoCEv2 IPv4 peers.
      type: object
      required:
      - name
      - destination_ip_address
      properties:
        name:
          x-field-uid: 1
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
        destination_ip_address:
          description: |-
            Specify the destination ip address.
          type: string
          format: ipv4
          x-field-uid: 2
        qps:
          type: array
          description: |-
            This allows the user to set  multiple QPs and its properties between a pair of source and destination RoCEv2 devices.
          items:
            $ref: '#/components/schemas/Rocev2.QPs'
          x-field-uid: 3
    Rocev2.QPs:
      description: |-
        This allows the user to set QP properties between a particular source and destination.
      type: object
      required:
      - qp_name
      properties:
        qp_name:
          description: |-
            Name of each QP.
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          x-field-uid: 1
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
        connection_type:
          $ref: '#/components/schemas/Rocev2.ConnectionType'
          x-field-uid: 2
    Rocev2.ConnectionType:
      description: |-
        Specifies the connection type for the QP, determining what and how the QP transfers data.
      type: object
      properties:
        choice:
          type: string
          default: reliable_connection
          x-enum:
            reliable_connection:
              x-field-uid: 1
          x-field-uid: 1
          enum:
          - reliable_connection
        reliable_connection:
          $ref: '#/components/schemas/Rocev2.QPParameters'
          x-field-uid: 2
    Rocev2.QPParameters:
      description: |-
        Defines the parameters for configuring a RoCEv2 QP.
      type: object
      properties:
        source_qp_number:
          description: |-
            Configure Source QP number which initiates the RDMA operation.
          type: integer
          format: uint32
          default: 2
          minimum: 2
          maximum: 33554431
          x-field-uid: 1
        dscp:
          description: |-
            DSCP value for the RDMA data packets.
          type: integer
          format: uint32
          default: 24
          minimum: 0
          maximum: 63
          x-field-uid: 2
        ecn:
          description: |-
            This field allows to configure bits of the Traffic Class field in the IPv4 or IPv6 header to encode four different code points. Those are non_ect, ect_1, ect_0 and ce. non_ect quivalent is 00, ect_1 represent 01, ect_0 represent 10 and ce means 11.
          type: string
          default: ect_1
          x-enum:
            non_ect:
              x-field-uid: 1
            ect_1:
              x-field-uid: 2
            ect_0:
              x-field-uid: 3
            ce:
              x-field-uid: 4
          x-field-uid: 3
          enum:
          - non_ect
          - ect_1
          - ect_0
          - ce
        udp_source_port:
          description: |-
            UDP source port number for this QP.
          type: integer
          format: uint32
          default: 49152
          minimum: 0
          maximum: 65535
          x-field-uid: 4
        initial_psn:
          description: |-
            Initial packet sequence number of the data transfer packet generated for this QP.
          type: integer
          format: uint64
          default: 0
          minimum: 0
          maximum: 33554431
          x-field-uid: 5
        virtual_address:
          description: |-
            Virtual Address where the data transfer from the remote QP will write to.
          type: string
          format: hex
          default: '0000000000000000'
          maxLength: 16
          x-field-uid: 6
        remote_key:
          description: |-
            Remote Key linked to the QP's virtual address.
          type: string
          format: hex
          default: '00000000'
          maxLength: 8
          x-field-uid: 7
    Rocev2.V6Interface:
      description: |-
        This contains an array of references to IPv6 interfaces, each having a list of IPv6 peers to various destinations.
      type: object
      required:
      - ipv6_name
      properties:
        ipv6_name:
          description: |
            The unique name of IPv6 used as the source IP for this list of RoCEv2 peers.

            x-constraint:
            - /components/schemas/Device.Ipv6/properties/name
          type: string
          x-constraint:
          - /components/schemas/Device.Ipv6/properties/name
          x-field-uid: 1
        ib_mtu:
          description: |-
            The InfiniBand protocol defines several fixed sizes for the Maximum Transmission Unit (IB MTU): 256, 512, 1024, 2048, or 4096 bytes. RDMA messages will have a payload size that corresponds to the configured IB MTU. Additionally, it is possible to configure a custom size.
          type: integer
          default: 1024
          format: uint32
          minimum: 0
          maximum: 14000
          x-field-uid: 2
        peers:
          description: |-
            This contains the list of RoCEv2 IPv6 peers configured on this interface.
          type: array
          items:
            $ref: '#/components/schemas/Rocev2.V6Peer'
          x-field-uid: 3
    Rocev2.V6Peer:
      description: |-
        Configuration for RoCEv2 IPv6 peer settings.
      type: object
      required:
      - name
      - destination_ip_address
      properties:
        name:
          x-field-uid: 1
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
        destination_ip_address:
          description: |-
            Specify the destination ip address.
          type: string
          format: ipv6
          x-field-uid: 2
        qps:
          type: array
          description: |-
            This allows the user to set  multiple QPs and its properties between a pair of source and destination RoCEv2 devices.
          items:
            $ref: '#/components/schemas/Rocev2.QPs'
          x-field-uid: 3
    Flow:
      description: |-
        A high level data plane traffic flow.
      type: object
      required:
      - tx_rx
      - name
      properties:
        tx_rx:
          description: |-
            The transmit and receive endpoints.
          $ref: '#/components/schemas/Flow.TxRx'
          x-field-uid: 1
        packet:
          description: "The list of protocol headers defining the shape of all \n\
            intended packets in corresponding flow as it is transmitted\nby traffic-generator\
            \ port.\n\nThe order of protocol headers assigned to the list is the\n\
            order they will appear on the wire.\n\nIn the case of an empty list the\
            \ keyword/value of minItems: 1 \nindicates that an implementation MUST\
            \ provide at least one \nFlow.Header object.\n\nThe default value for\
            \ the Flow.Header choice property is ethernet \nwhich will result in an\
            \ implementation by default providing at least \none ethernet packet header."
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/Flow.Header'
          x-field-uid: 2
        egress_packet:
          description: "Under Review: The packet header schema for egress tracking\
            \ currently exposes unwanted fields. The query structure for tagged metrics\
            \ inside flows metrics requires documenting expected response format.\n\
            \nThe list of protocol headers defining the shape of all \nintended packets\
            \ in corresponding flow as it is received\nby traffic-generator port.\n\
            \nFor all protocol headers, only the `metric_tags` property is configurable."
          type: array
          items:
            $ref: '#/components/schemas/Flow.Header'
          x-status:
            status: under-review
            information: The packet header schema for egress tracking currently exposes
              unwanted fields. The query structure for tagged metrics inside flows
              metrics requires documenting expected response format.
          x-field-uid: 9
        size:
          description: |-
            The size of the packets.
          $ref: '#/components/schemas/Flow.Size'
          x-field-uid: 3
        rate:
          description: |-
            The transmit rate of the packets.
          $ref: '#/components/schemas/Flow.Rate'
          x-field-uid: 4
        duration:
          description: |-
            The transmit duration of the packets.
          $ref: '#/components/schemas/Flow.Duration'
          x-field-uid: 5
        metrics:
          description: "Flow metrics. "
          $ref: '#/components/schemas/Flow.Metrics'
          x-field-uid: 6
        name:
          x-field-uid: 7
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
    Flow.TxRx:
      description: "A container for different types of transmit and receive \nendpoint\
        \ containers."
      type: object
      properties:
        choice:
          description: |-
            The type of transmit and receive container used by the flow.
          type: string
          default: port
          x-field-uid: 1
          x-enum:
            port:
              x-field-uid: 1
            device:
              x-field-uid: 2
          enum:
          - port
          - device
        port:
          $ref: '#/components/schemas/Flow.Port'
          x-field-uid: 2
        device:
          $ref: '#/components/schemas/Flow.Router'
          x-field-uid: 3
    Flow.Port:
      description: "A container for a transmit port and 0..n intended receive ports.\n\
        When assigning this container to a flow the flows's \npacket headers will\
        \ not be populated with any address resolution \ninformation such as source\
        \ and/or destination addresses. \nFor example Flow.Ethernet dst mac address\
        \ values will be defaulted to 0. \nFor full control over the Flow.properties.packet\
        \ header contents use this \ncontainer. "
      type: object
      required:
      - tx_name
      properties:
        tx_name:
          description: |
            The unique name of a port that is the transmit port.

            x-constraint:
            - /components/schemas/Port/properties/name
            - /components/schemas/Lag/properties/name
          type: string
          x-constraint:
          - /components/schemas/Port/properties/name
          - /components/schemas/Lag/properties/name
          x-field-uid: 1
        rx_name:
          description: |
            Deprecated: This property is deprecated in favor of property rx_names

            The unique name of a port that is the intended receive port.

            x-constraint:
            - /components/schemas/Port/properties/name
            - /components/schemas/Lag/properties/name
          x-status:
            status: deprecated
            information: This property is deprecated in favor of property rx_names
          type: string
          x-constraint:
          - /components/schemas/Port/properties/name
          - /components/schemas/Lag/properties/name
          x-field-uid: 2
        rx_names:
          description: |
            Unique name of ports or lags that are intended receive endpoints.

            x-constraint:
            - /components/schemas/Port/properties/name
            - /components/schemas/Lag/properties/name
          type: array
          items:
            description: |-
              The unique name of a port or lag that is the intended receive port.
            type: string
          x-constraint:
          - /components/schemas/Port/properties/name
          - /components/schemas/Lag/properties/name
          x-field-uid: 3
    Flow.Router:
      description: |-
        A container for declaring a map of 1..n transmit devices to 1..n receive devices. This allows for a single flow to have  different tx to rx device flows such as a single one to one map or a  many to many map.
      type: object
      required:
      - tx_names
      - rx_names
      properties:
        mode:
          description: "Determines the intent of creating traffic sub-flow(s) between\
            \ the device \nendpoints, from the entities of <b>tx_names</b> to the\
            \ entities of <b>rx_names</b> \nto derive how <b>auto</b> packet fields\
            \ can be populated with \nthe actual value(s) by the implementation.\n\
            \nThe <b>one_to_one</b> mode creates traffic sub-flow(s) between each\
            \ device endpoint pair in \ntx_names to rx_names by index.\nThe length\
            \ of tx_names and rx_names MUST be the same.\nThe same device name can\
            \ be repeated multiple times in tx_names or rx_names, in any order to\
            \ create desired meshing between device(s).\nFor 2 values in tx_names\
            \ and 2 values in rx_names, 2 device endpoint pairs would be generated\
            \ (each pair representing a traffic sub-flow).\n\nThe <b>mesh</b> mode\
            \ creates traffic sub-flow(s) between each value in tx_names to\nevery\
            \ value in rx_names, forming the device endpoint pair(s).\nFor 2 values\
            \ in tx_names and 3 values in rx_names, generated device endpoint pairs\
            \ would be 2x3=6. \n\nA generated device endpoint pair with same device\
            \ endpoint name for both transmit & receive device endpoint MUST raise\
            \ an error.\n\nPacket fields of type <b>auto</b> would be populated with\
            \ one value for each device endpoint pair (representing the traffic sub-flow).\
            \ \nThe value would be determined considering transmit & receive device\
            \ of the sub-flow. And the sequence of the populated value(s) \nwould\
            \ be in the order of generated device endpoint pair(s).\nIf 2 device endpoint\
            \ pairs are generated (based on mode, tx_names and rx_names), say (d1\
            \ to d3) and (d2 to d3), and ethernet.dst is set as <b>auto</b>, then\
            \ \nthe auto field would be <b>replaced</b> by the implementation with\
            \ a sequence of 2 values, [v1,v2] where \nv1 is determined using context\
            \ (d1,d3) and v2 using context (d2,d3).\nThe final outcome is that packets\
            \ generated on the wire will contain the values v1,v2,v1,... for ethernet.dst\
            \ field. Any non-auto packet fields \nshould be configured accordingly.\
            \ For example, non-auto packet field ethernet.src can be configured with\
            \ values [u1, u2], where \nu1 & u2 are source MAC of the connected interface\
            \ of device d1 and d2 respectively. Then packets on the wire will contain\
            \ correct value pairs \n(u1,v1),(u2,v2),(u1,v1),... for (ethernet.src,ethernet.dst)\
            \ fields."
          type: string
          default: mesh
          x-field-uid: 1
          x-enum:
            mesh:
              x-field-uid: 1
            one_to_one:
              x-field-uid: 2
          enum:
          - mesh
          - one_to_one
        tx_names:
          type: array
          items:
            description: |-
              The unique name of an emulated device that will be transmitting.
            type: string
          x-constraint:
          - /components/schemas/Device.Ethernet/properties/name
          - /components/schemas/Device.Ipv4/properties/name
          - /components/schemas/Device.Ipv6/properties/name
          - /components/schemas/Bgp.V4RouteRange/properties/name
          - /components/schemas/Bgp.V6RouteRange/properties/name
          - /components/schemas/Bgp.CMacIpRange/properties/name
          - /components/schemas/Rsvp.LspIpv4Interface.P2PIngressIpv4Lsp/properties/name
          - /components/schemas/Isis.V4RouteRange/properties/name
          - /components/schemas/Isis.V6RouteRange/properties/name
          - /components/schemas/Ospfv2.V4RouteRange/properties/name
          - /components/schemas/Ospfv3.V6RouteRange/properties/name
          - /components/schemas/Device.Dhcpv4client/properties/name
          - /components/schemas/Device.Dhcpv6client/properties/name
          example:
          - Eth 1
          - Eth 2
          - Eth 3
          - IPv4 1
          - IPv6 1
          - Bgp V4RouteRange 1
          - Bgp V6RouteRange 1
          x-field-uid: 2
          description: |
            TBD

            x-constraint:
            - /components/schemas/Device.Ethernet/properties/name
            - /components/schemas/Device.Ipv4/properties/name
            - /components/schemas/Device.Ipv6/properties/name
            - /components/schemas/Bgp.V4RouteRange/properties/name
            - /components/schemas/Bgp.V6RouteRange/properties/name
            - /components/schemas/Bgp.CMacIpRange/properties/name
            - /components/schemas/Rsvp.LspIpv4Interface.P2PIngressIpv4Lsp/properties/name
            - /components/schemas/Isis.V4RouteRange/properties/name
            - /components/schemas/Isis.V6RouteRange/properties/name
            - /components/schemas/Ospfv2.V4RouteRange/properties/name
            - /components/schemas/Ospfv3.V6RouteRange/properties/name
            - /components/schemas/Device.Dhcpv4client/properties/name
            - /components/schemas/Device.Dhcpv6client/properties/name
        rx_names:
          type: array
          items:
            description: |-
              The unique name of an emulated device that will be receiving.
            type: string
          x-constraint:
          - /components/schemas/Device.Ethernet/properties/name
          - /components/schemas/Device.Ipv4/properties/name
          - /components/schemas/Device.Ipv6/properties/name
          - /components/schemas/Bgp.V4RouteRange/properties/name
          - /components/schemas/Bgp.V6RouteRange/properties/name
          - /components/schemas/Bgp.CMacIpRange/properties/name
          - /components/schemas/Rsvp.LspIpv4Interface.P2PEgressIpv4Lsp/properties/name
          - /components/schemas/Isis.V4RouteRange/properties/name
          - /components/schemas/Isis.V6RouteRange/properties/name
          - /components/schemas/Device.Dhcpv4client/properties/name
          - /components/schemas/Ospfv2.V4RouteRange/properties/name
          - /components/schemas/Ospfv3.V6RouteRange/properties/name
          - /components/schemas/Device.Dhcpv6client/properties/name
          example:
          - Eth 1
          - Eth 2
          - Eth 3
          - IPv4 1
          - IPv6 1
          - Bgp V4RouteRange 1
          - Bgp V6RouteRange 1
          x-field-uid: 3
          description: |
            TBD

            x-constraint:
            - /components/schemas/Device.Ethernet/properties/name
            - /components/schemas/Device.Ipv4/properties/name
            - /components/schemas/Device.Ipv6/properties/name
            - /components/schemas/Bgp.V4RouteRange/properties/name
            - /components/schemas/Bgp.V6RouteRange/properties/name
            - /components/schemas/Bgp.CMacIpRange/properties/name
            - /components/schemas/Rsvp.LspIpv4Interface.P2PEgressIpv4Lsp/properties/name
            - /components/schemas/Isis.V4RouteRange/properties/name
            - /components/schemas/Isis.V6RouteRange/properties/name
            - /components/schemas/Device.Dhcpv4client/properties/name
            - /components/schemas/Ospfv2.V4RouteRange/properties/name
            - /components/schemas/Ospfv3.V6RouteRange/properties/name
            - /components/schemas/Device.Dhcpv6client/properties/name
    Flow.Header:
      description: |-
        Configuration for all traffic packet headers
      type: object
      properties:
        choice:
          description: "The available types of flow headers. If one is not provided\
            \ the \ndefault ethernet packet header MUST be provided."
          type: string
          default: ethernet
          x-field-uid: 1
          x-enum:
            custom:
              x-field-uid: 1
            ethernet:
              x-field-uid: 2
            vlan:
              x-field-uid: 3
            vxlan:
              x-field-uid: 4
            ipv4:
              x-field-uid: 5
            ipv6:
              x-field-uid: 6
            pfcpause:
              x-field-uid: 7
            ethernetpause:
              x-field-uid: 8
            tcp:
              x-field-uid: 9
            udp:
              x-field-uid: 10
            gre:
              x-field-uid: 11
            gtpv1:
              x-field-uid: 12
            gtpv2:
              x-field-uid: 13
            arp:
              x-field-uid: 14
            icmp:
              x-field-uid: 15
            icmpv6:
              x-field-uid: 16
            ppp:
              x-field-uid: 17
            igmpv1:
              x-field-uid: 18
            mpls:
              x-field-uid: 19
            snmpv2c:
              x-field-uid: 20
            rsvp:
              x-field-uid: 21
            macsec:
              x-field-uid: 22
          enum:
          - custom
          - ethernet
          - vlan
          - vxlan
          - ipv4
          - ipv6
          - pfcpause
          - ethernetpause
          - tcp
          - udp
          - gre
          - gtpv1
          - gtpv2
          - arp
          - icmp
          - icmpv6
          - ppp
          - igmpv1
          - mpls
          - snmpv2c
          - rsvp
          - macsec
        custom:
          $ref: '#/components/schemas/Flow.Custom'
          x-field-uid: 2
        ethernet:
          $ref: '#/components/schemas/Flow.Ethernet'
          x-field-uid: 3
        vlan:
          $ref: '#/components/schemas/Flow.Vlan'
          x-field-uid: 4
        vxlan:
          $ref: '#/components/schemas/Flow.Vxlan'
          x-field-uid: 5
        ipv4:
          $ref: '#/components/schemas/Flow.Ipv4'
          x-field-uid: 6
        ipv6:
          $ref: '#/components/schemas/Flow.Ipv6'
          x-field-uid: 7
        pfcpause:
          $ref: '#/components/schemas/Flow.PfcPause'
          x-field-uid: 8
        ethernetpause:
          $ref: '#/components/schemas/Flow.EthernetPause'
          x-field-uid: 9
        tcp:
          $ref: '#/components/schemas/Flow.Tcp'
          x-field-uid: 10
        udp:
          $ref: '#/components/schemas/Flow.Udp'
          x-field-uid: 11
        gre:
          $ref: '#/components/schemas/Flow.Gre'
          x-field-uid: 12
        gtpv1:
          $ref: '#/components/schemas/Flow.Gtpv1'
          x-field-uid: 13
        gtpv2:
          $ref: '#/components/schemas/Flow.Gtpv2'
          x-field-uid: 14
        arp:
          $ref: '#/components/schemas/Flow.Arp'
          x-field-uid: 15
        icmp:
          $ref: '#/components/schemas/Flow.Icmp'
          x-field-uid: 16
        icmpv6:
          $ref: '#/components/schemas/Flow.Icmpv6'
          x-field-uid: 17
        ppp:
          $ref: '#/components/schemas/Flow.Ppp'
          x-field-uid: 18
        igmpv1:
          $ref: '#/components/schemas/Flow.Igmpv1'
          x-field-uid: 19
        mpls:
          $ref: '#/components/schemas/Flow.Mpls'
          x-field-uid: 20
        snmpv2c:
          $ref: '#/components/schemas/Flow.Snmpv2c'
          x-field-uid: 21
        rsvp:
          $ref: '#/components/schemas/Flow.Rsvp'
          x-field-uid: 22
        macsec:
          $ref: '#/components/schemas/Flow.Macsec'
          x-field-uid: 23
    Flow.Custom:
      type: object
      description: |-
        Custom packet header
      required:
      - bytes
      properties:
        bytes:
          description: |-
            A custom packet header defined as a string of hex bytes. The string MUST contain sequence of valid hex bytes. Spaces or colons can be part of the bytes but will be discarded. This packet header can be used in multiple places in the packet.
          type: string
          pattern: '^[A-Fa-f0-9: ]+$'
          x-field-uid: 1
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits
            in a corresponding header field for metrics per each applicable value.
            These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Flow.Custom.MetricTag'
          x-field-uid: 2
    Flow.Custom.MetricTag:
      description: |-
        Metric Tag can be used to enable tracking portion of or all bits
        in a corresponding header field for metrics per each applicable value.
        These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable
            for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset
            of corresponding header field
          type: integer
          format: uint32
          default: 1
          minimum: 1
          x-field-uid: 3
    Flow.Ethernet:
      description: |-
        Ethernet packet header
      type: object
      properties:
        dst:
          x-field-uid: 1
          $ref: '#/components/schemas/Pattern.Flow.Ethernet.Dst'
        src:
          x-field-uid: 2
          $ref: '#/components/schemas/Pattern.Flow.Ethernet.Src'
        ether_type:
          x-field-uid: 3
          $ref: '#/components/schemas/Pattern.Flow.Ethernet.EtherType'
        pfc_queue:
          x-field-uid: 4
          $ref: '#/components/schemas/Pattern.Flow.Ethernet.PfcQueue'
    Flow.Vlan:
      description: |-
        VLAN packet header
      type: object
      properties:
        priority:
          x-field-uid: 1
          $ref: '#/components/schemas/Pattern.Flow.Vlan.Priority'
        cfi:
          x-field-uid: 2
          $ref: '#/components/schemas/Pattern.Flow.Vlan.Cfi'
        id:
          x-field-uid: 3
          $ref: '#/components/schemas/Pattern.Flow.Vlan.Id'
        tpid:
          x-field-uid: 4
          $ref: '#/components/schemas/Pattern.Flow.Vlan.Tpid'
    Flow.Vxlan:
      description: |-
        VXLAN packet header
      type: object
      properties:
        flags:
          x-field-uid: 1
          $ref: '#/components/schemas/Pattern.Flow.Vxlan.Flags'
        reserved0:
          x-field-uid: 2
          $ref: '#/components/schemas/Pattern.Flow.Vxlan.Reserved0'
        vni:
          x-field-uid: 3
          $ref: '#/components/schemas/Pattern.Flow.Vxlan.Vni'
        reserved1:
          x-field-uid: 4
          $ref: '#/components/schemas/Pattern.Flow.Vxlan.Reserved1'
    Flow.Ipv4:
      description: |-
        IPv4 packet header
      type: object
      properties:
        version:
          x-field-uid: 1
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Version'
        header_length:
          x-field-uid: 2
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.HeaderLength'
        priority:
          $ref: '#/components/schemas/Flow.Ipv4.Priority'
          x-field-uid: 3
        total_length:
          x-field-uid: 4
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.TotalLength'
        identification:
          x-field-uid: 5
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Identification'
        reserved:
          x-field-uid: 6
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Reserved'
        dont_fragment:
          x-field-uid: 7
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.DontFragment'
        more_fragments:
          x-field-uid: 8
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.MoreFragments'
        fragment_offset:
          x-field-uid: 9
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.FragmentOffset'
        time_to_live:
          x-field-uid: 10
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.TimeToLive'
        protocol:
          x-field-uid: 11
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Protocol'
        header_checksum:
          x-field-uid: 12
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.HeaderChecksum'
        src:
          x-field-uid: 13
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Src'
        dst:
          x-field-uid: 14
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Dst'
        options:
          type: array
          minItems: 0
          items:
            $ref: '#/components/schemas/Flow.Ipv4.Options'
          x-field-uid: 15
    Flow.Ipv4.Options:
      description: "IPv4 options are optional extensions for the IPv4 header that\
        \ can be utilised to provide additional information about the IPv4 datagram.\
        \  It is encoded as a series of type, length and value attributes.  The IP\
        \ header length MUST be increased to accommodate the extra bytes needed to\
        \ encode the IP options. The length of the all options included to a IPv4\
        \ header should not exceed 40 bytes since IPv4 Header length (4 bits) can\
        \ at max specify 15 4-word octets for a total of 60 bytes which includes 20\
        \ bytes needed for mandatory attributes of the IPv4 header. If the user adds\
        \ multiples IPv4 options that exceeds 40 bytes and specify header length as\
        \ \"auto\", implementation should throw error. Currently IP options supported\
        \ are: 1. router_alert option allows devices to intercept packets not addressed\
        \ to them directly as defined in RFC2113. 2. custom option is provided to\
        \ configure user defined IP options as needed. "
      type: object
      properties:
        choice:
          type: string
          default: router_alert
          x-field-uid: 1
          x-enum:
            router_alert:
              x-field-uid: 1
            custom:
              x-field-uid: 2
          enum:
          - router_alert
          - custom
        custom:
          $ref: '#/components/schemas/Flow.Ipv4Options.Custom'
          x-field-uid: 2
    Flow.Ipv4Options.Custom:
      description: |-
        User defined IP options to be appended to the IPv4 header.
      type: object
      properties:
        type:
          $ref: '#/components/schemas/Flow.Ipv4Options.Custom.Type'
          x-field-uid: 1
        length:
          $ref: '#/components/schemas/Flow.Ipv4Options.Custom.Length'
          x-field-uid: 2
        value:
          description: |-
            Value of the option field should not excced 38 bytes since maximum 40 bytes can be added as options in IPv4 header. For type and length requires 2 bytes, hence maximum of 38 bytes are expected. Maximum length of this attribute is 76 (38 * 2 hex character per byte).
          type: string
          format: hex
          minLength: 0
          maxLength: 76
          default: '0000'
          x-field-uid: 3
    Flow.Ipv4Options.Custom.Type:
      description: |-
        Type options for custom options.
      type: object
      properties:
        copied_flag:
          x-field-uid: 1
          $ref: '#/components/schemas/Pattern.Flow.Ipv4Options.Custom.Type.CopiedFlag'
        option_class:
          x-field-uid: 2
          $ref: '#/components/schemas/Pattern.Flow.Ipv4Options.Custom.Type.OptionClass'
        option_number:
          x-field-uid: 3
          $ref: '#/components/schemas/Pattern.Flow.Ipv4Options.Custom.Type.OptionNumber'
    Flow.Ipv4Options.Custom.Length:
      description: |-
        Length for custom options.
      type: object
      properties:
        choice:
          description: |-
            auto or configured value.
          type: string
          default: auto
          x-field-uid: 1
          x-enum:
            auto:
              x-field-uid: 1
            value:
              x-field-uid: 2
          enum:
          - auto
          - value
        auto:
          description: |-
            The OTG implementation can provide a system generated value for this property. If the OTG is unable to generate a value the default value must be used.
          type: integer
          format: uint32
          default: 0
          x-field-uid: 2
        value:
          type: integer
          format: uint32
          default: 0
          x-field-uid: 3
    Flow.Ipv4.Priority:
      description: |-
        A container for ipv4 raw, tos, dscp ip priorities.
      type: object
      properties:
        choice:
          type: string
          default: dscp
          x-field-uid: 1
          x-enum:
            raw:
              x-field-uid: 1
            tos:
              x-field-uid: 2
            dscp:
              x-field-uid: 3
          enum:
          - raw
          - tos
          - dscp
        raw:
          x-field-uid: 2
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Priority.Raw'
        tos:
          $ref: '#/components/schemas/Flow.Ipv4.Tos'
          x-field-uid: 3
        dscp:
          $ref: '#/components/schemas/Flow.Ipv4.Dscp'
          x-field-uid: 4
    Flow.Ipv4.Dscp:
      description: |-
        Differentiated services code point (DSCP) packet field.
      type: object
      properties:
        phb:
          x-field-uid: 1
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Dscp.Phb'
        ecn:
          x-field-uid: 2
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Dscp.Ecn'
    Flow.Ipv4.Tos:
      description: |-
        Type of service (TOS) packet field.
      type: object
      properties:
        precedence:
          x-field-uid: 1
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Precedence'
        delay:
          x-field-uid: 2
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Delay'
        throughput:
          x-field-uid: 3
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Throughput'
        reliability:
          x-field-uid: 4
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Reliability'
        monetary:
          x-field-uid: 5
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Monetary'
        unused:
          x-field-uid: 6
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Unused'
    Flow.Ipv4.Auto:
      description: |-
        The OTG implementation can provide a system generated, value for this property.
      type: object
      required:
      - choice
      properties:
        choice:
          description: |-
            The method to be used to provide the system generated value.

            The dhcp option populates the field based on the dynamic IPv4 address that has been assigned to the DHCPv4 client by a DHCPv4 server.
          type: string
          x-enum:
            dhcp:
              x-field-uid: 1
          x-field-uid: 1
          enum:
          - dhcp
    Flow.Ipv6:
      description: |-
        IPv6 packet header
      type: object
      properties:
        version:
          x-field-uid: 1
          $ref: '#/components/schemas/Pattern.Flow.Ipv6.Version'
        traffic_class:
          x-field-uid: 2
          $ref: '#/components/schemas/Pattern.Flow.Ipv6.TrafficClass'
        flow_label:
          x-field-uid: 3
          $ref: '#/components/schemas/Pattern.Flow.Ipv6.FlowLabel'
        payload_length:
          x-field-uid: 4
          $ref: '#/components/schemas/Pattern.Flow.Ipv6.PayloadLength'
        next_header:
          x-field-uid: 5
          $ref: '#/components/schemas/Pattern.Flow.Ipv6.NextHeader'
        hop_limit:
          x-field-uid: 6
          $ref: '#/components/schemas/Pattern.Flow.Ipv6.HopLimit'
        src:
          x-field-uid: 7
          $ref: '#/components/schemas/Pattern.Flow.Ipv6.Src'
        dst:
          x-field-uid: 8
          $ref: '#/components/schemas/Pattern.Flow.Ipv6.Dst'
    Flow.Ipv6.Auto:
      description: |-
        The OTG implementation can provide a system generated, value for this property.
      type: object
      required:
      - choice
      properties:
        choice:
          description: "The method to be used to provide the system generated value.\n\
            The dhcp option populates the field based on the dynamic IPv6 address\
            \ that has been assigned to the DHCPv6 client \nby a DHCPv6 server."
          type: string
          x-enum:
            dhcp:
              x-field-uid: 1
          x-field-uid: 1
          enum:
          - dhcp
    Flow.PfcPause:
      description: |-
        IEEE 802.1Qbb PFC Pause packet header.
      type: object
      properties:
        dst:
          x-field-uid: 1
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.Dst'
        src:
          x-field-uid: 2
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.Src'
        ether_type:
          x-field-uid: 3
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.EtherType'
        control_op_code:
          x-field-uid: 4
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.ControlOpCode'
        class_enable_vector:
          x-field-uid: 5
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.ClassEnableVector'
        pause_class_0:
          x-field-uid: 6
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass0'
        pause_class_1:
          x-field-uid: 7
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass1'
        pause_class_2:
          x-field-uid: 8
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass2'
        pause_class_3:
          x-field-uid: 9
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass3'
        pause_class_4:
          x-field-uid: 10
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass4'
        pause_class_5:
          x-field-uid: 11
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass5'
        pause_class_6:
          x-field-uid: 12
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass6'
        pause_class_7:
          x-field-uid: 13
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass7'
    Flow.EthernetPause:
      description: |-
        IEEE 802.3x global ethernet pause packet header
      type: object
      properties:
        dst:
          x-field-uid: 1
          $ref: '#/components/schemas/Pattern.Flow.EthernetPause.Dst'
        src:
          x-field-uid: 2
          $ref: '#/components/schemas/Pattern.Flow.EthernetPause.Src'
        ether_type:
          x-field-uid: 3
          $ref: '#/components/schemas/Pattern.Flow.EthernetPause.EtherType'
        control_op_code:
          x-field-uid: 4
          $ref: '#/components/schemas/Pattern.Flow.EthernetPause.ControlOpCode'
        time:
          x-field-uid: 5
          $ref: '#/components/schemas/Pattern.Flow.EthernetPause.Time'
    Flow.Tcp:
      description: |-
        TCP packet header
      type: object
      properties:
        src_port:
          x-field-uid: 1
          $ref: '#/components/schemas/Pattern.Flow.Tcp.SrcPort'
        dst_port:
          x-field-uid: 2
          $ref: '#/components/schemas/Pattern.Flow.Tcp.DstPort'
        seq_num:
          x-field-uid: 3
          $ref: '#/components/schemas/Pattern.Flow.Tcp.SeqNum'
        ack_num:
          x-field-uid: 4
          $ref: '#/components/schemas/Pattern.Flow.Tcp.AckNum'
        data_offset:
          x-field-uid: 5
          $ref: '#/components/schemas/Pattern.Flow.Tcp.DataOffset'
        ecn_ns:
          x-field-uid: 6
          $ref: '#/components/schemas/Pattern.Flow.Tcp.EcnNs'
        ecn_cwr:
          x-field-uid: 7
          $ref: '#/components/schemas/Pattern.Flow.Tcp.EcnCwr'
        ecn_echo:
          x-field-uid: 8
          $ref: '#/components/schemas/Pattern.Flow.Tcp.EcnEcho'
        ctl_urg:
          x-field-uid: 9
          $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlUrg'
        ctl_ack:
          x-field-uid: 10
          $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlAck'
        ctl_psh:
          x-field-uid: 11
          $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlPsh'
        ctl_rst:
          x-field-uid: 12
          $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlRst'
        ctl_syn:
          x-field-uid: 13
          $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlSyn'
        ctl_fin:
          x-field-uid: 14
          $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlFin'
        window:
          x-field-uid: 15
          $ref: '#/components/schemas/Pattern.Flow.Tcp.Window'
        checksum:
          x-field-uid: 16
          $ref: '#/components/schemas/Pattern.Flow.Tcp.Checksum'
    Flow.Udp:
      description: |-
        UDP packet header
      type: object
      properties:
        src_port:
          x-field-uid: 1
          $ref: '#/components/schemas/Pattern.Flow.Udp.SrcPort'
        dst_port:
          x-field-uid: 2
          $ref: '#/components/schemas/Pattern.Flow.Udp.DstPort'
        length:
          x-field-uid: 3
          $ref: '#/components/schemas/Pattern.Flow.Udp.Length'
        checksum:
          x-field-uid: 4
          $ref: '#/components/schemas/Pattern.Flow.Udp.Checksum'
    Flow.Gre:
      description: |-
        Standard GRE packet header (RFC2784)
      type: object
      properties:
        checksum_present:
          x-field-uid: 1
          $ref: '#/components/schemas/Pattern.Flow.Gre.ChecksumPresent'
        reserved0:
          x-field-uid: 2
          $ref: '#/components/schemas/Pattern.Flow.Gre.Reserved0'
        version:
          x-field-uid: 3
          $ref: '#/components/schemas/Pattern.Flow.Gre.Version'
        protocol:
          x-field-uid: 4
          $ref: '#/components/schemas/Pattern.Flow.Gre.Protocol'
        checksum:
          x-field-uid: 5
          $ref: '#/components/schemas/Pattern.Flow.Gre.Checksum'
        reserved1:
          x-field-uid: 6
          $ref: '#/components/schemas/Pattern.Flow.Gre.Reserved1'
    Flow.Gtpv1:
      description: |-
        GTPv1 packet header
      type: object
      properties:
        version:
          x-field-uid: 1
          $ref: '#/components/schemas/Pattern.Flow.Gtpv1.Version'
        protocol_type:
          x-field-uid: 2
          $ref: '#/components/schemas/Pattern.Flow.Gtpv1.ProtocolType'
        reserved:
          x-field-uid: 3
          $ref: '#/components/schemas/Pattern.Flow.Gtpv1.Reserved'
        e_flag:
          x-field-uid: 4
          $ref: '#/components/schemas/Pattern.Flow.Gtpv1.EFlag'
        s_flag:
          x-field-uid: 5
          $ref: '#/components/schemas/Pattern.Flow.Gtpv1.SFlag'
        pn_flag:
          x-field-uid: 6
          $ref: '#/components/schemas/Pattern.Flow.Gtpv1.PnFlag'
        message_type:
          x-field-uid: 7
          $ref: '#/components/schemas/Pattern.Flow.Gtpv1.MessageType'
        message_length:
          x-field-uid: 8
          $ref: '#/components/schemas/Pattern.Flow.Gtpv1.MessageLength'
        teid:
          x-field-uid: 9
          $ref: '#/components/schemas/Pattern.Flow.Gtpv1.Teid'
        squence_number:
          x-field-uid: 10
          $ref: '#/components/schemas/Pattern.Flow.Gtpv1.SquenceNumber'
        n_pdu_number:
          x-field-uid: 11
          $ref: '#/components/schemas/Pattern.Flow.Gtpv1.NPduNumber'
        next_extension_header_type:
          x-field-uid: 12
          $ref: '#/components/schemas/Pattern.Flow.Gtpv1.NextExtensionHeaderType'
        extension_headers:
          description: |-
            A list of optional extension headers.
          type: array
          items:
            $ref: '#/components/schemas/Flow.GtpExtension'
          x-field-uid: 13
    Flow.GtpExtension:
      type: object
      properties:
        extension_length:
          x-field-uid: 1
          $ref: '#/components/schemas/Pattern.Flow.GtpExtension.ExtensionLength'
        contents:
          x-field-uid: 2
          $ref: '#/components/schemas/Pattern.Flow.GtpExtension.Contents'
        next_extension_header:
          x-field-uid: 3
          $ref: '#/components/schemas/Pattern.Flow.GtpExtension.NextExtensionHeader'
    Flow.Gtpv2:
      description: |-
        GTPv2 packet header
      type: object
      properties:
        version:
          x-field-uid: 1
          $ref: '#/components/schemas/Pattern.Flow.Gtpv2.Version'
        piggybacking_flag:
          x-field-uid: 2
          $ref: '#/components/schemas/Pattern.Flow.Gtpv2.PiggybackingFlag'
        teid_flag:
          x-field-uid: 3
          $ref: '#/components/schemas/Pattern.Flow.Gtpv2.TeidFlag'
        spare1:
          x-field-uid: 4
          $ref: '#/components/schemas/Pattern.Flow.Gtpv2.Spare1'
        message_type:
          x-field-uid: 5
          $ref: '#/components/schemas/Pattern.Flow.Gtpv2.MessageType'
        message_length:
          x-field-uid: 6
          $ref: '#/components/schemas/Pattern.Flow.Gtpv2.MessageLength'
        teid:
          x-field-uid: 7
          $ref: '#/components/schemas/Pattern.Flow.Gtpv2.Teid'
        sequence_number:
          x-field-uid: 8
          $ref: '#/components/schemas/Pattern.Flow.Gtpv2.SequenceNumber'
        spare2:
          x-field-uid: 9
          $ref: '#/components/schemas/Pattern.Flow.Gtpv2.Spare2'
    Flow.Arp:
      description: |-
        ARP packet header
      type: object
      properties:
        hardware_type:
          x-field-uid: 1
          $ref: '#/components/schemas/Pattern.Flow.Arp.HardwareType'
        protocol_type:
          x-field-uid: 2
          $ref: '#/components/schemas/Pattern.Flow.Arp.ProtocolType'
        hardware_length:
          x-field-uid: 3
          $ref: '#/components/schemas/Pattern.Flow.Arp.HardwareLength'
        protocol_length:
          x-field-uid: 4
          $ref: '#/components/schemas/Pattern.Flow.Arp.ProtocolLength'
        operation:
          x-field-uid: 5
          $ref: '#/components/schemas/Pattern.Flow.Arp.Operation'
        sender_hardware_addr:
          x-field-uid: 6
          $ref: '#/components/schemas/Pattern.Flow.Arp.SenderHardwareAddr'
        sender_protocol_addr:
          x-field-uid: 7
          $ref: '#/components/schemas/Pattern.Flow.Arp.SenderProtocolAddr'
        target_hardware_addr:
          x-field-uid: 8
          $ref: '#/components/schemas/Pattern.Flow.Arp.TargetHardwareAddr'
        target_protocol_addr:
          x-field-uid: 9
          $ref: '#/components/schemas/Pattern.Flow.Arp.TargetProtocolAddr'
    Flow.Icmp:
      description: |-
        ICMP packet header
      type: object
      properties:
        choice:
          type: string
          default: echo
          x-field-uid: 1
          x-enum:
            echo:
              x-field-uid: 1
          enum:
          - echo
        echo:
          $ref: '#/components/schemas/Flow.Icmp.Echo'
          x-field-uid: 2
    Flow.Icmp.Echo:
      description: |-
        Packet Header for ICMP echo request
      type: object
      properties:
        type:
          x-field-uid: 1
          $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.Type'
        code:
          x-field-uid: 2
          $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.Code'
        checksum:
          x-field-uid: 3
          $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.Checksum'
        identifier:
          x-field-uid: 4
          $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.Identifier'
        sequence_number:
          x-field-uid: 5
          $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.SequenceNumber'
    Flow.Icmpv6:
      description: |-
        ICMPv6 packet header
      type: object
      properties:
        choice:
          type: string
          default: echo
          x-field-uid: 1
          x-enum:
            echo:
              x-field-uid: 1
          enum:
          - echo
        echo:
          $ref: '#/components/schemas/Flow.Icmpv6.Echo'
          x-field-uid: 2
    Flow.Icmpv6.Echo:
      description: |-
        Packet Header for ICMPv6 Echo
      type: object
      properties:
        type:
          x-field-uid: 1
          $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.Type'
        code:
          x-field-uid: 2
          $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.Code'
        identifier:
          x-field-uid: 3
          $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.Identifier'
        sequence_number:
          x-field-uid: 4
          $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.SequenceNumber'
        checksum:
          x-field-uid: 5
          $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.Checksum'
    Flow.Ppp:
      description: |-
        PPP packet header
      type: object
      properties:
        address:
          x-field-uid: 1
          $ref: '#/components/schemas/Pattern.Flow.Ppp.Address'
        control:
          x-field-uid: 2
          $ref: '#/components/schemas/Pattern.Flow.Ppp.Control'
        protocol_type:
          x-field-uid: 3
          $ref: '#/components/schemas/Pattern.Flow.Ppp.ProtocolType'
    Flow.Igmpv1:
      description: |-
        IGMPv1 packet header
      type: object
      properties:
        version:
          x-field-uid: 1
          $ref: '#/components/schemas/Pattern.Flow.Igmpv1.Version'
        type:
          x-field-uid: 2
          $ref: '#/components/schemas/Pattern.Flow.Igmpv1.Type'
        unused:
          x-field-uid: 3
          $ref: '#/components/schemas/Pattern.Flow.Igmpv1.Unused'
        checksum:
          x-field-uid: 4
          $ref: '#/components/schemas/Pattern.Flow.Igmpv1.Checksum'
        group_address:
          x-field-uid: 5
          $ref: '#/components/schemas/Pattern.Flow.Igmpv1.GroupAddress'
    Flow.Mpls:
      description: |-
        MPLS packet header; When configuring multiple such headers, the count shall not exceed 20.
      type: object
      properties:
        label:
          x-field-uid: 1
          $ref: '#/components/schemas/Pattern.Flow.Mpls.Label'
        traffic_class:
          x-field-uid: 2
          $ref: '#/components/schemas/Pattern.Flow.Mpls.TrafficClass'
        bottom_of_stack:
          x-field-uid: 3
          $ref: '#/components/schemas/Pattern.Flow.Mpls.BottomOfStack'
        time_to_live:
          x-field-uid: 4
          $ref: '#/components/schemas/Pattern.Flow.Mpls.TimeToLive'
    Flow.Snmpv2c:
      description: |-
        SNMPv2C packet header as defined in RFC1901 and RFC3416.
      type: object
      required:
      - data
      properties:
        version:
          x-field-uid: 1
          $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.Version'
        community:
          description: |-
            It is an ASCII based octet string which identifies the SNMP community in which the sender and recipient of this message are located. It should match the read-only or read-write community string configured on the recipient for the PDU to be accepted.
          type: string
          maxLength: 10000
          default: community
          x-field-uid: 2
        data:
          $ref: '#/components/schemas/Flow.Snmpv2c.Data'
          x-field-uid: 3
    Flow.Snmpv2c.Data:
      description: |-
        This contains the body of the SNMPv2C message.

        - Encoding of subsequent fields follow ASN.1 specification.
          Refer: http://www.itu.int/ITU-T/asn1/
      type: object
      required:
      - choice
      properties:
        choice:
          type: string
          x-field-uid: 1
          x-enum:
            get_request:
              x-field-uid: 1
            get_next_request:
              x-field-uid: 2
            response:
              x-field-uid: 3
            set_request:
              x-field-uid: 4
            get_bulk_request:
              x-field-uid: 5
            inform_request:
              x-field-uid: 6
            snmpv2_trap:
              x-field-uid: 7
            report:
              x-field-uid: 8
          enum:
          - get_request
          - get_next_request
          - response
          - set_request
          - get_bulk_request
          - inform_request
          - snmpv2_trap
          - report
        get_request:
          $ref: '#/components/schemas/Flow.Snmpv2c.PDU'
          x-field-uid: 2
        get_next_request:
          $ref: '#/components/schemas/Flow.Snmpv2c.PDU'
          x-field-uid: 3
        response:
          $ref: '#/components/schemas/Flow.Snmpv2c.PDU'
          x-field-uid: 4
        set_request:
          $ref: '#/components/schemas/Flow.Snmpv2c.PDU'
          x-field-uid: 5
        get_bulk_request:
          $ref: '#/components/schemas/Flow.Snmpv2c.BulkPDU'
          x-field-uid: 6
        inform_request:
          $ref: '#/components/schemas/Flow.Snmpv2c.PDU'
          x-field-uid: 7
        snmpv2_trap:
          $ref: '#/components/schemas/Flow.Snmpv2c.PDU'
          x-field-uid: 8
        report:
          $ref: '#/components/schemas/Flow.Snmpv2c.PDU'
          x-field-uid: 9
    Flow.Snmpv2c.PDU:
      description: |-
        This contains the body of the SNMPv2C PDU.
      type: object
      properties:
        request_id:
          x-field-uid: 1
          $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.PDU.RequestId'
        error_status:
          description: |-
            The SNMP agent places an error code in this field in the response message if an error occurred processing the request.
          type: string
          default: no_error
          x-enum:
            no_error:
              x-field-uid: 1
            too_big:
              x-field-uid: 2
            no_such_name:
              x-field-uid: 3
            bad_value:
              x-field-uid: 4
            read_only:
              x-field-uid: 5
            gen_err:
              x-field-uid: 6
            no_access:
              x-field-uid: 7
            wrong_type:
              x-field-uid: 8
            wrong_length:
              x-field-uid: 9
            wrong_encoding:
              x-field-uid: 10
            wrong_value:
              x-field-uid: 11
            no_creation:
              x-field-uid: 12
            inconsistent_value:
              x-field-uid: 13
            resource_unavailable:
              x-field-uid: 14
            commit_failed:
              x-field-uid: 15
            undo_failed:
              x-field-uid: 16
            authorization_error:
              x-field-uid: 17
            not_writable:
              x-field-uid: 18
            inconsistent_name:
              x-field-uid: 19
          x-field-uid: 2
          enum:
          - no_error
          - too_big
          - no_such_name
          - bad_value
          - read_only
          - gen_err
          - no_access
          - wrong_type
          - wrong_length
          - wrong_encoding
          - wrong_value
          - no_creation
          - inconsistent_value
          - resource_unavailable
          - commit_failed
          - undo_failed
          - authorization_error
          - not_writable
          - inconsistent_name
        error_index:
          x-field-uid: 3
          $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.PDU.ErrorIndex'
        variable_bindings:
          description: |-
            A Sequence of variable_bindings.
          type: array
          items:
            $ref: '#/components/schemas/Flow.Snmpv2c.VariableBinding'
          x-field-uid: 4
    Flow.Snmpv2c.BulkPDU:
      description: |-
        The purpose of the GetBulkRequest-PDU is to request the transfer of a potentially large amount of data, including, but not limited to, the efficient and rapid retrieval of large tables.
      type: object
      properties:
        request_id:
          x-field-uid: 1
          $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.BulkPDU.RequestId'
        non_repeaters:
          x-field-uid: 2
          $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.BulkPDU.NonRepeaters'
        max_repetitions:
          x-field-uid: 3
          $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.BulkPDU.MaxRepetitions'
        variable_bindings:
          description: |-
            A Sequence of variable_bindings.
          type: array
          items:
            $ref: '#/components/schemas/Flow.Snmpv2c.VariableBinding'
          x-field-uid: 4
    Flow.Snmpv2c.VariableBinding:
      description: |-
        A Sequence of two fields, an object_identifier and the value for/from that object_identifier.
      type: object
      properties:
        object_identifier:
          x-field-uid: 1
          description: "The Object Identifier points to a particular parameter in\
            \ the SNMP agent. \n- Encoding of this field follows RFC2578(section 3.5)\
            \ and ASN.1 X.690(section 8.1.3.6) specification.\n  Refer: http://www.itu.int/ITU-T/asn1/\n\
            - According to BER, the first two numbers of any OID (x.y) are encoded\
            \ as one value using the formula (40*x)+y. \n  Example, the first two\
            \ numbers of an SNMP OID 1.3... are encoded as 43 or 0x2B, because (40*1)+3\
            \ = 43. \n- After the first two numbers are encoded, the subsequent numbers\
            \ in the OID are each encoded as a byte. \n- However, a special rule is\
            \ required for large numbers because one byte can only represent a number\
            \ from 0-127. \n- The rule for large numbers states that only the lower\
            \ 7 bits in the byte are used for holding the value (0-127). \n- The highest\
            \ order bit(8th) is used as a flag to indicate that this number spans\
            \ more than one byte. Therefore, any number over 127 must be encoded using\
            \ more than one byte. \n  - Example, the number 2680 in the OID '1.3.6.1.4.1.2680.1.2.7.3.2.0'\
            \ cannot be encoded using a single byte. \n    According to this rule,\
            \ the number 2680 must be encoded as 0x94 0x78. \n    Since the most significant\
            \ bit is set in the first byte (0x94), it indicates that number spans\
            \ to the next byte.\n    Since the most significant bit is not set in\
            \ the next byte (0x78), it indicates that the number ends at the second\
            \ byte.\n    The value is derived by appending 7 bits from each of the\
            \ concatenated bytes i.e (0x14 *128^1) + (0x78 * 128^0) = 2680."
          type: string
          format: oid
          default: '0.1'
        value:
          $ref: '#/components/schemas/Flow.Snmpv2c.VariableBindingValue'
          x-field-uid: 2
    Flow.Snmpv2c.VariableBindingValue:
      description: |-
        The value for the object_identifier as per RFC2578.
      type: object
      properties:
        choice:
          type: string
          default: no_value
          x-field-uid: 1
          x-enum:
            no_value:
              x-field-uid: 1
            integer_value:
              x-field-uid: 2
            string_value:
              x-field-uid: 3
            object_identifier_value:
              x-field-uid: 4
            ip_address_value:
              x-field-uid: 5
            counter_value:
              x-field-uid: 6
            timeticks_value:
              x-field-uid: 7
            arbitrary_value:
              x-field-uid: 8
            big_counter_value:
              x-field-uid: 9
            unsigned_integer_value:
              x-field-uid: 10
          enum:
          - no_value
          - integer_value
          - string_value
          - object_identifier_value
          - ip_address_value
          - counter_value
          - timeticks_value
          - arbitrary_value
          - big_counter_value
          - unsigned_integer_value
        integer_value:
          x-field-uid: 2
          $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.VariableBindingValue.IntegerValue'
        string_value:
          $ref: '#/components/schemas/Flow.Snmpv2c.VariableBindingStringValue'
          x-field-uid: 3
        object_identifier_value:
          x-field-uid: 4
          description: "The Object Identifier points to a particular parameter in\
            \ the SNMP agent. \n- Encoding of this field follows RFC2578(section 3.5)\
            \ and ASN.1 X.690(section 8.1.3.6) specification.\n  Refer: http://www.itu.int/ITU-T/asn1/\n\
            - According to BER, the first two numbers of any OID (x.y) are encoded\
            \ as one value using the formula (40*x)+y. \n  Example, the first two\
            \ numbers of an SNMP OID 1.3... are encoded as 43 or 0x2B, because (40*1)+3\
            \ = 43. \n- After the first two numbers are encoded, the subsequent numbers\
            \ in the OID are each encoded as a byte. \n- However, a special rule is\
            \ required for large numbers because one byte can only represent a number\
            \ from 0-127. \n- The rule for large numbers states that only the lower\
            \ 7 bits in the byte are used for holding the value (0-127). \n- The highest\
            \ order bit(8th) is used as a flag to indicate that this number spans\
            \ more than one byte. Therefore, any number over 127 must be encoded using\
            \ more than one byte. \n  - Example, the number 2680 in the OID '1.3.6.1.4.1.2680.1.2.7.3.2.0'\
            \ cannot be encoded using a single byte. \n    According to this rule,\
            \ the number 2680 must be encoded as 0x94 0x78. \n    Since the most significant\
            \ bit is set in the first byte (0x94), it indicates that number spans\
            \ to the next byte.\n    Since the most significant bit is not set in\
            \ the next byte (0x78), it indicates that the number ends at the second\
            \ byte.\n    The value is derived by appending 7 bits from each of the\
            \ concatenated bytes i.e (0x14 *128^1) + (0x78 * 128^0) = 2680."
          type: string
          format: oid
          default: '0.1'
        ip_address_value:
          x-field-uid: 5
          $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.VariableBindingValue.IpAddressValue'
        counter_value:
          x-field-uid: 6
          $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.VariableBindingValue.CounterValue'
        timeticks_value:
          x-field-uid: 7
          $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.VariableBindingValue.TimeticksValue'
        arbitrary_value:
          description: |-
            It contains the hex bytes of the value to be sent.  As of now it is restricted to 10000 bytes.
          type: string
          format: hex
          maxLength: 10000
          default: '00'
          x-field-uid: 8
        big_counter_value:
          x-field-uid: 9
          $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.VariableBindingValue.BigCounterValue'
        unsigned_integer_value:
          x-field-uid: 10
          $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.VariableBindingValue.UnsignedIntegerValue'
    Flow.Snmpv2c.VariableBindingStringValue:
      type: object
      description: |-
        It contains the raw/ascii string value to be sent.
      properties:
        choice:
          type: string
          default: ascii
          x-field-uid: 1
          x-enum:
            ascii:
              x-field-uid: 1
            raw:
              x-field-uid: 2
          enum:
          - ascii
          - raw
        ascii:
          description: |-
            It contains the ASCII string to be sent.  As of now it is restricted to 10000 bytes.
          type: string
          maxLength: 10000
          default: ascii
          x-field-uid: 2
        raw:
          description: |-
            It contains the hex string to be sent.  As of now it is restricted to 10000 bytes.
          type: string
          format: hex
          maxLength: 10000
          default: '00'
          x-field-uid: 3
    Flow.Rsvp:
      description: |-
        RSVP packet header as defined in RFC2205 and RFC3209. Currently only supported message type is "Path" with mandatory objects and sub-objects.
      type: object
      properties:
        version:
          description: |-
            RSVP Protocol Version.
          type: integer
          format: uint32
          default: 1
          maximum: 15
          x-field-uid: 1
        flag:
          description: |-
            Flag, 0x01-0x08: Reserved.
          type: string
          default: not_refresh_reduction_capable
          x-enum:
            not_refresh_reduction_capable:
              x-field-uid: 1
            refresh_reduction_capable:
              x-field-uid: 2
          x-field-uid: 2
          enum:
          - not_refresh_reduction_capable
          - refresh_reduction_capable
        rsvp_checksum:
          x-field-uid: 3
          $ref: '#/components/schemas/Pattern.Flow.Rsvp.RsvpChecksum'
        time_to_live:
          x-field-uid: 4
          $ref: '#/components/schemas/Pattern.Flow.Rsvp.TimeToLive'
        reserved:
          x-field-uid: 5
          $ref: '#/components/schemas/Pattern.Flow.Rsvp.Reserved'
        rsvp_length:
          description: |-
            The sum of the lengths of the common header and all objects included in the message.
          $ref: '#/components/schemas/Flow.RSVP.Length'
          x-field-uid: 6
        message_type:
          description: |-
            An 8-bit number that identifies the function of the RSVP message. There are aound 20 message types defined in https://www.iana.org/assignments/rsvp-parameters/rsvp-parameters.xhtml#rsvp-parameters-2 . Among these presently supported is "Path"(value: 1) message type.
          $ref: '#/components/schemas/Flow.RSVP.Message'
          x-field-uid: 7
    Flow.RSVP.Length:
      type: object
      properties:
        choice:
          description: |-
            auto or configured value.
          type: string
          default: auto
          x-field-uid: 1
          x-enum:
            auto:
              x-field-uid: 1
            value:
              x-field-uid: 2
          enum:
          - auto
          - value
        auto:
          description: |-
            The OTG implementation will provide a system generated value for this property.  If the OTG implementation is unable to generate a value the default value must be used.
          type: integer
          format: uint32
          default: 0
          x-field-uid: 2
        value:
          type: integer
          format: uint32
          maximum: 65535
          default: 0
          x-field-uid: 3
    Flow.RSVP.Message:
      type: object
      properties:
        choice:
          type: string
          default: path
          x-enum:
            path:
              x-field-uid: 1
          x-field-uid: 1
          enum:
          - path
        path:
          $ref: '#/components/schemas/Flow.RSVP.PathMessage'
          x-field-uid: 2
    Flow.RSVP.PathMessage:
      description: |-
        "Path" message requires the following list of objects in order as defined in https://www.rfc-editor.org/rfc/rfc3209.html#page-15: 1. SESSION 2. RSVP_HOP 3. TIME_VALUES 4. EXPLICIT_ROUTE [optional] 5. LABEL_REQUEST 6. SESSION_ATTRIBUTE [optional] 7. SENDER_TEMPLATE 8. SENDER_TSPEC 9. RECORD_ROUTE [optional]
      type: object
      properties:
        objects:
          description: |-
            "Path" message requires atleast SESSION, RSVP_HOP, TIME_VALUES, LABEL_REQUEST, SENDER_TEMPLATE and SENDER_TSPEC objects in order.
          type: array
          items:
            $ref: '#/components/schemas/Flow.RSVP.PathObjects'
          x-field-uid: 1
    Flow.RSVP.PathObjects:
      description: |-
        Every RSVP object encapsulated in an RSVP message consists of a 32-bit word header and the object's contents.
      type: object
      properties:
        class_num:
          $ref: '#/components/schemas/Flow.RSVP.PathObjectsClass'
          x-field-uid: 1
    Flow.RSVPObject.Length:
      type: object
      properties:
        choice:
          description: |-
            auto or configured value.
          type: string
          default: auto
          x-field-uid: 1
          x-enum:
            auto:
              x-field-uid: 1
            value:
              x-field-uid: 2
          enum:
          - auto
          - value
        auto:
          description: |-
            The OTG implementation will provide a system generated value for this property.  If the OTG implementation is unable to generate a value the default value must be used.
          type: integer
          format: uint32
          default: 4
          x-field-uid: 2
        value:
          type: integer
          format: uint32
          minimum: 4
          maximum: 65535
          default: 4
          x-field-uid: 3
    Flow.RSVP.PathObjectsClass:
      description: |-
        The class number is used to identify the class of an object. Defined in https://www.iana.org/assignments/rsvp-parameters/rsvp-parameters.xhtml#rsvp-parameters-4 . Curently supported class numbers are for "Path" message type. "Path" message: Supported Class numbers and it's value: SESSION: 1, RSVP_HOP: 3, TIME_VALUES: 5, EXPLICIT_ROUTE: 20, LABEL_REQUEST: 19, SESSION_ATTRIBUTE: 207, SENDER_TEMPLATE: 11, SENDER_TSPEC: 12, RECORD_ROUTE: 21, Custom: User defined bytes based on class and c-types not supported in above options.
      type: object
      required:
      - choice
      properties:
        choice:
          type: string
          x-field-uid: 1
          x-enum:
            session:
              x-field-uid: 1
            rsvp_hop:
              x-field-uid: 2
            time_values:
              x-field-uid: 3
            explicit_route:
              x-field-uid: 4
            label_request:
              x-field-uid: 5
            session_attribute:
              x-field-uid: 6
            sender_template:
              x-field-uid: 7
            sender_tspec:
              x-field-uid: 8
            record_route:
              x-field-uid: 9
            custom:
              x-field-uid: 10
          enum:
          - session
          - rsvp_hop
          - time_values
          - explicit_route
          - label_request
          - session_attribute
          - sender_template
          - sender_tspec
          - record_route
          - custom
        session:
          $ref: '#/components/schemas/Flow.RSVP.PathObjectsClassSession'
          x-field-uid: 2
        rsvp_hop:
          $ref: '#/components/schemas/Flow.RSVP.PathObjectsClassRsvpHop'
          x-field-uid: 3
        time_values:
          $ref: '#/components/schemas/Flow.RSVP.PathObjectsClassTimeValues'
          x-field-uid: 4
        explicit_route:
          $ref: '#/components/schemas/Flow.RSVP.PathObjectsClassExplicitRoute'
          x-field-uid: 5
        label_request:
          $ref: '#/components/schemas/Flow.RSVP.PathObjectsClassLabelRequest'
          x-field-uid: 6
        session_attribute:
          $ref: '#/components/schemas/Flow.RSVP.PathObjectsClassSessionAttribute'
          x-field-uid: 7
        sender_template:
          $ref: '#/components/schemas/Flow.RSVP.PathObjectsClassSenderTemplate'
          x-field-uid: 8
        sender_tspec:
          $ref: '#/components/schemas/Flow.RSVP.PathObjectsClassSenderTspec'
          x-field-uid: 9
        record_route:
          $ref: '#/components/schemas/Flow.RSVP.PathObjectsClassRecordRoute'
          x-field-uid: 10
        custom:
          $ref: '#/components/schemas/Flow.RSVP.PathObjectsCustom'
          x-field-uid: 11
    Flow.RSVP.PathObjectsClassSession:
      description: |-
        C-Type is specific to a class num.
      type: object
      properties:
        length:
          description: |-
            A 16-bit field containing the total object length in bytes.  Must always be a multiple of 4 or at least 4.
          $ref: '#/components/schemas/Flow.RSVPObject.Length'
          x-field-uid: 1
        c_type:
          $ref: '#/components/schemas/Flow.RSVP.PathObjectsSessionCType'
          x-field-uid: 2
    Flow.RSVP.PathObjectsSessionCType:
      description: |-
        The body of an object corresponding to the class number and c-type. Currently supported c-type for SESSION object is LSP Tunnel IPv4 (7).
      type: object
      properties:
        choice:
          type: string
          x-field-uid: 1
          default: lsp_tunnel_ipv4
          x-enum:
            lsp_tunnel_ipv4:
              x-field-uid: 1
          enum:
          - lsp_tunnel_ipv4
        lsp_tunnel_ipv4:
          $ref: '#/components/schemas/Flow.RSVP.PathSessionLspTunnelIpv4'
          x-field-uid: 2
    Flow.RSVP.PathSessionLspTunnelIpv4:
      description: |-
        Class = SESSION, LSP_TUNNEL_IPv4 C-Type = 7.
      type: object
      properties:
        ipv4_tunnel_end_point_address:
          x-field-uid: 1
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSessionLspTunnelIpv4.Ipv4TunnelEndPointAddress'
        reserved:
          x-field-uid: 2
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSessionLspTunnelIpv4.Reserved'
        tunnel_id:
          x-field-uid: 3
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSessionLspTunnelIpv4.TunnelId'
        extended_tunnel_id:
          description: |-
            A 32-bit identifier used in the SESSION that remains constant over the life of the tunnel. Normally set to all zeros. Ingress nodes that wish to narrow the scope of a SESSION to the ingress-egress pair may place their IPv4 address here as a globally unique identifier.
          $ref: '#/components/schemas/Flow.RSVP.PathSessionExtTunnelId'
          x-field-uid: 4
    Flow.RSVP.PathSessionExtTunnelId:
      type: object
      properties:
        choice:
          description: |-
            32 bit integer or IPv4 address.
          type: string
          default: as_integer
          x-field-uid: 1
          x-enum:
            as_integer:
              x-field-uid: 1
            as_ipv4:
              x-field-uid: 2
          enum:
          - as_integer
          - as_ipv4
        as_integer:
          x-field-uid: 2
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSessionExtTunnelId.AsInteger'
        as_ipv4:
          x-field-uid: 3
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSessionExtTunnelId.AsIpv4'
    Flow.RSVP.PathObjectsClassRsvpHop:
      description: |-
        C-Type is specific to a class num.
      type: object
      properties:
        length:
          description: |-
            A 16-bit field containing the total object length in bytes.  Must always be a multiple of 4 or at least 4.
          $ref: '#/components/schemas/Flow.RSVPObject.Length'
          x-field-uid: 1
        c_type:
          $ref: '#/components/schemas/Flow.RSVP.PathObjectsRsvpHopCType'
          x-field-uid: 2
    Flow.RSVP.PathObjectsRsvpHopCType:
      description: |-
        Object for RSVP_HOP class. Currently supported c-type is IPv4 (1).
      type: object
      properties:
        choice:
          type: string
          x-field-uid: 1
          default: ipv4
          x-enum:
            ipv4:
              x-field-uid: 1
          enum:
          - ipv4
        ipv4:
          $ref: '#/components/schemas/Flow.RSVP.PathRsvpHopIpv4'
          x-field-uid: 2
    Flow.RSVP.PathRsvpHopIpv4:
      description: |-
        IPv4 RSVP_HOP object: Class = 3, C-Type = 1
      type: object
      properties:
        ipv4_address:
          x-field-uid: 1
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathRsvpHopIpv4.Ipv4Address'
        logical_interface_handle:
          x-field-uid: 2
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathRsvpHopIpv4.LogicalInterfaceHandle'
    Flow.RSVP.PathObjectsClassTimeValues:
      description: |-
        C-Type is specific to a class num.
      type: object
      properties:
        length:
          description: |-
            A 16-bit field containing the total object length in bytes.  Must always be a multiple of 4 or at least 4.
          $ref: '#/components/schemas/Flow.RSVPObject.Length'
          x-field-uid: 1
        c_type:
          $ref: '#/components/schemas/Flow.RSVP.PathObjectsTimeValuesCType'
          x-field-uid: 2
    Flow.RSVP.PathObjectsTimeValuesCType:
      description: |-
        Object for TIME_VALUES class. Currently supported c-type is Type 1 Time Value (1).
      type: object
      properties:
        choice:
          type: string
          x-field-uid: 1
          default: type_1
          x-enum:
            type_1:
              x-field-uid: 1
          enum:
          - type_1
        type_1:
          $ref: '#/components/schemas/Flow.RSVP.PathTimeValuesType1'
          x-field-uid: 2
    Flow.RSVP.PathTimeValuesType1:
      description: |-
        TIME_VALUES Object: Class = 5, C-Type = 1
      type: object
      properties:
        refresh_period_r:
          x-field-uid: 1
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathTimeValuesType1.RefreshPeriodR'
    Flow.RSVP.PathObjectsClassExplicitRoute:
      description: |-
        C-Type is specific to a class num.
      type: object
      properties:
        length:
          description: |-
            A 16-bit field containing the total object length in bytes.  Must always be a multiple of 4 or at least 4.
          $ref: '#/components/schemas/Flow.RSVPObject.Length'
          x-field-uid: 1
        c_type:
          $ref: '#/components/schemas/Flow.RSVP.PathObjectsClassExplicitRouteCType'
          x-field-uid: 2
    Flow.RSVP.PathObjectsClassExplicitRouteCType:
      description: |-
        Object for EXPLICIT_ROUTE class and c-type is Type 1 Explicit Route (1).
      type: object
      properties:
        choice:
          type: string
          default: type_1
          x-field-uid: 1
          x-enum:
            type_1:
              x-field-uid: 1
          enum:
          - type_1
        type_1:
          $ref: '#/components/schemas/Flow.RSVP.PathExplicitRouteType1'
          x-field-uid: 2
    Flow.RSVP.PathExplicitRouteType1:
      description: |-
        Type1 Explicit Route has subobjects. Currently supported subobjects are IPv4 prefix and Autonomous system number.
      type: object
      properties:
        subobjects:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/Flow.RSVP.Type1ExplicitRouteSubobjects'
          x-field-uid: 1
    Flow.RSVP.Type1ExplicitRouteSubobjects:
      description: |-
        Type is specific to a subobject.
      type: object
      properties:
        type:
          $ref: '#/components/schemas/Flow.RSVP.Type1ExplicitRouteSubobjectsType'
          x-field-uid: 1
    Flow.RSVP.Type1ExplicitRouteSubobjectsType:
      description: |-
        Currently supported subobjects are IPv4 address(1) and Autonomous system number(32).
      type: object
      properties:
        choice:
          type: string
          x-field-uid: 1
          default: ipv4_prefix
          x-enum:
            ipv4_prefix:
              x-field-uid: 1
            as_number:
              x-field-uid: 2
          enum:
          - ipv4_prefix
          - as_number
        ipv4_prefix:
          $ref: '#/components/schemas/Flow.RSVP.PathExplicitRouteType1Ipv4Prefix'
          x-field-uid: 2
        as_number:
          $ref: '#/components/schemas/Flow.RSVP.PathExplicitRouteType1ASNumber'
          x-field-uid: 3
    Flow.RSVP.PathExplicitRouteType1Ipv4Prefix:
      description: |-
        Class = EXPLICIT_ROUTE, Type1 ROUTE_RECORD C-Type = 1 Subobject: IPv4 Prefix, C-Type: 1
      type: object
      properties:
        l_bit:
          x-field-uid: 1
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathExplicitRouteType1Ipv4Prefix.LBit'
        length:
          description: |-
            The Length contains the total length of the subobject in bytes,including L,Type and Length fields.   The Length MUST be atleast 4, and MUST be a multiple of 4.
          $ref: '#/components/schemas/Flow.RSVPExplicitRoute.Length'
          x-field-uid: 2
        ipv4_address:
          x-field-uid: 3
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathExplicitRouteType1Ipv4Prefix.Ipv4Address'
        prefix:
          description: |-
            The prefix length of the IPv4 address.
          type: integer
          format: uint32
          minimum: 1
          maximum: 32
          default: 32
          x-field-uid: 4
    Flow.RSVP.PathExplicitRouteType1ASNumber:
      description: |-
        Class = EXPLICIT_ROUTE, Type1 ROUTE_RECORD C-Type = 1 Subobject: Autonomous system number, C-Type: 32
      type: object
      properties:
        l_bit:
          x-field-uid: 1
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathExplicitRouteType1ASNumber.LBit'
        length:
          description: |-
            The Length contains the total length of the subobject in bytes,including L, Type and Length fields.   The Length MUST be atleast 4, and MUST be a multiple of 4.
          $ref: '#/components/schemas/Flow.RSVPExplicitRouteASNumber.Length'
          x-field-uid: 2
        as_number:
          description: |-
            Autonomous System number to be set in the ERO sub-object that this LSP should traverse through. This field is applicable only if the value of 'type' is set to 'as_number'.
          type: integer
          format: uint32
          default: 0
          maximum: 65535
          x-field-uid: 3
    Flow.RSVPExplicitRoute.Length:
      type: object
      properties:
        choice:
          description: |-
            auto or configured value.
          type: string
          default: auto
          x-field-uid: 1
          x-enum:
            auto:
              x-field-uid: 1
            value:
              x-field-uid: 2
          enum:
          - auto
          - value
        auto:
          description: "The OTG implementation will provide a system generated value\
            \ for this property.  If the OTG implementation is unable to generate\
            \ a value the default value must be used. "
          type: integer
          format: uint32
          default: 8
          x-field-uid: 2
        value:
          type: integer
          format: uint32
          maximum: 255
          default: 8
          x-field-uid: 3
    Flow.RSVPExplicitRouteASNumber.Length:
      type: object
      properties:
        choice:
          description: |-
            auto or configured value.
          type: string
          default: auto
          x-field-uid: 1
          x-enum:
            auto:
              x-field-uid: 1
            value:
              x-field-uid: 2
          enum:
          - auto
          - value
        auto:
          description: "The OTG implementation will provide a system generated value\
            \ for this property.  If the OTG implementation is unable to generate\
            \ a value the default value must be used. "
          type: integer
          format: uint32
          default: 4
          x-field-uid: 2
        value:
          type: integer
          format: uint32
          maximum: 255
          default: 4
          x-field-uid: 3
    Flow.RSVP.PathObjectsClassLabelRequest:
      description: |-
        C-Type is specific to a class num.
      type: object
      properties:
        length:
          description: |-
            A 16-bit field containing the total object length in bytes.  Must always be a multiple of 4 or at least 4.
          $ref: '#/components/schemas/Flow.RSVPObject.Length'
          x-field-uid: 1
        c_type:
          $ref: '#/components/schemas/Flow.RSVP.PathObjectsLabelRequestCType'
          x-field-uid: 2
    Flow.RSVP.PathObjectsLabelRequestCType:
      description: |-
        Object for LABEL_REQUEST class. Currently supported c-type is Without Label Range (1).
      type: object
      properties:
        choice:
          type: string
          x-field-uid: 1
          default: without_label_range
          x-enum:
            without_label_range:
              x-field-uid: 1
          enum:
          - without_label_range
        without_label_range:
          $ref: '#/components/schemas/Flow.RSVP.PathLabelRequestWithoutLabelRange'
          x-field-uid: 2
    Flow.RSVP.PathLabelRequestWithoutLabelRange:
      description: |-
        Class = LABEL_REQUEST, Without Label Range C-Type = 1
      type: object
      properties:
        reserved:
          x-field-uid: 1
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathLabelRequestWithoutLabelRange.Reserved'
        l3pid:
          x-field-uid: 2
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathLabelRequestWithoutLabelRange.L3pid'
    Flow.RSVP.PathObjectsClassSessionAttribute:
      description: |-
        C-Type is specific to a class num.
      type: object
      properties:
        length:
          description: |-
            A 16-bit field containing the total object length in bytes.  Must always be a multiple of 4 or at least 4.
          $ref: '#/components/schemas/Flow.RSVPObject.Length'
          x-field-uid: 1
        c_type:
          $ref: '#/components/schemas/Flow.RSVP.PathObjectsSessionAttributeCType'
          x-field-uid: 2
    Flow.RSVP.PathObjectsSessionAttributeCType:
      description: |-
        Object for SESSION_ATTRIBUTE class. Currently supported c-type is LSP_Tunnel_RA (1) and LSP_Tunnel (7).
      type: object
      properties:
        choice:
          type: string
          x-field-uid: 1
          default: lsp_tunnel
          x-enum:
            lsp_tunnel:
              x-field-uid: 1
            lsp_tunnel_ra:
              x-field-uid: 2
          enum:
          - lsp_tunnel
          - lsp_tunnel_ra
        lsp_tunnel:
          $ref: '#/components/schemas/Flow.RSVP.PathSessionAttributeLspTunnel'
          x-field-uid: 2
        lsp_tunnel_ra:
          $ref: '#/components/schemas/Flow.RSVP.PathSessionAttributeLspTunnelRa'
          x-field-uid: 3
    Flow.RSVP.PathSessionAttributeLspTunnel:
      description: |-
        SESSION_ATTRIBUTE class = 207, LSP_TUNNEL_RA C-Type = 7, resource affinity information.
      type: object
      properties:
        setup_priority:
          description: |-
            The priority of the session with respect to taking resources,in the range of 0 to 7. The value 0 is the highest priority. The Setup Priority is used in deciding whether this session can preempt another session.
          type: integer
          format: uint32
          default: 7
          maximum: 7
          x-field-uid: 1
        holding_priority:
          description: |-
            The priority of the session with respect to holding resources,in the range of 0 to 7. The value 0 is the highest priority. The Setup Priority is used in deciding whether this session can preempt another session.
          type: integer
          format: uint32
          default: 7
          maximum: 7
          x-field-uid: 2
        flags:
          description: |-
            0x01 Local protection desired, 0x02 Label recording desired, 0x04 SE Style desired
          $ref: '#/components/schemas/Flow.RSVPLspTunnel.Flag'
          x-field-uid: 3
        name_length:
          description: "The length of the display string before padding, in bytes.\
            \          "
          $ref: '#/components/schemas/Flow.RSVPSessionAttributeName.Length'
          x-field-uid: 4
        session_name:
          description: "A null padded string of characters.          "
          type: string
          default: ''
          minLength: 0
          maxLength: 254
          x-field-uid: 5
    Flow.RSVP.PathSessionAttributeLspTunnelRa:
      description: |-
        SESSION_ATTRIBUTE class = 207, LSP_TUNNEL_RA C-Type = 1, it carries resource affinity information.
      type: object
      properties:
        exclude_any:
          description: "A 32-bit vector representing a set of attribute filters associated\
            \ with a tunnel any of which renders a link unacceptable. A null set (all\
            \ bits set to zero) doesn't render the link unacceptable. The most significant\
            \ byte in the hex-string is the farthest  to the left in the byte sequence.\
            \  Leading zero bytes in the configured value may be omitted for brevity.\
            \           "
          type: string
          format: hex
          default: '00'
          minLength: 0
          maxLength: 8
          x-field-uid: 1
        include_any:
          description: "A 32-bit vector representing a set of attribute filters associated\
            \ with a tunnel any of which renders a link acceptable. A null set (all\
            \ bits set to zero) automatically passes. The most significant byte in\
            \ the hex-string is the farthest  to the left in the byte sequence.  Leading\
            \ zero bytes in the configured value may be omitted for brevity.     "
          type: string
          format: hex
          default: '00'
          minLength: 0
          maxLength: 8
          x-field-uid: 2
        include_all:
          description: "A 32-bit vector representing a set of attribute filters associated\
            \ with a tunnel all of which must be present for a link to be acceptable.\
            \ A null set (all bits set to zero) automatically passes. The most significant\
            \ byte in the hex-string is the farthest to the left in the byte sequence.\
            \  Leading zero bytes in the configured value may be omitted for brevity.\
            \          "
          type: string
          format: hex
          default: '00'
          minLength: 0
          maxLength: 8
          x-field-uid: 3
        setup_priority:
          description: |-
            The priority of the session with respect to taking resources,in the range of 0 to 7. The value 0 is the highest priority. The Setup Priority is used in deciding whether this session can preempt another session.
          type: integer
          format: uint32
          default: 7
          maximum: 7
          x-field-uid: 4
        holding_priority:
          description: |-
            The priority of the session with respect to holding resources,in the range of 0 to 7. The value 0 is the highest priority. The Setup Priority is used in deciding whether this session can preempt another session.
          type: integer
          format: uint32
          default: 7
          maximum: 7
          x-field-uid: 5
        flags:
          description: |-
            0x01 Local protection desired, 0x02 Label recording desired, 0x04 SE Style desired
          $ref: '#/components/schemas/Flow.RSVPLspTunnel.Flag'
          x-field-uid: 6
        name_length:
          description: "The length of the display string before padding, in bytes.\
            \          "
          $ref: '#/components/schemas/Flow.RSVPSessionAttributeName.Length'
          x-field-uid: 7
        session_name:
          description: "A null padded string of characters.          "
          type: string
          default: ''
          minLength: 0
          maxLength: 254
          x-field-uid: 8
    Flow.RSVPLspTunnel.Flag:
      type: object
      properties:
        choice:
          type: string
          default: local_protection_desired
          x-enum:
            local_protection_desired:
              x-field-uid: 1
            label_recording_desired:
              x-field-uid: 2
            se_style_desired:
              x-field-uid: 3
          x-field-uid: 1
          enum:
          - local_protection_desired
          - label_recording_desired
          - se_style_desired
    Flow.RSVPSessionAttributeName.Length:
      type: object
      properties:
        choice:
          description: |-
            auto or configured value.
          type: string
          default: auto
          x-field-uid: 1
          x-enum:
            auto:
              x-field-uid: 1
            value:
              x-field-uid: 2
          enum:
          - auto
          - value
        auto:
          description: |-
            The OTG implementation will provide a system generated value for this property.  If the OTG implementation is unable to generate a value the default value must be used.
          type: integer
          format: uint32
          default: 0
          x-field-uid: 2
        value:
          type: integer
          format: uint32
          maximum: 255
          default: 0
          x-field-uid: 3
    Flow.RSVP.PathObjectsClassSenderTemplate:
      description: |-
        C-Type is specific to a class num.
      type: object
      properties:
        length:
          description: |-
            A 16-bit field containing the total object length in bytes.  Must always be a multiple of 4 or at least 4.
          $ref: '#/components/schemas/Flow.RSVPObject.Length'
          x-field-uid: 1
        c_type:
          $ref: '#/components/schemas/Flow.RSVP.PathObjectsSenderTemplateCType'
          x-field-uid: 2
    Flow.RSVP.PathObjectsSenderTemplateCType:
      description: |-
        Object for SENDER_TEMPLATE class. Currently supported c-type is LSP Tunnel IPv4 (7).
      type: object
      properties:
        choice:
          type: string
          x-field-uid: 1
          default: lsp_tunnel_ipv4
          x-enum:
            lsp_tunnel_ipv4:
              x-field-uid: 1
          enum:
          - lsp_tunnel_ipv4
        lsp_tunnel_ipv4:
          $ref: '#/components/schemas/Flow.RSVP.PathSenderTemplateLspTunnelIpv4'
          x-field-uid: 2
    Flow.RSVP.PathSenderTemplateLspTunnelIpv4:
      description: |-
        Class = SENDER_TEMPLATE, LSP_TUNNEL_IPv4 C-Type = 7
      type: object
      properties:
        ipv4_tunnel_sender_address:
          x-field-uid: 1
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTemplateLspTunnelIpv4.Ipv4TunnelSenderAddress'
        reserved:
          x-field-uid: 2
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTemplateLspTunnelIpv4.Reserved'
        lsp_id:
          x-field-uid: 3
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTemplateLspTunnelIpv4.LspId'
    Flow.RSVP.PathObjectsClassSenderTspec:
      description: |-
        C-Type is specific to a class num.
      type: object
      properties:
        length:
          description: |-
            A 16-bit field containing the total object length in bytes.  Must always be a multiple of 4 or at least 4.
          $ref: '#/components/schemas/Flow.RSVPObject.Length'
          x-field-uid: 1
        c_type:
          $ref: '#/components/schemas/Flow.RSVP.PathObjectsSenderTspecCType'
          x-field-uid: 2
    Flow.RSVP.PathObjectsSenderTspecCType:
      description: |-
        Object for SENDER_TSPEC class. Currently supported c-type is int-serv (2).
      type: object
      properties:
        choice:
          type: string
          x-field-uid: 1
          default: int_serv
          x-enum:
            int_serv:
              x-field-uid: 1
          enum:
          - int_serv
        int_serv:
          $ref: '#/components/schemas/Flow.RSVP.PathSenderTspecIntServ'
          x-field-uid: 2
    Flow.RSVP.PathSenderTspecIntServ:
      description: |-
        int-serv SENDER_TSPEC object: Class = 12, C-Type = 2
      type: object
      properties:
        version:
          x-field-uid: 1
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTspecIntServ.Version'
        reserved1:
          x-field-uid: 2
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTspecIntServ.Reserved1'
        overall_length:
          x-field-uid: 3
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTspecIntServ.OverallLength'
        service_header:
          x-field-uid: 4
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTspecIntServ.ServiceHeader'
        zero_bit:
          x-field-uid: 5
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTspecIntServ.ZeroBit'
        reserved2:
          x-field-uid: 6
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTspecIntServ.Reserved2'
        length_of_service_data:
          x-field-uid: 7
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTspecIntServ.LengthOfServiceData'
        parameter_id_token_bucket_tspec:
          x-field-uid: 8
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTspecIntServ.ParameterIdTokenBucketTspec'
        parameter_127_flag:
          x-field-uid: 9
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTspecIntServ.Parameter127Flag'
        parameter_127_length:
          x-field-uid: 10
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTspecIntServ.Parameter127Length'
        token_bucket_rate:
          description: |-
            Token bucket rate is set to sender's view of its generated traffic.
          type: number
          format: float
          default: 0
          x-field-uid: 11
        token_bucket_size:
          description: |-
            Token bucket size is set to sender's view of its generated traffic.
          type: number
          format: float
          default: 0
          x-field-uid: 12
        peak_data_rate:
          description: |-
            The peak rate may be set to the sender's peak traffic generation rate (if known and controlled), the physical interface line rate (if known), or positive infinity (if no better value is available).
          type: number
          format: float
          default: 0
          x-field-uid: 13
        minimum_policed_unit:
          x-field-uid: 14
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTspecIntServ.MinimumPolicedUnit'
        maximum_packet_size:
          x-field-uid: 15
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTspecIntServ.MaximumPacketSize'
    Flow.RSVP.PathObjectsClassRecordRoute:
      description: |-
        C-Type is specific to a class num.
      type: object
      properties:
        length:
          description: |-
            A 16-bit field containing the total object length in bytes.  Must always be a multiple of 4 or at least 4.
          $ref: '#/components/schemas/Flow.RSVPObject.Length'
          x-field-uid: 1
        c_type:
          $ref: '#/components/schemas/Flow.RSVP.PathObjectsRecordRouteCType'
          x-field-uid: 2
    Flow.RSVP.PathObjectsRecordRouteCType:
      description: |-
        Object for RECORD_ROUTE class. c-type is Type 1 Route Record (1).
      type: object
      properties:
        choice:
          type: string
          default: type_1
          x-field-uid: 1
          x-enum:
            type_1:
              x-field-uid: 1
          enum:
          - type_1
        type_1:
          $ref: '#/components/schemas/Flow.RSVP.PathRecordRouteType1'
          x-field-uid: 2
    Flow.RSVP.PathRecordRouteType1:
      description: |-
        Type1 record route has list of subobjects. Currently supported subobjects are IPv4 address(1) and Label(3).
      type: object
      properties:
        subobjects:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/Flow.RSVP.Type1RecordRouteSubobjects'
          x-field-uid: 1
    Flow.RSVP.Type1RecordRouteSubobjects:
      description: |-
        Type is specific to a subobject.
      type: object
      properties:
        type:
          $ref: '#/components/schemas/Flow.RSVP.PathObjectsRecordRouteSubObjectType'
          x-field-uid: 1
    Flow.RSVP.PathObjectsRecordRouteSubObjectType:
      description: |-
        Currently supported subobjects are IPv4 address(1) and Label(3).
      type: object
      properties:
        choice:
          type: string
          x-field-uid: 1
          default: ipv4_address
          x-enum:
            ipv4_address:
              x-field-uid: 1
            label:
              x-field-uid: 2
          enum:
          - ipv4_address
          - label
        ipv4_address:
          $ref: '#/components/schemas/Flow.RSVP.PathRecordRouteType1Ipv4Address'
          x-field-uid: 2
        label:
          $ref: '#/components/schemas/Flow.RSVP.PathRecordRouteType1Label'
          x-field-uid: 3
    Flow.RSVP.PathRecordRouteType1Ipv4Address:
      description: |-
        Class = RECORD_ROUTE, Type1 ROUTE_RECORD C-Type = 1 Subobject: IPv4 Address, C-Type: 1
      type: object
      properties:
        length:
          description: |-
            The Length contains the total length of the subobject in bytes, including the Type and Length fields.   The Length MUST be atleast 4, and MUST be a multiple of 4.
          $ref: '#/components/schemas/Flow.RSVPRouteRecord.Length'
          x-field-uid: 1
        ipv4_address:
          x-field-uid: 2
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathRecordRouteType1Ipv4Address.Ipv4Address'
        prefix_length:
          x-field-uid: 3
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathRecordRouteType1Ipv4Address.PrefixLength'
        flags:
          description: |-
            0x01  local_protection_available, 0x02  local_protection_in_use
          $ref: '#/components/schemas/Flow.RSVPRecordRouteIPv4.Flag'
          x-field-uid: 4
    Flow.RSVPRecordRouteIPv4.Flag:
      type: object
      properties:
        choice:
          type: string
          default: local_protection_available
          x-enum:
            local_protection_available:
              x-field-uid: 1
            local_protection_in_use:
              x-field-uid: 2
          x-field-uid: 1
          enum:
          - local_protection_available
          - local_protection_in_use
    Flow.RSVP.PathRecordRouteType1Label:
      description: |-
        Class = RECORD_ROUTE, Type1 ROUTE_RECORD C-Type = 1 Subobject: Label, C-Type: 3
      type: object
      properties:
        length:
          description: |-
            The Length contains the total length of the subobject in bytes, including the Type and Length fields.   The Length MUST be atleast 4, and MUST be a multiple of 4.
          $ref: '#/components/schemas/Flow.RSVPRouteRecord.Length'
          x-field-uid: 1
        flags:
          x-field-uid: 2
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathRecordRouteType1Label.Flags'
        c_type:
          x-field-uid: 3
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathRecordRouteType1Label.CType'
        label:
          description: |-
            The contents of the Label Object. Copied from the Label Object.
          $ref: '#/components/schemas/Flow.RSVP.PathRecordRouteLabel'
          x-field-uid: 4
    Flow.RSVP.PathRecordRouteLabel:
      type: object
      properties:
        choice:
          description: |-
            32 bit integer or hex value.
          type: string
          default: as_integer
          x-field-uid: 1
          x-enum:
            as_integer:
              x-field-uid: 1
            as_hex:
              x-field-uid: 2
          enum:
          - as_integer
          - as_hex
        as_integer:
          type: integer
          format: uint32
          default: 16
          maximum: 1048575
          x-field-uid: 2
        as_hex:
          description: |-
            Value of the this field should not excced 4 bytes. Maximum length of this attribute is 8 (4 * 2 hex character per byte).
          type: string
          format: hex
          default: '10'
          maxLength: 8
          x-field-uid: 3
    Flow.RSVPRouteRecord.Length:
      type: object
      properties:
        choice:
          description: |-
            auto or configured value.
          type: string
          default: auto
          x-field-uid: 1
          x-enum:
            auto:
              x-field-uid: 1
            value:
              x-field-uid: 2
          enum:
          - auto
          - value
        auto:
          description: |-
            The OTG implementation will provide a system generated value for this property.  If the OTG implementation is unable to generate a value the default value must be used.
          type: integer
          format: uint32
          default: 8
          x-field-uid: 2
        value:
          type: integer
          format: uint32
          maximum: 255
          default: 8
          x-field-uid: 3
    Flow.RSVP.PathObjectsCustom:
      type: object
      description: |-
        Custom packet header
      properties:
        type:
          x-field-uid: 1
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathObjectsCustom.Type'
        length:
          $ref: '#/components/schemas/Flow.RSVPObject.Length'
          x-field-uid: 2
        bytes:
          description: |-
            A custom packet header defined as a string of hex bytes. The string MUST contain sequence of valid hex bytes. Spaces or colons can be part of the bytes but will be discarded. Value of the this field should not excced 65525 bytes since maximum 65528 bytes can be added as object-contents in RSVP header. For type and length requires 3 bytes, hence maximum of 65524 bytes are expected. Maximum length of this attribute is 131050 (65525 * 2 hex character per byte).
          type: string
          format: hex
          minLength: 1
          maxLength: 131050
          default: '0000'
          x-field-uid: 3
    Flow.Macsec:
      description: |-
        MACsec packet header.
      type: object
      properties:
        choice:
          description: |-
            Currently only auto choice is allowed. If choice is auto, MACsec header is autogenerated. If auto choice is selected, MACsec protocol must be configured in device; flow.tx_rx.choice must be of type 'device' and flow.tx_rx.device.tx_names[0] must be chosen to be an endpoint that is on or behind a MACSec enabled ethernet to be able to correctly auto-fill the fields of the MACsec header. If one of the conditions is not true, the implementation should return an error specifying the issue. A custom choice can be added in future to allow user to set specific MACsec header fields and/ or to generate flow.tx_rx.port type of traffic with MACSec header fields explicitly specified by the user.
          type: string
          default: auto
          x-field-uid: 1
          x-enum:
            auto:
              x-field-uid: 1
          enum:
          - auto
    Flow.Size:
      description: |-
        The frame size which overrides the total length of the packet
      type: object
      properties:
        choice:
          type: string
          default: fixed
          x-field-uid: 1
          x-enum:
            fixed:
              x-field-uid: 1
            increment:
              x-field-uid: 2
            random:
              x-field-uid: 3
            weight_pairs:
              x-field-uid: 4
          enum:
          - fixed
          - increment
          - random
          - weight_pairs
        fixed:
          type: integer
          format: uint32
          default: 64
          x-field-uid: 2
        increment:
          $ref: '#/components/schemas/Flow.SizeIncrement'
          x-field-uid: 3
        random:
          $ref: '#/components/schemas/Flow.SizeRandom'
          x-field-uid: 4
        weight_pairs:
          $ref: '#/components/schemas/Flow.SizeWeightPairs'
          x-field-uid: 5
    Flow.SizeIncrement:
      type: object
      description: "Frame size that increments from a starting size to \nan ending\
        \ size incrementing by a step size."
      properties:
        start:
          description: |-
            Starting frame size in bytes
          type: integer
          format: uint32
          minimum: 1
          default: 64
          x-field-uid: 1
        end:
          description: |-
            Ending frame size in bytes
          type: integer
          format: uint32
          minimum: 64
          default: 1518
          x-field-uid: 2
        step:
          description: |-
            Step frame size in bytes
          type: integer
          format: uint32
          default: 1
          x-field-uid: 3
    Flow.SizeRandom:
      type: object
      description: |-
        Random frame size from a min value to a max value.
      properties:
        min:
          type: integer
          format: uint32
          default: 64
          x-field-uid: 1
        max:
          type: integer
          format: uint32
          default: 1518
          x-field-uid: 2
    Flow.SizeWeightPairs:
      type: object
      description: "Frame size distribution, defined as <size, weight> pairs (including\
        \ IMIX distribution).\nFrames are randomly generated such that the proportion\
        \ of each frame size out of the total number of frames \nare matching with\
        \ the weight value of the <size, weight> pair. However, as with any other\
        \ probability \ndistribution, the sample distribution is close to theoretical\
        \ value only if the size of the sample is reasonably large. \nWhen the number\
        \ of frames is very low the transmitted frames may not come close to the ratio\
        \ described in the weight."
      properties:
        choice:
          type: string
          default: predefined
          x-field-uid: 1
          x-enum:
            predefined:
              x-field-uid: 1
            custom:
              x-field-uid: 2
          enum:
          - predefined
          - custom
        predefined:
          type: string
          default: imix
          description: "Specify predefined frame size distribution <size, weight>\
            \ pairs (including IMIX distribution).  \nThe available predefined distribution\
            \ pairs are:\n- IMIX (64:7, 570:4, and 1518:1)  \n- IPSec IMIX (90:58.67,\
            \ 92:2, 594:23.66 and 1418:15.67)  \n- IPv6 IMIX (60:58.67, 496:2, 594:23.66\
            \ and 1518:15.67)  \n- Standard IMIX (58:58.67, 62:2, 594:23.66 and 1518:15.67)\
            \  \n- TCP IMIX (90:58.67, 92:2, 594:23.66 and 1518:15.67)  "
          x-field-uid: 2
          x-enum:
            imix:
              x-field-uid: 1
            ipsec_imix:
              x-field-uid: 2
            ipv6_imix:
              x-field-uid: 3
            standard_imix:
              x-field-uid: 4
            tcp_imix:
              x-field-uid: 5
          enum:
          - imix
          - ipsec_imix
          - ipv6_imix
          - standard_imix
          - tcp_imix
        custom:
          type: array
          items:
            $ref: '#/components/schemas/Flow.SizeWeightPairs.Custom'
          x-field-uid: 3
    Flow.SizeWeightPairs.Custom:
      type: object
      description: |-
        Custom frame size distribution <size, weight> pair.
      properties:
        size:
          description: |-
            The size of the frame (in bytes) for this weight pair.
          type: integer
          format: uint32
          minimum: 12
          maximum: 65535
          default: 64
          x-field-uid: 1
        weight:
          description: "Weight assigned to the corresponding frame size in this weight\
            \ pair. \nHigher weight means more packets."
          type: number
          format: float
          default: 1
          x-field-uid: 2
    Flow.Rate:
      type: object
      description: |-
        The rate of packet transmission
      properties:
        choice:
          description: |-
            The available types of flow rate.
          type: string
          default: pps
          x-field-uid: 1
          x-enum:
            pps:
              x-field-uid: 1
            bps:
              x-field-uid: 2
            kbps:
              x-field-uid: 3
            mbps:
              x-field-uid: 4
            gbps:
              x-field-uid: 5
            percentage:
              x-field-uid: 6
          enum:
          - pps
          - bps
          - kbps
          - mbps
          - gbps
          - percentage
        pps:
          description: |-
            Packets per second.
          type: integer
          format: uint64
          minimum: 1
          default: 1000
          x-field-uid: 2
        bps:
          description: |-
            Bits per second.
          type: integer
          format: uint64
          minimum: 672
          default: 1000000000
          x-field-uid: 3
        kbps:
          description: |-
            Kilobits per second.
          type: integer
          format: uint64
          minimum: 1
          default: 1000000
          x-field-uid: 4
        mbps:
          description: "Megabits per second. "
          type: integer
          format: uint64
          minimum: 1
          default: 1000
          x-field-uid: 5
        gbps:
          description: |-
            Gigabits per second.
          type: integer
          format: uint32
          minimum: 1
          default: 1
          x-field-uid: 6
        percentage:
          description: |-
            The percentage of a port location's available bandwidth.
          type: number
          format: float
          minimum: 0
          maximum: 100
          default: 100
          x-field-uid: 7
    Flow.Duration:
      description: "A container for different transmit durations. "
      type: object
      properties:
        choice:
          description: |-
            A choice used to determine the type of duration.
          type: string
          default: continuous
          x-field-uid: 1
          x-enum:
            fixed_packets:
              x-field-uid: 1
            fixed_seconds:
              x-field-uid: 2
            burst:
              x-field-uid: 3
            continuous:
              x-field-uid: 4
          enum:
          - fixed_packets
          - fixed_seconds
          - burst
          - continuous
        fixed_packets:
          $ref: '#/components/schemas/Flow.FixedPackets'
          x-field-uid: 2
        fixed_seconds:
          $ref: '#/components/schemas/Flow.FixedSeconds'
          x-field-uid: 3
        burst:
          $ref: '#/components/schemas/Flow.Burst'
          x-field-uid: 4
        continuous:
          $ref: '#/components/schemas/Flow.Continuous'
          x-field-uid: 5
    Flow.Continuous:
      description: "Transmit will be continuous and will not stop automatically. "
      type: object
      properties:
        gap:
          description: |-
            The minimum gap between packets expressed as bytes.
          type: integer
          format: uint32
          default: 12
          x-field-uid: 1
        delay:
          $ref: '#/components/schemas/Flow.Delay'
          x-field-uid: 2
    Flow.Delay:
      description: "The optional container to specify the delay before starting \n\
        transmission of packets."
      type: object
      properties:
        choice:
          type: string
          default: bytes
          x-field-uid: 1
          x-enum:
            bytes:
              x-field-uid: 1
            nanoseconds:
              x-field-uid: 2
            microseconds:
              x-field-uid: 3
          enum:
          - bytes
          - nanoseconds
          - microseconds
        bytes:
          description: |-
            The delay before starting transmission of packets.
            A value of 0 indicates no delay.
          type: number
          format: float
          minimum: 0
          default: 0
          x-field-uid: 2
        nanoseconds:
          description: |-
            The delay before starting transmission of packets.
            A value of 0 indicates no delay.
          type: number
          format: float
          minimum: 0
          default: 0
          x-field-uid: 3
        microseconds:
          description: |-
            The delay before starting transmission of packets.
            A value of 0 indicates no delay.
          type: number
          format: float
          minimum: 0
          default: 0
          x-field-uid: 4
    Flow.FixedPackets:
      description: |-
        Transmit a fixed number of packets after which the flow will stop.
      type: object
      properties:
        packets:
          description: |-
            Stop transmit of the flow after this number of packets.
          type: integer
          format: uint32
          minimum: 1
          default: 1
          x-field-uid: 1
        gap:
          description: |-
            The minimum gap between packets expressed as bytes.
          type: integer
          format: uint32
          default: 12
          x-field-uid: 2
        delay:
          $ref: '#/components/schemas/Flow.Delay'
          x-field-uid: 3
    Flow.FixedSeconds:
      description: |-
        Transmit for a fixed number of seconds after which the flow will stop.
      type: object
      properties:
        seconds:
          description: |-
            Stop transmit of the flow after this number of seconds.
          type: number
          minimum: 0
          default: 1
          x-field-uid: 1
        gap:
          description: |-
            The minimum gap between packets expressed as bytes.
          type: integer
          format: uint32
          default: 12
          x-field-uid: 2
        delay:
          $ref: '#/components/schemas/Flow.Delay'
          x-field-uid: 3
    Flow.Burst:
      description: "Transmits continuous or fixed burst of packets. \nFor continuous\
        \ burst of packets, it will not automatically stop.\nFor fixed burst of packets,\
        \ it will stop after transmitting fixed number of bursts.      "
      type: object
      properties:
        bursts:
          description: |-
            The number of packet bursts transmitted per flow.
            A value of 0 implies continuous burst of packets.
          type: integer
          format: uint32
          default: 0
          x-field-uid: 1
        packets:
          description: |-
            The number of packets transmitted per burst.
          type: integer
          format: uint32
          minimum: 1
          default: 1
          x-field-uid: 2
        gap:
          description: |-
            The minimum gap between packets expressed as bytes.
          type: integer
          format: uint32
          default: 12
          x-field-uid: 3
        inter_burst_gap:
          $ref: '#/components/schemas/Flow.Duration.InterBurstGap'
          x-field-uid: 4
    Flow.Duration.InterBurstGap:
      type: object
      description: |-
        The optional container for specifying a gap between bursts.
      properties:
        choice:
          description: |-
            The type of inter burst gap units.
          type: string
          default: bytes
          x-field-uid: 1
          x-enum:
            bytes:
              x-field-uid: 1
            nanoseconds:
              x-field-uid: 2
            microseconds:
              x-field-uid: 3
          enum:
          - bytes
          - nanoseconds
          - microseconds
        bytes:
          description: |-
            The amount of time between bursts expressed in bytes.
            A value of 0 indicates no gap between bursts.
          type: number
          format: double
          minimum: 0
          default: 12
          x-field-uid: 2
        nanoseconds:
          description: |-
            The amount of time between bursts expressed in nanoseconds.
            A value of 0 indicates no gap between bursts.
          type: number
          format: double
          minimum: 0
          default: 96
          x-field-uid: 3
        microseconds:
          description: |-
            The amount of time between bursts expressed in microseconds.
            A value of 0 indicates no gap between bursts.
          type: number
          format: double
          minimum: 0
          default: 0.096
          x-field-uid: 4
    Flow.Metrics:
      description: |-
        The optional container for configuring flow metrics.
      type: object
      properties:
        enable:
          description: "Enables flow metrics.\nEnabling this option may affect the\
            \ resultant packet payload due to \nadditional instrumentation data."
          type: boolean
          default: false
          x-field-uid: 1
        loss:
          description: |-
            Enables additional flow metric loss calculation.
          type: boolean
          default: false
          x-field-uid: 2
        rx_tx_ratio:
          description: |-
            Rx Tx ratio.
          $ref: '#/components/schemas/Flow.RxTxRatio'
          x-field-uid: 6
        timestamps:
          description: |-
            Enables additional flow metric first and last timestamps.
          type: boolean
          default: false
          x-field-uid: 3
        latency:
          description: |-
            Latency metrics.
          $ref: '#/components/schemas/Flow.Latency.Metrics'
          x-field-uid: 4
        predefined_metric_tags:
          description: |-
            Predefined metric tags
          $ref: '#/components/schemas/Flow.Predefined.Tags'
          x-field-uid: 5
    Flow.Latency.Metrics:
      description: |-
        The optional container for per flow latency metric configuration.
      type: object
      properties:
        enable:
          description: "True to enable latency metrics using timestamps.\n\nEnabling\
            \ this option may affect the resultant packet payload due to \nadditional\
            \ instrumentation data."
          type: boolean
          default: false
          x-field-uid: 1
        mode:
          description: "Select the type of latency measurement. The different types\
            \ of \nlatency measurements are:\n\n\nstore_forward:\nThe time interval\
            \ starting when the last bit of the frame leaves the\nsending port and\
            \ ending when the first bit of the frame is seen on\nthe receiving port\
            \ (LIFO).  This is based on the RFC 1242 standard.\n\n\ncut_through:\n\
            The time interval starting when the first bit of the frame leaves\nthe\
            \ sending port and ending when the first bit of the frame is seen\non\
            \ the receiving port (FIFO).  This is based on the RFC 1242 \nstandard."
          type: string
          default: store_forward
          x-field-uid: 2
          x-enum:
            store_forward:
              x-field-uid: 1
            cut_through:
              x-field-uid: 2
          enum:
          - store_forward
          - cut_through
    Flow.Predefined.Tags:
      description: |-
        List of predefined flow tracking options, outside packet fields, that can be enabled.
      type: object
      properties:
        rx_name:
          description: |-
            Enables Rx port or lag level disaggregation with predefined metrics tag name set as "rx_name".
            The Rx port / lag names can be found under tagged_metrics tag names in flow metrics response.
          type: boolean
          default: false
          x-field-uid: 1
    Flow.RxTxRatio:
      description: |-
        Rx Tx ratio is the ratio of expected number of Rx packets across all Rx ports to the Tx packets
        for the configured flow. It is a factor by which the Tx packet count is multiplied to calculate
        the sum of expected Rx packet count, across all Rx ports. This will be used to calculate loss
        percentage of flow at aggregate level.
      type: object
      properties:
        choice:
          type: string
          default: value
          x-field-uid: 1
          x-enum:
            rx_count:
              x-field-uid: 1
            value:
              x-field-uid: 2
          enum:
          - rx_count
          - value
        rx_count:
          $ref: '#/components/schemas/Flow.RxTxRatio.RxCount'
          x-field-uid: 2
        value:
          description: |-
            Should be a positive, non-zero value. The default value of 1, is when the Rx packet count across
            all ports is expected to match the Tx packet count. A custom integer value (>1) can be specified for
            loss calculation for cases when there are multiple destination addresses configured within one flow,
            but DUT is configured to replicate only to a subset of Rx ports. For cases when Tx side generates two
            packets from each source in 1:1 protection mode but only one of the two packets are received by the
            Rx port, we may need to specify a fractional value instead.
          type: number
          format: float
          default: 1.0
          x-field-uid: 3
    Flow.RxTxRatio.RxCount:
      description: |-
        This is for cases where one copy of Tx packet is received on all Rx ports and so the sum total of Rx packets
        received across all Rx ports is a multiple of Rx port count and Tx packets.
    Event:
      description: "Under Review: Event configuration is currently under review for\
        \ pending exploration on use cases.\n\nThe optional container for event configuration.\n\
        Both cp_events.enable and dp_events.enable must be explicitly set to true\
        \ to get \ncontrol_plane_data_plane_convergence_us metric values for convergence\
        \ metrics."
      x-status:
        status: under_review
        information: Event configuration is currently under review for pending exploration
          on use cases.
      type: object
      properties:
        cp_events:
          description: |-
            Container for control plane(cp) event configuration.
          $ref: '#/components/schemas/Event.CPEvents'
          x-field-uid: 1
        dp_events:
          description: "Container for data plane(dp) event configuration.\nEnabling\
            \ this option may affect the resultant packet payload due to \nadditional\
            \ instrumentation data."
          $ref: '#/components/schemas/Event.DPEvents'
          x-field-uid: 2
    Event.CPEvents:
      description: |-
        The optional container for control plane event configuration.
      type: object
      properties:
        enable:
          description: "Setting to true enables start and end time for control_plane\
            \ events \nassociated with started flows to be recorded."
          type: boolean
          default: false
          x-field-uid: 1
    Event.DPEvents:
      description: |-
        The optional container for data plane event configuration.
      type: object
      properties:
        enable:
          description: "Setting to true enables flow_rx_rate_above_threshold and flow_rx_rate_below_threshold\
            \ \ntimestamps to be recorded when data packets switch between multiple\
            \ rx_ports on the receive ports for affected flows."
          type: boolean
          default: false
          x-field-uid: 1
        rx_rate_threshold:
          description: "Setting to true enables timestamps to be recorded when the\
            \ rx rate of a flow goes above \nor below the threshold value. "
          type: number
          format: float
          maximum: 100
          minimum: 0
          default: 95
          x-field-uid: 2
    Event.Request:
      type: object
      properties:
        type:
          description: "Constrain the events being returned by specifying event types.\n\
            If the list is empty then all event types will be returned. "
          type: array
          items:
            type: string
            example: route_withdraw
            x-enum:
              link_down:
                x-field-uid: 1
              link_up:
                x-field-uid: 2
              route_withdraw:
                x-field-uid: 3
              route_advertise:
                x-field-uid: 4
              flow_rx_rate_above_threshold:
                x-field-uid: 5
              flow_rx_rate_below_threshold:
                x-field-uid: 6
            enum:
            - link_down
            - link_up
            - route_withdraw
            - route_advertise
            - flow_rx_rate_above_threshold
            - flow_rx_rate_below_threshold
          x-field-uid: 1
        source:
          description: "Constrain the events being returned by specifying event sources.\
            \ \nIf the list is empty then all event sources will be returned. \n\n\
            x-constraint:\n- /components/schemas/Port/properties/name\n- /components/schemas/Bgp.V4RouteRange/name\n\
            - /components/schemas/Bgp.V6RouteRange/name\n"
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Port/properties/name
          - /components/schemas/Bgp.V4RouteRange/name
          - /components/schemas/Bgp.V6RouteRange/name
          x-field-uid: 2
    Event.Subscription:
      description: "A container that describes what events a system should provide\
        \ and \noptionally where to publish them.  "
      type: object
      properties:
        events:
          $ref: '#/components/schemas/Event.Request'
          x-field-uid: 1
        callback_url:
          description: |-
            Indicates where a client wants to be notified of the events set in
            the events property.
            If this property is empty or null then no event notifications will
            be forwarded.
          type: string
          format: uri
          example: https://127.0.0.1/event/notification
          x-field-uid: 2
    Lldp:
      description: |-
        Configuration of LLDP protocol IEEE Ref: https://www.ieee802.org/1/files/public/docs2002/lldp-protocol-00.pdf
      type: object
      required:
      - connection
      - name
      properties:
        connection:
          description: "The unique name of the object on which LLDP is running. "
          $ref: '#/components/schemas/Lldp.Connection'
          x-field-uid: 1
        chassis_id:
          description: |-
            The Chassis ID is a mandatory TLV which identifies the chassis component of the endpoint identifier associated  with the transmitting LLDP agent. If mac address is specified it should be in colon seperated mac address format.
          $ref: '#/components/schemas/Lldp.ChassisId'
          x-field-uid: 2
        port_id:
          description: |-
            The Port ID is a mandatory TLV which identifies the port component of the endpoint identifier associated with  the transmitting LLDP agent. If the specified port is an IEEE 802.3 Repeater port, then this TLV is optional.
          $ref: '#/components/schemas/Lldp.PortId'
          x-field-uid: 3
        system_name:
          description: |-
            The system name field shall contain an alpha-numeric string that indicates the system's administratively assigned  name. The system name should be the system's fully qualified domain name. If implementations support IETF RFC  3418, the sysName object should be used for this field.
          $ref: '#/components/schemas/Lldp.SystemName'
          x-field-uid: 4
        hold_time:
          description: |-
            Specifies the amount of time in seconds a receiving device should maintain LLDP information sent  by the device before discarding it.
          type: integer
          format: uint32
          minimum: 10
          maximum: 65535
          default: 120
          x-field-uid: 5
        advertisement_interval:
          description: |-
            Set the transmission frequency of LLDP updates in seconds.
          type: integer
          format: uint32
          minimum: 5
          maximum: 65534
          default: 30
          x-field-uid: 6
        name:
          x-field-uid: 7
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
        org_infos:
          description: |-
            The Organization Information is used to define the organization specific TLVs. The organization specific TLV is defined in IEEE 802.1AB-2016 specification. This category is provided to allow different organizations, such as  IEEE 802.1, IEEE 802.3, IETF, as well as individual software and equipment vendors, to define TLVs that advertise  information to remote entities attached to the same media.
          type: array
          items:
            $ref: '#/components/schemas/Lldp.OrgInfo'
          x-field-uid: 8
    Lldp.Connection:
      description: "LLDP connection to a test port. In future if more connection options\
        \ arise  LLDP connection object will be enhanced. "
      type: object
      properties:
        choice:
          description: |-
            The name of the test port or other connection objects on which LLDP is configured.
          type: string
          x-field-uid: 1
          x-enum:
            port_name:
              x-field-uid: 1
          enum:
          - port_name
        port_name:
          description: |
            Name of the test port on which LLDP is configured on.

            x-constraint:
            - /components/schemas/Port/properties/name
          type: string
          x-constraint:
          - /components/schemas/Port/properties/name
          x-field-uid: 2
    Lldp.ChassisId:
      description: |-
        The Chassis ID is a mandatory TLV which identifies the chassis component of the endpoint identifier associated  with the transmitting LLDP agent. This field identifies the format and source of the chassis identifier string.  It is based on the enumerator defined by the LldpChassisIdSubtype object from IEEE 802.1AB MIB.
      type: object
      properties:
        choice:
          description: |-
            Chassis ID subtype to be used in Chassis ID TLV.
          type: string
          default: mac_address_subtype
          x-field-uid: 1
          x-enum:
            mac_address_subtype:
              x-field-uid: 1
            interface_name_subtype:
              x-field-uid: 2
            local_subtype:
              x-field-uid: 3
          enum:
          - mac_address_subtype
          - interface_name_subtype
          - local_subtype
        mac_address_subtype:
          $ref: '#/components/schemas/Lldp.ChassisMacSubType'
          x-field-uid: 2
        interface_name_subtype:
          description: |-
            Name of an interface of the chassis that uniquely identifies the chassis.
          type: string
          x-field-uid: 3
        local_subtype:
          description: |-
            Locally assigned name of the chassis.
          type: string
          x-field-uid: 4
    Lldp.PortId:
      description: |-
        The Port ID is a mandatory TLV which identifies the port component of the endpoint identifier associated with  the transmitting LLDP agent.This field identifies the format and source of the port identifier string. It is  based on the enumerator defined by the PtopoPortIdType object from RFC2922.
      type: object
      properties:
        choice:
          description: |-
            Port ID subtype to be used in Port ID TLV.
          type: string
          default: interface_name_subtype
          x-field-uid: 1
          x-enum:
            mac_address_subtype:
              x-field-uid: 1
            interface_name_subtype:
              x-field-uid: 2
            local_subtype:
              x-field-uid: 3
          enum:
          - mac_address_subtype
          - interface_name_subtype
          - local_subtype
        mac_address_subtype:
          description: |-
            The MAC Address configured in the Port ID TLV.
          type: string
          x-field-uid: 2
        interface_name_subtype:
          $ref: '#/components/schemas/Lldp.PortInterfaceNameSubType'
          x-field-uid: 3
        local_subtype:
          description: |-
            The Locally assigned name configured in the Port ID TLV.
          type: string
          x-field-uid: 4
    Lldp.ChassisMacSubType:
      description: "The MAC address configured in the Chassis ID TLV. "
      type: object
      properties:
        choice:
          description: |-
            In auto mode the system generated value is set for this property, while if the choice is selected as value,  a user configured value will be used for this property.
          type: string
          default: auto
          x-field-uid: 1
          x-enum:
            auto:
              x-field-uid: 1
            value:
              x-field-uid: 2
          enum:
          - auto
          - value
        auto:
          description: |-
            The OTG implementation must provide a system generated value for this property.
          type: string
          format: mac
          x-field-uid: 2
        value:
          description: |-
            User must specify a value if mode is not auto.
          type: string
          format: mac
          x-field-uid: 3
    Lldp.PortInterfaceNameSubType:
      description: "The interface name configured in the Port ID TLV. "
      type: object
      properties:
        choice:
          description: |-
            In auto mode the system generated value is set for this property, while if the choice is selected as value,  a user configured value will be used for this property.
          type: string
          default: auto
          x-field-uid: 1
          x-enum:
            auto:
              x-field-uid: 1
            value:
              x-field-uid: 2
          enum:
          - auto
          - value
        auto:
          description: |-
            The OTG implementation must provide a system generated value for this property.
          type: string
          x-field-uid: 2
        value:
          description: |-
            User must specify a value if mode is not auto.
          type: string
          x-field-uid: 3
    Lldp.SystemName:
      description: "The system Name configured in the System Name TLV. "
      type: object
      properties:
        choice:
          description: |-
            In auto mode the system generated value is set for this property, while if the choice is selected as value,  a user configured value will be used for this property.
          type: string
          default: auto
          x-field-uid: 1
          x-enum:
            auto:
              x-field-uid: 1
            value:
              x-field-uid: 2
          enum:
          - auto
          - value
        auto:
          description: |-
            The OTG implementation must provide a system generated value for this property.
          type: string
          x-field-uid: 2
        value:
          description: |-
            User must specify a value if mode is not auto.
          type: string
          x-field-uid: 3
    Lldp.OrgInfo:
      description: "The organization specific information configured in the Organization\
        \ Specific TLV. "
      type: object
      properties:
        oui:
          description: "The organizationally unique identifier field shall contain\
            \ the organization's OUI as defined in Clause 9 of IEEE  Std 802. It is\
            \ a 24 bit number that uniquely identifies a vendor, manufacturer, or\
            \ other organizations. "
          type: string
          format: hex
          maxLength: 6
          minLength: 6
          default: 0080C2
          x-field-uid: 1
        subtype:
          description: |-
            The organizationally defined subtype field shall contain a unique subtype value assigned by the defining organization.
          type: integer
          format: uint32
          minimum: 1
          maximum: 127
          default: 1
          x-field-uid: 2
        information:
          description: |-
            Contains the organizationally defined information. The actual format of the organizationally defined information string  field is organizationally specific and can contain either binary or alpha-numeric information that is instance specific  for the particular TLV type and subtype. Alpha-numeric information are encoded in UTF-8 (as specified in IETF RFC 3629).  Or include one or more information fields with their associated field-type identifiers, designators similar to those in  the Management Address TLV.
          $ref: '#/components/schemas/Lldp.OrgInfoType'
          x-field-uid: 3
    Lldp.OrgInfoType:
      description: |-
        Contains either the Alpha-numeric information encoded in UTF-8 (as specified in IETF RFC 3629) or include one or more information fields with  their associated field-type identifiers designators, similar to those in the Management Address TLV. Currently only one choice as info is given in future if required it can be extended to define sub tlvs.
      type: object
      properties:
        choice:
          description: |-
            In info mode the organizationally defined information contain either binary or alpha-numeric information encoded in UTF-8  (as specified in IETF RFC 3629).
          type: string
          default: info
          x-field-uid: 1
          x-enum:
            info:
              x-field-uid: 1
          enum:
          - info
        info:
          description: |-
            The organizationally defined information encoded in UTF-8 (as specified in IETF RFC 3629). This byte stream can be of any  length from 1 to 507 bytes. In the info byte stream, one byte is represented as string of 2 characters, for example 2  character string (0x)AB represents value of a single byte. So the maximum length of this attribute is 1014 (507 * 2 hex  characters per byte).
          type: string
          format: hex
          minLength: 1
          maxLength: 1014
          x-field-uid: 2
    StatefulFlow:
      description: |-
        Conversational traffic where the responding side can be responded back with control messages, eg incase of rocev2 responding side can send ack, nak.
      type: object
      properties:
        choice:
          description: |-
            Stateful traffic flow configuration.
          type: string
          x-enum:
            rocev2:
              x-field-uid: 1
          x-field-uid: 1
          enum:
          - rocev2
        rocev2:
          description: |-
            RoCEv2 Flow Groups.
          type: array
          items:
            $ref: '#/components/schemas/Rocev2.Flows'
          x-field-uid: 2
    Rocev2.Flows:
      description: |-
        RoCEv2 traffic flow configuration.
      type: object
      properties:
        tx_ports:
          description: |-
            Specifies the list of transmit (TX) ports used for sending RoCEv2 traffic.
          type: array
          items:
            $ref: '#/components/schemas/Rocev2.TxPorts'
          x-field-uid: 1
    Rocev2.TxPorts:
      description: |-
        Defines the transmit (TX) port settings for RoCEv2 traffic, including the port name and transmission type configuration.
      type: object
      properties:
        port_name:
          description: |
            The name of port for which this settings will be applied to.

            x-constraint:
            - /components/schemas/Port/properties/name
          type: string
          x-constraint:
          - /components/schemas/Port/properties/name
          x-field-uid: 1
        transmit_type:
          $ref: '#/components/schemas/Rocev2.TransmitType'
          x-field-uid: 2
    Rocev2.TransmitType:
      description: |-
        RoCEv2 flows can be configured to run in continuous mode or fixed iteration.
      type: object
      properties:
        choice:
          type: string
          default: target_line_rate
          x-enum:
            target_line_rate:
              x-field-uid: 1
          x-field-uid: 1
          enum:
          - target_line_rate
        target_line_rate:
          $ref: '#/components/schemas/Rocev2.TargetLineRate'
          x-field-uid: 2
    Rocev2.TargetLineRate:
      description: |-
        Configure target line rate of traffic rate on this port as percentage of link speed.
      type: object
      properties:
        value:
          description: |-
            Target Line Rate as percentage of max line rate.
          type: integer
          format: uint64
          minimum: 0
          maximum: 100
          default: 98
          x-field-uid: 1
        flows:
          type: array
          items:
            $ref: '#/components/schemas/Rocev2.Flow'
          x-field-uid: 2
    Rocev2.Flow:
      description: |-
        Configure properties for a specific RoCE flow on the Tx port.
      type: object
      required:
      - tx_endpoint
      - name
      properties:
        tx_endpoint:
          description: |
            The unique name of an emulated device that will be transmitting the flows.

            x-constraint:
            - /components/schemas/Rocev2.QPs/properties/qp_name
          type: string
          x-constraint:
          - /components/schemas/Rocev2.QPs/properties/qp_name
          x-field-uid: 1
        rx_endpoint:
          description: |
            The unique name of remote QP or port which be receiving the packets for the flow.

            x-constraint:
            - /components/schemas/Port/properties/name
            - /components/schemas/Rocev2.QPs/properties/qp_name
          type: string
          x-constraint:
          - /components/schemas/Port/properties/name
          - /components/schemas/Rocev2.QPs/properties/qp_name
          x-field-uid: 2
        name:
          x-field-uid: 3
          description: |-
            Globally unique name of an object. It also serves as the primary key for arrays of objects.
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-unique: global
        rocev2_verb:
          $ref: '#/components/schemas/Rocev2.Verb'
          x-field-uid: 4
        message_size:
          description: |-
            Length of Message that needs to be transmitted to the remote end-point.
          type: integer
          format: uint32
          default: 1
          minimum: 0
          maximum: 65535
          x-field-uid: 5
        message_size_unit:
          description: |-
            Unit of the transfer message size. Available options are Bytes, KiloBtyes (KB), NegaBytes (MB) and GigaBytes (GB).
          type: string
          default: MB
          x-enum:
            bytes:
              x-field-uid: 1
            kb:
              x-field-uid: 2
            mb:
              x-field-uid: 3
            gb:
              x-field-uid: 4
          x-field-uid: 6
          enum:
          - bytes
          - kb
          - mb
          - gb
    Rocev2.Verb:
      description: |-
        RoCEv2 Verb. Available options are: WRITE, WRITE_With_Immediate, SEND, SEND_With_Immediate and READ.
      type: object
      properties:
        choice:
          type: string
          default: write
          x-enum:
            write:
              x-field-uid: 1
            write_with_immediate:
              x-field-uid: 2
            send:
              x-field-uid: 3
            send_with_immediate:
              x-field-uid: 4
            read:
              x-field-uid: 5
          x-field-uid: 1
          enum:
          - write
          - write_with_immediate
          - send
          - send_with_immediate
          - read
        write_with_immediate:
          $ref: '#/components/schemas/Rocev2.ImmediateData'
          x-field-uid: 2
        send_with_immediate:
          $ref: '#/components/schemas/Rocev2.ImmediateData'
          x-field-uid: 3
    Rocev2.ImmediateData:
      description: |-
        Four bytes of immediate Data for SEND/WRITE with immediate.
      type: object
      properties:
        immediate_data:
          description: |-
            Four bytes of immediate Data for SEND/WRITE with immediate.
          type: string
          format: hex
          default: '00000000'
          minimum: 1
          maximum: 8
          x-field-uid: 1
    PerPort.Options:
      description: |-
        Port specific configurations.
      type: object
      properties:
        port_name:
          description: |
            The name of port for which this settings will be applied to.

            x-constraint:
            - /components/schemas/Port/properties/name
          type: string
          x-constraint:
          - /components/schemas/Port/properties/name
          x-field-uid: 1
        protocols:
          type: array
          items:
            $ref: '#/components/schemas/Port.Protocol'
          x-field-uid: 2
    Port.Protocol:
      description: |-
        Supprted protocols.
      type: object
      properties:
        choice:
          description: |-
            list of protocols that have per port settings
          type: string
          default: rocev2
          x-enum:
            rocev2:
              x-field-uid: 1
          x-field-uid: 1
          enum:
          - rocev2
        rocev2:
          $ref: '#/components/schemas/Rocev2.PerPortSettings'
          x-field-uid: 2
    Rocev2.PerPortSettings:
      description: |-
        Data plane traffic flow configuration for a test port.
      type: object
      properties:
        cnp:
          $ref: '#/components/schemas/Rocev2.CNP'
          x-field-uid: 1
        connection_type:
          $ref: '#/components/schemas/Rocev2.QPConnectionType'
          x-field-uid: 2
        dcqcn_settings:
          $ref: '#/components/schemas/Rocev2.DCQCN'
          x-field-uid: 3
    Rocev2.CNP:
      description: |-
        CNP parameters.
      type: object
      properties:
        choice:
          type: string
          default: ip_dscp
          x-enum:
            ip_dscp:
              x-field-uid: 1
          x-field-uid: 1
          enum:
          - ip_dscp
        ip_dscp:
          description: |-
            IP DSCP value for the CNP packets.
          $ref: '#/components/schemas/Rocev2.PriorityValue'
          x-field-uid: 2
        ecn_value:
          description: |-
            CNP ECN Value.
          type: string
          default: ect_1
          x-enum:
            non_ect:
              x-field-uid: 1
            ect_1:
              x-field-uid: 2
            ect_0:
              x-field-uid: 3
            ce:
              x-field-uid: 4
          x-field-uid: 3
          enum:
          - non_ect
          - ect_1
          - ect_0
          - ce
        cnp_delay_timer:
          description: |-
            The interval duration between the generation of successive CNP packets should be specified in microseconds.
          type: integer
          format: uint32
          default: 55
          minimum: 0
          maximum: 255
          x-field-uid: 4
    Rocev2.QPConnectionType:
      description: |-
        Specifies the connection type for the QP, determining what and how the QP transfers data.
      type: object
      properties:
        choice:
          type: string
          default: reliable_connection
          x-enum:
            reliable_connection:
              x-field-uid: 1
          x-field-uid: 1
          enum:
          - reliable_connection
        reliable_connection:
          $ref: '#/components/schemas/Rocev2.AckAndNak'
          x-field-uid: 2
    Rocev2.AckAndNak:
      description: |-
        Defines the ACK and NAK settings for RoCEv2. This configuration ensures reliable data delivery by controlling how the system responds to successful and failed packet transmissions.
      type: object
      properties:
        ack:
          $ref: '#/components/schemas/Rocev2.ACK'
          x-field-uid: 1
        nak:
          $ref: '#/components/schemas/Rocev2.NAK'
          x-field-uid: 2
        enable_retransmission_timeout:
          description: |-
            Enable Retransmission on ACK Timeout.
          type: boolean
          default: true
          x-field-uid: 3
        retransmission_timeout_value:
          description: |-
            The duration to wait before retrying transmission upon not receiving an acknowledgment (ACK) or negative acknowledgment (NAK) is specified in milliseconds.
          type: integer
          format: uint32
          default: 1
          minimum: 0
          maximum: 5369
          x-field-uid: 4
        retransmission_retry_count:
          description: |-
            Number of retransmission attempts before stopping due to missing ACK/NAK.
          type: integer
          format: uint32
          default: 3
          minimum: 0
          maximum: 254
          x-field-uid: 5
    Rocev2.ACK:
      description: |-
        ACK parameters.
      type: object
      properties:
        choice:
          type: string
          default: ip_dscp
          x-enum:
            ip_dscp:
              x-field-uid: 1
          x-field-uid: 1
          enum:
          - ip_dscp
        ip_dscp:
          description: |-
            IP DSCP value for the ACK packets.
          $ref: '#/components/schemas/Rocev2.PriorityValue'
          x-field-uid: 2
        ecn_value:
          description: |-
            ACK ECN Value.
          type: string
          default: ect_1
          x-enum:
            non_ect:
              x-field-uid: 1
            ect_1:
              x-field-uid: 2
            ect_0:
              x-field-uid: 3
            ce:
              x-field-uid: 4
          x-field-uid: 3
          enum:
          - non_ect
          - ect_1
          - ect_0
          - ce
    Rocev2.NAK:
      description: |-
        NAK parameters.
      type: object
      properties:
        choice:
          type: string
          default: ip_dscp
          x-enum:
            ip_dscp:
              x-field-uid: 1
          x-field-uid: 1
          enum:
          - ip_dscp
        ip_dscp:
          description: |-
            IP DSCP value for the NAK packets.
          $ref: '#/components/schemas/Rocev2.PriorityValue'
          x-field-uid: 2
        ecn_value:
          description: |-
            ECN Code point to add in NAK packets.
          type: string
          default: ect_1
          x-enum:
            non_ect:
              x-field-uid: 1
            ect_1:
              x-field-uid: 2
            ect_0:
              x-field-uid: 3
            ce:
              x-field-uid: 4
          x-field-uid: 3
          enum:
          - non_ect
          - ect_1
          - ect_0
          - ce
    Rocev2.PriorityValue:
      description: |-
        Priority value for CNP, ACK or NAK packets.
      type: object
      properties:
        value:
          type: integer
          format: uint32
          default: 48
          minimum: 0
          maximum: 63
          x-field-uid: 1
    Rocev2.DCQCN:
      description: |-
        RoCEv2 DCQCN Settings.
      type: object
      properties:
        enable_dcqcn:
          description: |-
            Enable DCQCN port settigns.
          type: boolean
          default: true
          x-field-uid: 1
        alpha_g:
          description: |-
            Controls the increment / decrement of the alpha parameter in DCQCN algorithm.
          type: integer
          format: uint64
          default: 1019
          minimum: 1
          maximum: 1023
          x-field-uid: 2
        initial_alpha:
          description: "Value of the alpha at the time when the first CNP is received. "
          type: integer
          format: uint64
          default: 1023
          minimum: 1
          maximum: 1023
          x-field-uid: 3
        alpha_update_period:
          description: |-
            timer after which the alpha parameter will update according to the algorithm. Unit is microseconds.
          type: integer
          format: uint64
          default: 21
          x-field-uid: 4
        rate_reduction_time_period:
          description: "timer after which the algorithm will check if CNP is there\
            \ or not and if CNP is present it will reduce the rate.\nUnit is microseconds. "
          type: integer
          format: uint64
          default: 21
          x-field-uid: 5
        initial_rate_after_first_cnp:
          description: |-
            This is the percentage of rate user wants to set on receiving the first CNP.
          type: number
          format: float
          minimum: 0
          maximum: 100
          default: 0.002
          x-field-uid: 6
        minimum_rate_limmit:
          description: "This is the minimum line rate which user wants to restrict.\
            \ Below this the algorithm cannot set the rate. "
          type: number
          format: float
          minimum: 0
          maximum: 100
          default: 0.002
          x-field-uid: 7
        maximum_rate_decrement_at_time:
          description: |-
            This is the maximum that line rate can be decreased on triggering a rate reduce algorithm.
          type: integer
          format: uint32
          default: 10
          minimum: 0
          maximum: 100
          x-field-uid: 8
        clamp_target_rate:
          description: "Is used to reduce the target rate by remembering the current\
            \ rate.\nIf it is not set, then only the target rate will be reduced for\
            \ the\nfirst CNP after each rate increment otherwise if its set then the\
            \ target\nrate will be reduced for each rate reduce. "
          type: boolean
          default: false
          x-field-uid: 9
        rate_increment_time:
          description: |-
            After the expiry of this timer, the rate recovery algorithms will be triggered. Unit is microseconds.
          type: integer
          format: uint64
          default: 250
          x-field-uid: 10
        rate_increment_byte_counter:
          description: "This is the bytes counter.\nAfter the expiry of this bytes\
            \ also counter the rate recovery algorithms will be triggered, and the\
            \ rate will be recovered. "
          type: integer
          format: uint64
          default: 32767
          minimum: 1
          maximum: 32767
          x-field-uid: 11
        rate_increment_threshold:
          description: "This is the threshold value which will ensure how many times,\
            \ each rate recovery algorithms will execute before moving to the next\
            \ value. "
          type: integer
          format: uint32
          default: 25
          minimum: 1
          maximum: 31
          x-field-uid: 12
        additive_increment_rate:
          description: "This is the rate at which the target rates will increase when\
            \ the DCQCN will be in the additive increase rate recovery mode. "
          type: number
          format: float
          minimum: 0
          maximum: 100
          default: 0.001
          x-field-uid: 13
        hyper_increment_rate:
          description: "This is the rate at which the target rates will increase when\
            \ the DCQCN will be in the hyper increment rate recovery mode. "
          type: number
          format: float
          minimum: 0
          maximum: 100
          default: 0.001
          x-field-uid: 14
    Error:
      description: |-
        Error response generated while serving API request.
      type: object
      required:
      - code
      - errors
      properties:
        code:
          description: |-
            Numeric status code based on the underlying transport being used.
            The API server MUST set this code explicitly based on following references:
              - HTTP 4xx errors: https://datatracker.ietf.org/doc/html/rfc9110#section-15.5
              - HTTP 5xx errors: https://datatracker.ietf.org/doc/html/rfc9110#section-15.6
              - gRPC errors: https://grpc.github.io/grpc/core/md_doc_statuscodes.html
          type: integer
          format: int32
          x-field-uid: 1
        kind:
          description: |-
            Classification of error originating from within API server that may not be mapped to the value in `code`.
            Absence of this field may indicate that the error did not originate from within API server.
          type: string
          x-enum:
            validation:
              x-field-uid: 1
            internal:
              x-field-uid: 2
          x-field-uid: 2
          enum:
          - validation
          - internal
        errors:
          description: |-
            List of error messages generated while executing the request.
          type: array
          items:
            type: string
          x-field-uid: 3
    Warning:
      description: |-
        A list of warnings that have occurred while executing the request.
      type: object
      properties:
        warnings:
          description: "A list of any system specific warnings that have occurred\
            \ while \nexecuting the request."
          type: array
          items:
            type: string
          x-field-uid: 1
    Config.Update:
      description: |-
        Request for updating specific attributes of resources in traffic generator
      type: object
      properties:
        choice:
          type: string
          x-enum:
            flows:
              x-field-uid: 1
          x-field-uid: 1
          enum:
          - flows
        flows:
          $ref: '#/components/schemas/Flows.Update'
          x-field-uid: 2
    Flows.Update:
      description: |-
        A container of flows with associated properties to be updated without affecting the flows current transmit state.
      type: object
      required:
      - property_names
      - flows
      properties:
        property_names:
          description: |-
            Flow properties to be updated without affecting the transmit state.
          type: array
          items:
            type: string
            x-enum:
              rate:
                x-field-uid: 1
              size:
                x-field-uid: 2
            enum:
            - rate
            - size
          x-field-uid: 1
        flows:
          description: |-
            The list of configured flows for which given property will be updated.
          type: array
          items:
            $ref: '#/components/schemas/Flow'
          x-field-uid: 2
    Control.State:
      description: |-
        Request for setting operational state of configured resources.
      type: object
      required:
      - choice
      properties:
        choice:
          type: string
          x-enum:
            port:
              x-field-uid: 1
            protocol:
              x-field-uid: 2
            traffic:
              x-field-uid: 3
          x-field-uid: 1
          enum:
          - port
          - protocol
          - traffic
        port:
          $ref: '#/components/schemas/State.Port'
          x-field-uid: 2
        protocol:
          $ref: '#/components/schemas/State.Protocol'
          x-field-uid: 3
        traffic:
          $ref: '#/components/schemas/State.Traffic'
          x-field-uid: 4
    State.Port:
      description: |-
        States associated with configured ports.
      type: object
      required:
      - choice
      properties:
        choice:
          type: string
          x-enum:
            link:
              x-field-uid: 1
            capture:
              x-field-uid: 2
          x-field-uid: 1
          enum:
          - link
          - capture
        link:
          $ref: '#/components/schemas/State.Port.Link'
          x-field-uid: 2
        capture:
          $ref: '#/components/schemas/State.Port.Capture'
          x-field-uid: 3
    State.Traffic:
      description: |-
        States associated with configured flows
      type: object
      required:
      - choice
      properties:
        choice:
          type: string
          x-enum:
            flow_transmit:
              x-field-uid: 1
          x-field-uid: 1
          enum:
          - flow_transmit
        flow_transmit:
          $ref: '#/components/schemas/State.Traffic.FlowTransmit'
          x-field-uid: 2
    State.Protocol:
      description: |-
        States associated with protocols on configured resources.
      type: object
      required:
      - choice
      properties:
        choice:
          type: string
          x-enum:
            all:
              x-field-uid: 1
            route:
              x-field-uid: 2
            lacp:
              x-field-uid: 3
            bgp:
              x-field-uid: 4
            isis:
              x-field-uid: 5
            ospfv2:
              x-field-uid: 6
            ospfv3:
              x-field-uid: 7
          x-field-uid: 1
          enum:
          - all
          - route
          - lacp
          - bgp
          - isis
          - ospfv2
          - ospfv3
        all:
          $ref: '#/components/schemas/State.Protocol.All'
          x-field-uid: 2
        route:
          $ref: '#/components/schemas/State.Protocol.Route'
          x-field-uid: 3
        lacp:
          $ref: '#/components/schemas/State.Protocol.Lacp'
          x-field-uid: 4
        bgp:
          $ref: '#/components/schemas/State.Protocol.Bgp'
          x-field-uid: 5
        isis:
          $ref: '#/components/schemas/State.Protocol.Isis'
          x-field-uid: 6
        ospfv2:
          $ref: '#/components/schemas/State.Protocol.Ospfv2'
          x-field-uid: 7
        ospfv3:
          $ref: '#/components/schemas/State.Protocol.Ospfv3'
          x-field-uid: 8
        rocev2:
          $ref: '#/components/schemas/State.Protocol.Rocev2'
          x-field-uid: 9
    State.Port.Link:
      description: |-
        Sets the link of configured ports.
      type: object
      required:
      - state
      properties:
        port_names:
          description: |
            The names of target ports. An empty or null list will target all ports.

            x-constraint:
            - /components/schemas/Port/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Port/properties/name
          x-field-uid: 1
        state:
          description: |-
            The link state.
          type: string
          x-field-uid: 2
          x-enum:
            up:
              x-field-uid: 1
            down:
              x-field-uid: 2
          enum:
          - up
          - down
    State.Port.Capture:
      description: |-
        Sets the capture state of configured ports
      type: object
      required:
      - state
      properties:
        port_names:
          description: |
            The names of ports to which the capture state will be applied to. If the list of port_names is empty or null the state will be applied to all configured ports.
            If the list is not empty any port that is not included in the list of port_names MUST be ignored and not included in the state change.

            x-constraint:
            - /components/schemas/Port/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Port/properties/name
          x-field-uid: 1
        state:
          description: |-
            The capture state.
          type: string
          x-field-uid: 2
          x-enum:
            start:
              x-field-uid: 1
            stop:
              x-field-uid: 2
          enum:
          - start
          - stop
    State.Traffic.FlowTransmit:
      description: |-
        Provides state control of flow transmission.
      type: object
      required:
      - state
      properties:
        flow_names:
          description: |
            The names of flows to which the transmit state will be applied to. If the list of flow_names is empty or null the state will be applied to all configured flows.
            If the list is not empty any flow that is not included in the list of flow_names MUST be ignored and not included in the state change.

            x-constraint:
            - /components/schemas/Flow/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Flow/properties/name
          x-field-uid: 1
        state:
          description: |-
            The transmit state.
            If the value of the state property is 'start' then all flows defined by the 'flow_names' property will be started and the metric counters MUST be cleared prior to starting the flow(s).
            If the value of the state property is 'stop' then all flows defined by the 'flow_names' property will be stopped and the metric counters MUST NOT be cleared.
            If the value of the state property is 'pause' then all flows defined by the 'flow_names' property will be paused and the metric counters MUST NOT be cleared.
            If the value of the state property is 'resume' then any paused flows defined by the 'flow_names' property will start transmit at the point at which they were paused. Any flow that is stopped will start transmit at the beginning of the flow. The flow(s) MUST NOT have their metric counters cleared.
          type: string
          x-field-uid: 2
          x-enum:
            start:
              x-field-uid: 1
            stop:
              x-field-uid: 2
            pause:
              x-field-uid: 3
            resume:
              x-field-uid: 4
          enum:
          - start
          - stop
          - pause
          - resume
    State.Protocol.All:
      description: |-
        Sets all configured protocols to `start` or `stop` state.
        Setting protocol state to `start` shall be a no-op if preceding `set_config` API call was made with `config.options.protocol_options.auto_start_all` set to `true` or if all the configured protocols are already started.
      type: object
      required:
      - state
      properties:
        state:
          description: |-
            Protocol states
          type: string
          x-field-uid: 1
          x-enum:
            start:
              x-field-uid: 1
            stop:
              x-field-uid: 2
          enum:
          - start
          - stop
    State.Protocol.Route:
      description: |-
        Sets the state of configured routes
      type: object
      required:
      - state
      properties:
        names:
          description: |
            The names of device route objects to control. If no names are specified then all route objects that match the x-constraint will be affected.

            x-constraint:
            - /components/schemas/Bgp.V4RouteRange/properties/name
            - /components/schemas/Bgp.V6RouteRange/properties/name
            - /components/schemas/Isis.V4RouteRange/properties/name
            - /components/schemas/Isis.V6RouteRange/properties/name
            - /components/schemas/Ospfv2.V4RouteRange/properties/name
            - /components/schemas/Ospfv3.V6RouteRange/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Bgp.V4RouteRange/properties/name
          - /components/schemas/Bgp.V6RouteRange/properties/name
          - /components/schemas/Isis.V4RouteRange/properties/name
          - /components/schemas/Isis.V6RouteRange/properties/name
          - /components/schemas/Ospfv2.V4RouteRange/properties/name
          - /components/schemas/Ospfv3.V6RouteRange/properties/name
          x-field-uid: 1
        state:
          description: |-
            Route states
          type: string
          x-field-uid: 2
          x-enum:
            withdraw:
              x-field-uid: 1
            advertise:
              x-field-uid: 2
          enum:
          - withdraw
          - advertise
    State.Protocol.Lacp:
      description: |-
        Sets state of configured LACP
      type: object
      required:
      - choice
      properties:
        choice:
          type: string
          x-enum:
            admin:
              x-field-uid: 1
            member_ports:
              x-field-uid: 2
          x-field-uid: 1
          enum:
          - admin
          - member_ports
        admin:
          $ref: '#/components/schemas/State.Protocol.Lacp.Admin'
          x-field-uid: 2
        member_ports:
          $ref: '#/components/schemas/State.Protocol.Lacp.MemberPorts'
          x-field-uid: 3
    State.Protocol.Lacp.Admin:
      description: |-
        Sets admin state of LACP configured on LAG members
      required:
      - state
      properties:
        lag_member_names:
          description: |
            The names of LAG members (ports) for which the state has to be applied. An empty or null list will control all LAG members.

            x-constraint:
            - /components/schemas/Port/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Port/properties/name
          x-field-uid: 1
        state:
          description: |-
            The LACP Member admin state. 'up' will send LACPDUs with 'sync' flag set on selected member ports. 'down' will send LACPDUs with 'sync' flag unset on selected member ports.
          type: string
          x-field-uid: 2
          x-enum:
            up:
              x-field-uid: 1
            down:
              x-field-uid: 2
          enum:
          - up
          - down
    State.Protocol.Lacp.MemberPorts:
      description: |-
        Sets state of LACP member ports configured on LAG.
      required:
      - state
      properties:
        lag_member_names:
          description: |
            The names of LAG members (ports) for which the state has to be applied. An empty or null list will control all LAG members.

            x-constraint:
            - /components/schemas/Port/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Port/properties/name
          x-field-uid: 1
        state:
          description: |-
            The desired LACP member port state.
          type: string
          x-field-uid: 2
          x-enum:
            up:
              x-field-uid: 1
            down:
              x-field-uid: 2
          enum:
          - up
          - down
    State.Protocol.Bgp:
      description: |-
        Sets state of configured BGP peers.
      type: object
      required:
      - choice
      properties:
        choice:
          type: string
          x-enum:
            peers:
              x-field-uid: 1
          x-field-uid: 1
          enum:
          - peers
        peers:
          $ref: '#/components/schemas/State.Protocol.Bgp.Peers'
          x-field-uid: 2
    State.Protocol.Bgp.Peers:
      description: |-
        Sets state of configured BGP peers.
      required:
      - state
      properties:
        peer_names:
          description: |
            The names of BGP peers for which the state has to be applied. An empty or null list will control all BGP peers.

            x-constraint:
            - /components/schemas/Bgp.V4Peer/properties/name
            - /components/schemas/Bgp.V6Peer/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Bgp.V4Peer/properties/name
          - /components/schemas/Bgp.V6Peer/properties/name
          x-field-uid: 1
        state:
          description: "The desired state of BGP peer. If the desired state is 'up',\
            \ underlying IP interface(s) would be brought up automatically (if not\
            \ already up), would attempt to bring up the BGP session(s) and advertise\
            \ route(s), if configured. If the desired state is 'down', BGP session(s)\
            \ would be brought down. "
          type: string
          x-field-uid: 2
          x-enum:
            up:
              x-field-uid: 1
            down:
              x-field-uid: 2
          enum:
          - up
          - down
    State.Protocol.Isis:
      description: |-
        Sets state of configured ISIS routers.
      type: object
      required:
      - choice
      properties:
        choice:
          type: string
          x-enum:
            routers:
              x-field-uid: 1
          x-field-uid: 1
          enum:
          - routers
        routers:
          $ref: '#/components/schemas/State.Protocol.Isis.Routers'
          x-field-uid: 2
    State.Protocol.Isis.Routers:
      description: |-
        Sets state of configured ISIS routers.
      required:
      - state
      properties:
        router_names:
          description: |
            The names of ISIS routers for which the state has to be applied. An empty or null list will control all ISIS routers.

            x-constraint:
            - /components/schemas/Device.IsisRouter/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Device.IsisRouter/properties/name
          x-field-uid: 1
        state:
          description: "The desired state of ISIS router. If the desired state is\
            \ 'up', would attempt to bring up the ISIS session(s) with respective\
            \ peer(s) and advertise route(s), if configured. If the desired state\
            \ is 'down', would bring down ISIS session(s) with respective peer(s). "
          type: string
          x-field-uid: 2
          x-enum:
            up:
              x-field-uid: 1
            down:
              x-field-uid: 2
          enum:
          - up
          - down
    State.Protocol.Ospfv2:
      description: |-
        Sets state of configured OSPFv2 routers.
      type: object
      required:
      - choice
      properties:
        choice:
          type: string
          x-enum:
            routers:
              x-field-uid: 1
          x-field-uid: 1
          enum:
          - routers
        routers:
          $ref: '#/components/schemas/State.Protocol.Ospfv2.Routers'
          x-field-uid: 2
    State.Protocol.Ospfv2.Routers:
      description: |-
        Sets state of configured OSPFv2 routers.
      required:
      - state
      properties:
        router_names:
          description: |
            The names of OSPFv2 routers for which the state has to be applied. An empty or null list will control all OSPFv2 routers.

            x-constraint:
            - /components/schemas/Device.Ospfv2/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Device.Ospfv2/properties/name
          x-field-uid: 1
        state:
          description: "The desired state of OSPFv2 router. If the desired state is\
            \ 'up', would attempt to bring up the OSPFv2 session(s) with respective\
            \ peer(s) and advertise route(s), if configured. If the desired state\
            \ is 'down', would bring down OSPFv2 session(s) with respective peer(s). "
          type: string
          x-field-uid: 2
          x-enum:
            up:
              x-field-uid: 1
            down:
              x-field-uid: 2
          enum:
          - up
          - down
    State.Protocol.Ospfv3:
      description: |-
        Sets state of configured OSPFv3 routers.
      type: object
      required:
      - choice
      properties:
        choice:
          type: string
          x-enum:
            routers:
              x-field-uid: 1
          x-field-uid: 1
          enum:
          - routers
        routers:
          $ref: '#/components/schemas/State.Protocol.Ospfv3.Routers'
          x-field-uid: 2
    State.Protocol.Ospfv3.Routers:
      description: |-
        Sets state of configured OSPFv3 routers.
      required:
      - state
      properties:
        router_names:
          description: |
            The names of OSPFv3 routers for which the state has to be applied. An empty or null list will control all OSPFv3 routers.

            x-constraint:
            - /components/schemas/Ospfv3.RouterInstance/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Ospfv3.RouterInstance/properties/name
          x-field-uid: 1
        state:
          description: "The desired state of OSPFv3 router. If the desired state is\
            \ 'up', would attempt to bring up the OSPFv3 session(s) with respective\
            \ peer(s) and advertise route(s), if configured. If the desired state\
            \ is 'down', would bring down OSPFv3 session(s) with respective peer(s). "
          type: string
          x-field-uid: 2
          x-enum:
            up:
              x-field-uid: 1
            down:
              x-field-uid: 2
          enum:
          - up
          - down
    State.Protocol.Rocev2:
      description: |-
        Sets state of configured RoCEv2 peers.
      type: object
      required:
      - choice
      properties:
        choice:
          type: string
          x-enum:
            peers:
              x-field-uid: 1
          x-field-uid: 1
          enum:
          - peers
        peers:
          $ref: '#/components/schemas/State.Protocol.Rocev2.Peers'
          x-field-uid: 2
    State.Protocol.Rocev2.Peers:
      description: |-
        Sets state of configured RoCEv2 peers.
      required:
      - state
      properties:
        peer_names:
          description: |
            The names of RoCEv2 peers for which the state has to be applied. An empty or null list will control all RoCEv2 peers.

            x-constraint:
            - /components/schemas/Rocev2.V4Peer/properties/name
            - /components/schemas/Rocev2.V6Peer/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Rocev2.V4Peer/properties/name
          - /components/schemas/Rocev2.V6Peer/properties/name
          x-field-uid: 1
        state:
          description: "The desired state of RoCEv2 peer. If the desired state is\
            \ 'up', underlying IP interface(s) would be brought up automatically (if\
            \ not already up),\n would attempt to bring up the RoCEv2 session(s).\n\
            If the desired state is 'down', RoCEv2 session(s) would be brought down. "
          type: string
          x-field-uid: 2
          x-enum:
            up:
              x-field-uid: 1
            down:
              x-field-uid: 2
          enum:
          - up
          - down
    Control.Action:
      description: |-
        Request for triggering action against configured resources.
      type: object
      required:
      - choice
      properties:
        choice:
          type: string
          x-enum:
            protocol:
              x-field-uid: 1
          x-field-uid: 1
          enum:
          - protocol
        protocol:
          $ref: '#/components/schemas/Action.Protocol'
          x-field-uid: 2
    Control.Action.Response:
      description: |-
        Response for action triggered against configured resources along with warnings.
      type: object
      properties:
        warnings:
          description: |-
            List of warnings generated while triggering specified action
          type: array
          items:
            type: string
          x-field-uid: 1
        response:
          $ref: '#/components/schemas/Action.Response'
          x-field-uid: 2
    Action.Response:
      description: |-
        Response for action triggered against configured resources.
      type: object
      required:
      - choice
      properties:
        choice:
          type: string
          x-enum:
            protocol:
              x-field-uid: 1
          x-field-uid: 1
          enum:
          - protocol
        protocol:
          $ref: '#/components/schemas/Action.Response.Protocol'
          x-field-uid: 2
    Action.Protocol:
      description: |-
        Actions associated with protocols on configured resources.
      type: object
      required:
      - choice
      properties:
        choice:
          type: string
          x-enum:
            ipv4:
              x-field-uid: 1
            ipv6:
              x-field-uid: 2
            bgp:
              x-field-uid: 3
          x-field-uid: 1
          enum:
          - ipv4
          - ipv6
          - bgp
        ipv4:
          $ref: '#/components/schemas/Action.Protocol.Ipv4'
          x-field-uid: 2
        ipv6:
          $ref: '#/components/schemas/Action.Protocol.Ipv6'
          x-field-uid: 3
        bgp:
          $ref: '#/components/schemas/Action.Protocol.Bgp'
          x-field-uid: 4
    Action.Response.Protocol:
      description: |-
        Response for actions associated with protocols on configured resources.
      type: object
      required:
      - choice
      properties:
        choice:
          type: string
          x-enum:
            ipv4:
              x-field-uid: 1
            ipv6:
              x-field-uid: 2
          x-field-uid: 1
          enum:
          - ipv4
          - ipv6
        ipv4:
          $ref: '#/components/schemas/Action.Response.Protocol.Ipv4'
          x-field-uid: 2
        ipv6:
          $ref: '#/components/schemas/Action.Response.Protocol.Ipv6'
          x-field-uid: 3
    Action.Protocol.Ipv4:
      description: |-
        Actions associated with IPv4 on configured resources.
      type: object
      required:
      - choice
      properties:
        choice:
          type: string
          x-enum:
            ping:
              x-field-uid: 1
          x-field-uid: 1
          enum:
          - ping
        ping:
          $ref: '#/components/schemas/Action.Protocol.Ipv4.Ping'
          x-field-uid: 2
    Action.Response.Protocol.Ipv4:
      description: |-
        Response for actions associated with IPv4 on configured resources.
      type: object
      required:
      - choice
      properties:
        choice:
          type: string
          x-enum:
            ping:
              x-field-uid: 1
          x-field-uid: 1
          enum:
          - ping
        ping:
          $ref: '#/components/schemas/Action.Response.Protocol.Ipv4.Ping'
          x-field-uid: 2
    Action.Protocol.Ipv4.Ping:
      description: |-
        Request for initiating ping between multiple source and destination pairs.
      type: object
      properties:
        requests:
          description: |-
            List of IPv4 ping requests.
          type: array
          items:
            $ref: '#/components/schemas/Action.Protocol.Ipv4.PingRequest'
          x-field-uid: 1
    Action.Protocol.Ipv4.PingRequest:
      description: |-
        Under Review: Most ping request parameters are still TBD.

        Request for initiating ping between a single source and destination pair.
        For ping request, 1 IPv4 ICMP Echo Request shall be sent and wait for ping response to either succeed or time out. The API wait timeout for each request shall be 300ms.
      type: object
      x-status:
        status: under_review
        information: Most ping request parameters are still TBD.
      properties:
        src_name:
          description: |
            Name of source IPv4 interface to be used.

            x-constraint:
            - /components/schemas/Device.Ipv4/properties/name
          type: string
          x-constraint:
          - /components/schemas/Device.Ipv4/properties/name
          x-field-uid: 1
        dst_ip:
          description: |-
            Destination IPv4 address to ping.
          type: string
          format: ipv4
          x-field-uid: 2
    Action.Response.Protocol.Ipv4.Ping:
      description: |-
        Response for ping initiated between multiple source and destination pairs.
      type: object
      properties:
        responses:
          description: |-
            List of responses for IPv4 ping responses.
          type: array
          items:
            $ref: '#/components/schemas/Action.Response.Protocol.Ipv4.PingResponse'
          x-field-uid: 1
    Action.Response.Protocol.Ipv4.PingResponse:
      description: |-
        Response for ping initiated between a single source and destination pair.
      type: object
      required:
      - src_name
      - dst_ip
      - result
      properties:
        src_name:
          description: |
            Name of source IPv4 interface used for ping.

            x-constraint:
            - /components/schemas/Device.Ipv4/properties/name
          type: string
          x-constraint:
          - /components/schemas/Device.Ipv4/properties/name
          x-field-uid: 1
        dst_ip:
          description: |-
            Destination IPv4 address used for ping.
          type: string
          format: ipv4
          x-field-uid: 2
        result:
          description: |-
            Result of the ping request.
          type: string
          x-field-uid: 3
          x-enum:
            succeeded:
              x-field-uid: 1
            failed:
              x-field-uid: 2
          enum:
          - succeeded
          - failed
    Action.Protocol.Ipv6:
      description: |-
        Actions associated with IPv6 on configured resources.
      type: object
      required:
      - choice
      properties:
        choice:
          type: string
          x-enum:
            ping:
              x-field-uid: 1
          x-field-uid: 1
          enum:
          - ping
        ping:
          $ref: '#/components/schemas/Action.Protocol.Ipv6.Ping'
          x-field-uid: 2
    Action.Response.Protocol.Ipv6:
      description: |-
        Response for actions associated with IPv6 on configured resources.
      type: object
      required:
      - choice
      properties:
        choice:
          type: string
          x-enum:
            ping:
              x-field-uid: 1
          x-field-uid: 1
          enum:
          - ping
        ping:
          $ref: '#/components/schemas/Action.Response.Protocol.Ipv6.Ping'
          x-field-uid: 2
    Action.Protocol.Ipv6.Ping:
      description: |-
        Request for initiating ping between multiple source and destination pairs.
      type: object
      properties:
        requests:
          description: |-
            List of IPv6 ping requests.
          type: array
          items:
            $ref: '#/components/schemas/Action.Protocol.Ipv6.PingRequest'
          x-field-uid: 1
    Action.Protocol.Ipv6.PingRequest:
      description: |-
        Under Review: Most ping request parameters are still TBD.

        Request for initiating ping between a single source and destination pair.
        For ping request, 1 IPv6 ICMP Echo Request shall be sent and wait for ping response to either succeed or time out. The API wait timeout for each request shall be 300ms.
      type: object
      x-status:
        status: under_review
        information: Most ping request parameters are still TBD.
      properties:
        src_name:
          description: |
            Name of source IPv6 interface to be used.

            x-constraint:
            - /components/schemas/Device.Ipv6/properties/name
          type: string
          x-constraint:
          - /components/schemas/Device.Ipv6/properties/name
          x-field-uid: 1
        dst_ip:
          description: |-
            Destination IPv6 address to ping.
          type: string
          format: ipv6
          x-field-uid: 2
    Action.Response.Protocol.Ipv6.Ping:
      description: |-
        Response for ping initiated between multiple source and destination pairs.
      type: object
      properties:
        responses:
          description: |-
            List of responses for IPv6 ping responses.
          type: array
          items:
            $ref: '#/components/schemas/Action.Response.Protocol.Ipv6.PingResponse'
          x-field-uid: 1
    Action.Response.Protocol.Ipv6.PingResponse:
      description: |-
        Response for ping initiated between a single source and destination pair.
      type: object
      required:
      - src_name
      - dst_ip
      - result
      properties:
        src_name:
          description: |
            Name of source IPv6 interface used for ping.

            x-constraint:
            - /components/schemas/Device.Ipv6/properties/name
          type: string
          x-constraint:
          - /components/schemas/Device.Ipv6/properties/name
          x-field-uid: 1
        dst_ip:
          description: |-
            Destination IPv6 address used for ping.
          type: string
          format: ipv6
          x-field-uid: 2
        result:
          description: |-
            Result of the ping request.
          type: string
          x-field-uid: 3
          x-enum:
            succeeded:
              x-field-uid: 1
            failed:
              x-field-uid: 2
          enum:
          - succeeded
          - failed
    Action.Protocol.Bgp:
      description: |-
        Actions associated with BGP on configured resources.
      type: object
      required:
      - choice
      properties:
        choice:
          type: string
          x-enum:
            notification:
              x-field-uid: 1
            initiate_graceful_restart:
              x-field-uid: 2
          x-field-uid: 1
          enum:
          - notification
          - initiate_graceful_restart
        notification:
          $ref: '#/components/schemas/Action.Protocol.Bgp.Notification'
          x-field-uid: 2
        initiate_graceful_restart:
          $ref: '#/components/schemas/Action.Protocol.Bgp.InitiateGracefulRestart'
          x-field-uid: 3
    Action.Protocol.Bgp.Notification:
      description: "A NOTIFICATION message is sent when an error is detected with\
        \ the BGP session, such as hold timer expiring, misconfigured AS number  or\
        \ a BGP session reset is requested. This causes the BGP connection to close.\
        \ Send explicit NOTIFICATIONs for list of specified  BGP peers. If a user\
        \ wants to send custom Error Code and Error Subcode the custom object should\
        \ be configured. A user can send IANA defined BGP NOTIFICATIONs according\
        \ to https://www.iana.org/assignments/bgp-parameters/bgp-parameters.xhtml. "
      type: object
      properties:
        names:
          description: |
            The names of BGP Peers to send NOTIFICATION to. If no name is specified then NOTIFICATION will be sent to all configured BGP peers.

            x-constraint:
            - /components/schemas/Bgp.V4Peer/properties/name
            - /components/schemas/Bgp.V6Peer/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Bgp.V4Peer/properties/name
          - /components/schemas/Bgp.V6Peer/properties/name
          x-field-uid: 1
        choice:
          description: |-
            Each BGP NOTIFICATION message includes an Error Code field indicating what type of problem occurred. For certain Error Codes, an Error  Subcode field provides additional details about the specific nature of the problem.  The choice value will provide the Error Code used in NOTIFICATION message.  The Subcode can be set for each of the corresponding errors except for Hold Timer Expired error and BGP Finite State Machine error.  In both of these cases Subcode 0 will be sent. If a user wants to use non zero Sub Code then custom choice can be used.
          type: string
          x-field-uid: 2
          default: cease
          x-enum:
            cease:
              x-field-uid: 1
            message_header_error:
              x-field-uid: 2
            open_message_error:
              x-field-uid: 3
            update_message_error:
              x-field-uid: 4
            hold_timer_expired:
              x-field-uid: 5
            finite_state_machine_error:
              x-field-uid: 6
            custom:
              x-field-uid: 7
          enum:
          - cease
          - message_header_error
          - open_message_error
          - update_message_error
          - hold_timer_expired
          - finite_state_machine_error
          - custom
        cease:
          $ref: '#/components/schemas/Device.Bgp.CeaseError'
          x-field-uid: 3
        message_header_error:
          $ref: '#/components/schemas/Device.Bgp.MessageHeaderError'
          x-field-uid: 4
        open_message_error:
          $ref: '#/components/schemas/Device.Bgp.OpenMessageError'
          x-field-uid: 5
        update_message_error:
          $ref: '#/components/schemas/Device.Bgp.UpdateMessageError'
          x-field-uid: 6
        hold_timer_expired:
          $ref: '#/components/schemas/Device.Bgp.HoldTimerExpired'
          x-field-uid: 7
        finite_state_machine_error:
          $ref: '#/components/schemas/Device.Bgp.FiniteStateMachineError'
          x-field-uid: 8
        custom:
          $ref: '#/components/schemas/Device.Bgp.CustomError'
          x-field-uid: 9
    Action.Protocol.Bgp.InitiateGracefulRestart:
      description: |-
        Initiates BGP Graceful Restart process for the selected BGP peers. If no name is specified then Graceful Restart will be sent to all configured BGP peers. To emulate scenarios where a peer sends a Notification and stops the session, an optional Notification object is included. If the remote peer and the local peer are both configured to perform Graceful Restart for Notification triggered session , this will result in  Graceful Restart scenario to be triggered as per RFC8538.
      type: object
      properties:
        peer_names:
          description: |
            The names of device BGP peers objects to control.

            x-constraint:
            - /components/schemas/Bgp.V4Peer/properties/name
            - /components/schemas/Bgp.V6Peer/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Bgp.V4Peer/properties/name
          - /components/schemas/Bgp.V6Peer/properties/name
          x-field-uid: 1
        restart_delay:
          description: "Duration (in seconds) after which selected BGP peers will\
            \ initiate \nGraceful restart by sending the Open Message with Restart\
            \ State bit set in the Graceful Restart capability."
          type: integer
          format: uint32
          maximum: 3600
          default: 30
          x-field-uid: 2
        notification:
          description: |-
            Send a Notification to the peer as per configured parameters when initially bringing down a session as per
            configured parameters.
          $ref: '#/components/schemas/Action.Protocol.BgpGracefulRestart.Notification'
          x-field-uid: 3
    Action.Protocol.BgpGracefulRestart.Notification:
      description: "Defines the explicit contents of the NOTIFICATION message to be\
        \ sent when executing InitiateGracefulRestart trigger.  This causes the BGP\
        \ connection to close.If a user wants to send custom Error Code and Error\
        \ Subcode the custom object should be configured. A user can send IANA defined\
        \ BGP NOTIFICATIONs according to https://www.iana.org/assignments/bgp-parameters/bgp-parameters.xhtml. "
      type: object
      properties:
        choice:
          description: |-
            Each BGP NOTIFICATION message includes an Error Code field indicating what type of problem occurred. For certain Error Codes, an Error  Subcode field provides additional details about the specific nature of the problem.  The choice value will provide the Error Code used in NOTIFICATION message.  The Subcode can be set for each of the corresponding errors except for Hold Timer Expired error and BGP Finite State Machine error.  In both of these cases Subcode 0 will be sent. If a user wants to use non zero Sub Code then custom choice can be used.
          type: string
          x-field-uid: 2
          default: cease
          x-enum:
            cease:
              x-field-uid: 1
            message_header_error:
              x-field-uid: 2
            open_message_error:
              x-field-uid: 3
            update_message_error:
              x-field-uid: 4
            hold_timer_expired:
              x-field-uid: 5
            finite_state_machine_error:
              x-field-uid: 6
            custom:
              x-field-uid: 7
          enum:
          - cease
          - message_header_error
          - open_message_error
          - update_message_error
          - hold_timer_expired
          - finite_state_machine_error
          - custom
        cease:
          $ref: '#/components/schemas/Device.Bgp.CeaseError'
          x-field-uid: 3
        message_header_error:
          $ref: '#/components/schemas/Device.Bgp.MessageHeaderError'
          x-field-uid: 4
        open_message_error:
          $ref: '#/components/schemas/Device.Bgp.OpenMessageError'
          x-field-uid: 5
        update_message_error:
          $ref: '#/components/schemas/Device.Bgp.UpdateMessageError'
          x-field-uid: 6
        hold_timer_expired:
          $ref: '#/components/schemas/Device.Bgp.HoldTimerExpired'
          x-field-uid: 7
        finite_state_machine_error:
          $ref: '#/components/schemas/Device.Bgp.FiniteStateMachineError'
          x-field-uid: 8
        custom:
          $ref: '#/components/schemas/Device.Bgp.CustomError'
          x-field-uid: 9
    Metrics.Request:
      description: |-
        Request to traffic generator for metrics of choice.
      type: object
      properties:
        choice:
          type: string
          default: port
          x-field-uid: 1
          x-enum:
            port:
              x-field-uid: 1
            flow:
              x-field-uid: 2
            bgpv4:
              x-field-uid: 3
            bgpv6:
              x-field-uid: 4
            isis:
              x-field-uid: 5
            lag:
              x-field-uid: 6
            lacp:
              x-field-uid: 7
            lldp:
              x-field-uid: 8
            rsvp:
              x-field-uid: 9
            dhcpv4_client:
              x-field-uid: 10
            dhcpv4_server:
              x-field-uid: 11
            dhcpv6_client:
              x-field-uid: 12
            dhcpv6_server:
              x-field-uid: 13
            ospfv2:
              x-field-uid: 14
            convergence:
              x-field-uid: 15
            macsec:
              x-field-uid: 16
            mka:
              x-field-uid: 17
            ospfv3:
              x-field-uid: 18
            rocev2_ipv4:
              x-field-uid: 19
            rocev2_ipv6:
              x-field-uid: 20
            rocev2_flow:
              x-field-uid: 21
          enum:
          - port
          - flow
          - bgpv4
          - bgpv6
          - isis
          - lag
          - lacp
          - lldp
          - rsvp
          - dhcpv4_client
          - dhcpv4_server
          - dhcpv6_client
          - dhcpv6_server
          - ospfv2
          - convergence
          - macsec
          - mka
          - ospfv3
          - rocev2_ipv4
          - rocev2_ipv6
          - rocev2_flow
        port:
          $ref: '#/components/schemas/Port.Metrics.Request'
          x-field-uid: 2
        flow:
          $ref: '#/components/schemas/Flow.Metrics.Request'
          x-field-uid: 3
        bgpv4:
          $ref: '#/components/schemas/Bgpv4.Metrics.Request'
          x-field-uid: 4
        bgpv6:
          $ref: '#/components/schemas/Bgpv6.Metrics.Request'
          x-field-uid: 5
        isis:
          $ref: '#/components/schemas/Isis.Metrics.Request'
          x-field-uid: 6
        lag:
          $ref: '#/components/schemas/Lag.Metrics.Request'
          x-field-uid: 7
        lacp:
          $ref: '#/components/schemas/Lacp.Metrics.Request'
          x-field-uid: 8
        lldp:
          $ref: '#/components/schemas/Lldp.Metrics.Request'
          x-field-uid: 9
        rsvp:
          $ref: '#/components/schemas/Rsvp.Metrics.Request'
          x-field-uid: 10
        dhcpv4_client:
          $ref: '#/components/schemas/Dhcpv4Client.Metrics.Request'
          x-field-uid: 11
        dhcpv4_server:
          $ref: '#/components/schemas/Dhcpv4Server.Metrics.Request'
          x-field-uid: 12
        dhcpv6_client:
          $ref: '#/components/schemas/Dhcpv6Client.Metrics.Request'
          x-field-uid: 13
        dhcpv6_server:
          $ref: '#/components/schemas/Dhcpv6Server.Metrics.Request'
          x-field-uid: 14
        ospfv2:
          $ref: '#/components/schemas/Ospfv2.Metrics.Request'
          x-field-uid: 15
        convergence:
          $ref: '#/components/schemas/Convergence.Request'
          x-field-uid: 16
        macsec:
          $ref: '#/components/schemas/Macsec.Metrics.Request'
          x-field-uid: 17
        mka:
          $ref: '#/components/schemas/Mka.Metrics.Request'
          x-field-uid: 18
        ospfv3:
          $ref: '#/components/schemas/Ospfv3.Metrics.Request'
          x-field-uid: 19
        rocev2_ipv4:
          $ref: '#/components/schemas/Rocev2IPv4.Metrics.Request'
          x-field-uid: 20
        rocev2_ipv6:
          $ref: '#/components/schemas/Rocev2IPv6.Metrics.Request'
          x-field-uid: 21
        rocev2_flow:
          $ref: '#/components/schemas/Rocev2Flow.Metrics.Request'
          x-field-uid: 22
    Metrics.Response:
      description: |-
        Response containing chosen traffic generator metrics.
      type: object
      properties:
        choice:
          type: string
          default: port_metrics
          x-field-uid: 1
          x-enum:
            flow_metrics:
              x-field-uid: 1
            port_metrics:
              x-field-uid: 2
            bgpv4_metrics:
              x-field-uid: 3
            bgpv6_metrics:
              x-field-uid: 4
            isis_metrics:
              x-field-uid: 5
            lag_metrics:
              x-field-uid: 6
            lacp_metrics:
              x-field-uid: 7
            lldp_metrics:
              x-field-uid: 8
            rsvp_metrics:
              x-field-uid: 9
            dhcpv4_client:
              x-field-uid: 10
            dhcpv4_server:
              x-field-uid: 11
            dhcpv6_client:
              x-field-uid: 12
            dhcpv6_server:
              x-field-uid: 13
            ospfv2_metrics:
              x-field-uid: 14
            convergence_metrics:
              x-field-uid: 15
            macsec_metrics:
              x-field-uid: 16
            mka_metrics:
              x-field-uid: 17
            ospfv3_metrics:
              x-field-uid: 18
            rocev2_ipv4_per_peer_metrics:
              x-field-uid: 19
            rocev2_ipv6_per_peer_metrics:
              x-field-uid: 20
            rocev2_flow_per_qp_metrics:
              x-field-uid: 21
          enum:
          - flow_metrics
          - port_metrics
          - bgpv4_metrics
          - bgpv6_metrics
          - isis_metrics
          - lag_metrics
          - lacp_metrics
          - lldp_metrics
          - rsvp_metrics
          - dhcpv4_client
          - dhcpv4_server
          - dhcpv6_client
          - dhcpv6_server
          - ospfv2_metrics
          - convergence_metrics
          - macsec_metrics
          - mka_metrics
          - ospfv3_metrics
          - rocev2_ipv4_per_peer_metrics
          - rocev2_ipv6_per_peer_metrics
          - rocev2_flow_per_qp_metrics
        port_metrics:
          type: array
          items:
            $ref: '#/components/schemas/Port.Metric'
          x-field-uid: 2
        flow_metrics:
          type: array
          items:
            $ref: '#/components/schemas/Flow.Metric'
          x-field-uid: 3
        bgpv4_metrics:
          type: array
          items:
            $ref: '#/components/schemas/Bgpv4.Metric'
          x-field-uid: 4
        bgpv6_metrics:
          type: array
          items:
            $ref: '#/components/schemas/Bgpv6.Metric'
          x-field-uid: 5
        isis_metrics:
          type: array
          items:
            $ref: '#/components/schemas/Isis.Metric'
          x-field-uid: 6
        lag_metrics:
          type: array
          items:
            $ref: '#/components/schemas/Lag.Metric'
          x-field-uid: 7
        lacp_metrics:
          type: array
          items:
            $ref: '#/components/schemas/Lacp.Metric'
          x-field-uid: 8
        lldp_metrics:
          type: array
          items:
            $ref: '#/components/schemas/Lldp.Metric'
          x-field-uid: 9
        rsvp_metrics:
          type: array
          items:
            $ref: '#/components/schemas/Rsvp.Metric'
          x-field-uid: 10
        dhcpv4client_metrics:
          type: array
          items:
            $ref: '#/components/schemas/Dhcpv4Client.Metric'
          x-field-uid: 11
        dhcpv4server_metrics:
          type: array
          items:
            $ref: '#/components/schemas/Dhcpv4Server.Metric'
          x-field-uid: 12
        dhcpv6client_metrics:
          type: array
          items:
            $ref: '#/components/schemas/Dhcpv6Client.Metric'
          x-field-uid: 13
        dhcpv6server_metrics:
          type: array
          items:
            $ref: '#/components/schemas/Dhcpv6Server.Metric'
          x-field-uid: 14
        ospfv2_metrics:
          type: array
          items:
            $ref: '#/components/schemas/Ospfv2.Metric'
          x-field-uid: 15
        convergence_metrics:
          type: array
          items:
            $ref: '#/components/schemas/Convergence.Metric'
          x-field-uid: 16
        macsec_metrics:
          type: array
          items:
            $ref: '#/components/schemas/Macsec.Metric'
          x-field-uid: 17
        mka_metrics:
          type: array
          items:
            $ref: '#/components/schemas/Mka.Metric'
          x-field-uid: 18
        ospfv3_metrics:
          type: array
          items:
            $ref: '#/components/schemas/Ospfv3.Metric'
          x-field-uid: 19
        rocev2_ipv4_per_peer_metrics:
          type: array
          items:
            $ref: '#/components/schemas/Rocev2IPv4.Metric.PerPeer'
          x-field-uid: 20
        rocev2_ipv6_per_peer_metrics:
          type: array
          items:
            $ref: '#/components/schemas/Rocev2IPv6.Metric.PerPeer'
          x-field-uid: 21
        rocev2_flow_per_qp_metrics:
          type: array
          items:
            $ref: '#/components/schemas/Rocev2Flow.Metric.PerQP'
          x-field-uid: 22
    Port.Metrics.Request:
      description: |-
        The port result request to the traffic generator
      type: object
      properties:
        port_names:
          description: |
            The names of objects to return results for. An empty list will return all port row results.

            x-constraint:
            - /components/schemas/Port/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Port/properties/name
          x-field-uid: 1
        column_names:
          description: |-
            The list of column names that the returned result set will contain. If the list is empty then all columns will be returned. The name of the port cannot be excluded.
          type: array
          items:
            type: string
            x-enum:
              transmit:
                x-field-uid: 1
              location:
                x-field-uid: 2
              link:
                x-field-uid: 3
              capture:
                x-field-uid: 4
              frames_tx:
                x-field-uid: 5
              frames_rx:
                x-field-uid: 6
              bytes_tx:
                x-field-uid: 7
              bytes_rx:
                x-field-uid: 8
              frames_tx_rate:
                x-field-uid: 9
              frames_rx_rate:
                x-field-uid: 10
              bytes_tx_rate:
                x-field-uid: 11
              bytes_rx_rate:
                x-field-uid: 12
              last_change:
                x-field-uid: 13
            enum:
            - transmit
            - location
            - link
            - capture
            - frames_tx
            - frames_rx
            - bytes_tx
            - bytes_rx
            - frames_tx_rate
            - frames_rx_rate
            - bytes_tx_rate
            - bytes_rx_rate
            - last_change
          x-field-uid: 2
    Port.Metric:
      type: object
      properties:
        name:
          description: |
            The name of a configured port

            x-constraint:
            - /components/schemas/Port/properties/name
          type: string
          x-constraint:
          - /components/schemas/Port/properties/name
          x-field-uid: 1
        location:
          description: |-
            The state of the connection to the test port location. The format should be the configured port location along with  any custom connection state message.
          type: string
          x-field-uid: 2
        link:
          description: |-
            The state of the test port link The string can be up, down or a custom error message.
          type: string
          x-field-uid: 3
          x-enum:
            up:
              x-field-uid: 1
            down:
              x-field-uid: 2
          enum:
          - up
          - down
        capture:
          description: |-
            The state of the test port capture infrastructure. The string can be started, stopped or a custom error message.
          type: string
          x-field-uid: 4
          x-enum:
            started:
              x-field-uid: 1
            stopped:
              x-field-uid: 2
          enum:
          - started
          - stopped
        frames_tx:
          description: |-
            The current total number of frames transmitted
          type: integer
          format: uint64
          x-field-uid: 5
        frames_rx:
          description: |-
            The current total number of valid frames received
          type: integer
          format: uint64
          x-field-uid: 6
        bytes_tx:
          description: |-
            The current total number of bytes transmitted
          type: integer
          format: uint64
          x-field-uid: 7
        bytes_rx:
          description: |-
            The current total number of valid bytes received
          type: integer
          format: uint64
          x-field-uid: 8
        frames_tx_rate:
          description: |-
            The current rate of frames transmitted
          type: number
          x-field-uid: 9
        frames_rx_rate:
          description: |-
            The current rate of valid frames received
          type: number
          x-field-uid: 10
        bytes_tx_rate:
          description: |-
            The current rate of bytes transmitted
          type: number
          x-field-uid: 11
        bytes_rx_rate:
          description: |-
            The current rate of bytes received
          type: number
          x-field-uid: 12
        transmit:
          description: |-
            The transmit state of the flow.
          type: string
          x-field-uid: 13
          x-enum:
            started:
              x-field-uid: 1
            stopped:
              x-field-uid: 2
          enum:
          - started
          - stopped
        last_change:
          description: "The timestamp indicates the absolute time of the last \nlink\
            \ state change of the test port (e.g., up-to-down transition).\n\nThe\
            \ value is the timestamp in nanoseconds relative to\nthe Unix Epoch (Jan\
            \ 1, 1970 00:00:00 UTC)."
          type: integer
          format: uint64
          x-field-uid: 14
    Flow.Metrics.Request:
      description: |-
        The container for a flow metric request.
      type: object
      properties:
        flow_names:
          description: |
            Flow metrics will be retrieved for these flow names.
            If no flow names are specified then all flows will be returned.

            x-constraint:
            - /components/schemas/Flow/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Flow/properties/name
          x-field-uid: 1
        metric_names:
          description: |-
            The list of metric names that the returned result set will contain. If the list is empty then all metrics will be returned.
          type: array
          items:
            type: string
            x-enum:
              transmit:
                x-field-uid: 1
              frames_tx:
                x-field-uid: 2
              frames_rx:
                x-field-uid: 3
              bytes_tx:
                x-field-uid: 4
              bytes_rx:
                x-field-uid: 5
              frames_tx_rate:
                x-field-uid: 6
              frames_rx_rate:
                x-field-uid: 7
              tx_l1_rate_bps:
                x-field-uid: 8
              rx_l1_rate_bps:
                x-field-uid: 9
              tx_rate_bytes:
                x-field-uid: 10
              rx_rate_bytes:
                x-field-uid: 11
              tx_rate_bps:
                x-field-uid: 12
              rx_rate_bps:
                x-field-uid: 13
              tx_rate_kbps:
                x-field-uid: 14
              rx_rate_kbps:
                x-field-uid: 15
              tx_rate_mbps:
                x-field-uid: 16
              rx_rate_mbps:
                x-field-uid: 17
            enum:
            - transmit
            - frames_tx
            - frames_rx
            - bytes_tx
            - bytes_rx
            - frames_tx_rate
            - frames_rx_rate
            - tx_l1_rate_bps
            - rx_l1_rate_bps
            - tx_rate_bytes
            - rx_rate_bytes
            - tx_rate_bps
            - rx_rate_bps
            - tx_rate_kbps
            - rx_rate_kbps
            - tx_rate_mbps
            - rx_rate_mbps
          x-field-uid: 3
        tagged_metrics:
          $ref: '#/components/schemas/Flow.TaggedMetrics.Filter'
          x-field-uid: 4
    Flow.TaggedMetrics.Filter:
      description: |-
        Filter for tagged metrics
      type: object
      properties:
        include:
          description: |-
            Controls inclusion/exclusion of tagged metrics when fetching flow metrics.
          type: boolean
          default: true
          x-field-uid: 1
        include_empty_metrics:
          description: |-
            Controls inclusion/exclusion of tagged metrics where each underlying attributes has zero value or absent value.
          type: boolean
          default: false
          x-field-uid: 2
        metric_names:
          description: |-
            The list of metric names that the returned result set will contain. If the list is empty then all metrics will be returned.
          type: array
          items:
            type: string
            x-enum:
              frames_tx:
                x-field-uid: 1
              frames_rx:
                x-field-uid: 2
              bytes_tx:
                x-field-uid: 3
              bytes_rx:
                x-field-uid: 4
              frames_tx_rate:
                x-field-uid: 5
              frames_rx_rate:
                x-field-uid: 6
              tx_l1_rate_bps:
                x-field-uid: 7
              rx_l1_rate_bps:
                x-field-uid: 8
              tx_rate_bytes:
                x-field-uid: 9
              rx_rate_bytes:
                x-field-uid: 10
              tx_rate_bps:
                x-field-uid: 11
              rx_rate_bps:
                x-field-uid: 12
              tx_rate_kbps:
                x-field-uid: 13
              rx_rate_kbps:
                x-field-uid: 14
              tx_rate_mbps:
                x-field-uid: 15
              rx_rate_mbps:
                x-field-uid: 16
            enum:
            - frames_tx
            - frames_rx
            - bytes_tx
            - bytes_rx
            - frames_tx_rate
            - frames_rx_rate
            - tx_l1_rate_bps
            - rx_l1_rate_bps
            - tx_rate_bytes
            - rx_rate_bytes
            - tx_rate_bps
            - rx_rate_bps
            - tx_rate_kbps
            - rx_rate_kbps
            - tx_rate_mbps
            - rx_rate_mbps
          x-field-uid: 3
        filters:
          description: |-
            List of filters to selectively fetch tagged metrics with certain tag and corresponding value.
          type: array
          items:
            $ref: '#/components/schemas/Flow.MetricTag.Filter'
          x-field-uid: 4
    Flow.MetricTag.Filter:
      description: |-
        A container for filtering ingress and/or egress metric tags.
        The Tx stats may not be applicable in both the request and response filter.
      type: object
      properties:
        name:
          description: |-
            A metric tag name that MUST exist in a flow packet or
            flow egress_packet configuration
          type: string
          x-field-uid: 1
        values:
          description: |-
            A list of filters that can be applied to the metric tag name.
            By default all values will be included in the flow metric results.
          type: array
          items:
            type: string
          x-field-uid: 2
    Flow.Metric:
      description: |-
        A container for flow metrics.
        The container is keyed by the name, port_tx and port_rx.
      type: object
      properties:
        name:
          description: |-
            The name of the flow
          type: string
          example: Tx -> Rx
          x-field-uid: 1
        port_tx:
          description: |-
            The name of the transmit port
          type: string
          x-field-uid: 2
        port_rx:
          description: |-
            The name of the receive port
          type: string
          x-field-uid: 3
        transmit:
          description: |-
            The transmit state of the flow.
          type: string
          x-field-uid: 5
          x-enum:
            started:
              x-field-uid: 1
            stopped:
              x-field-uid: 2
            paused:
              x-field-uid: 3
          enum:
          - started
          - stopped
          - paused
        frames_tx:
          description: |-
            The current total number of frames transmitted
          type: integer
          format: uint64
          x-field-uid: 6
        frames_rx:
          description: |-
            The current total number of valid frames received
          type: integer
          format: uint64
          x-field-uid: 7
        bytes_tx:
          description: |-
            The current total number of bytes transmitted
          type: integer
          format: uint64
          x-field-uid: 8
        bytes_rx:
          description: |-
            The current total number of bytes received
          type: integer
          format: uint64
          x-field-uid: 9
        frames_tx_rate:
          description: |-
            The current rate of frames transmitted
          type: number
          x-field-uid: 10
        frames_rx_rate:
          description: |-
            The current rate of valid frames received
          type: number
          x-field-uid: 11
        loss:
          description: |-
            The percentage of lost frames
          type: number
          x-field-uid: 12
        timestamps:
          $ref: '#/components/schemas/Metric.Timestamp'
          x-field-uid: 13
        latency:
          $ref: '#/components/schemas/Metric.Latency'
          x-field-uid: 14
        tagged_metrics:
          description: |-
            List of metrics corresponding to a set of values applicable
            for configured metric tags in ingress or egress packet header fields of corresponding flow.
            The container is keyed by list of tag-value pairs.
          type: array
          items:
            $ref: '#/components/schemas/Flow.TaggedMetric'
          x-field-uid: 15
        tx_l1_rate_bps:
          description: |-
            The Layer 1 transmission rate in bits per second.
          type: number
          x-field-uid: 16
        rx_l1_rate_bps:
          description: |-
            The Layer 1 receive rate in bits per second.
          type: number
          x-field-uid: 17
        tx_rate_bytes:
          description: |-
            The transmission rate in bytes per second.
          type: number
          x-field-uid: 18
        rx_rate_bytes:
          description: |-
            The receive rate in bytes per second.
          type: number
          x-field-uid: 19
        tx_rate_bps:
          description: |-
            The transmission rate in bits per second.
          type: number
          x-field-uid: 20
        rx_rate_bps:
          description: |-
            The receive rate in bits per second.
          type: number
          x-field-uid: 21
        tx_rate_kbps:
          description: |-
            The transmission rate in Kilobits per second.
          type: number
          x-field-uid: 22
        rx_rate_kbps:
          description: |-
            The receive rate in Kilobits per second.
          type: number
          x-field-uid: 23
        tx_rate_mbps:
          description: |-
            The transmission rate in Megabits per second.
          type: number
          x-field-uid: 24
        rx_rate_mbps:
          description: |-
            The receive rate in Megabits per second.
          type: number
          x-field-uid: 25
    Flow.TaggedMetric:
      description: |-
        Metrics for each set of values applicable for configured
        metric tags in ingress or egress packet header fields of corresponding flow.
        The container is keyed by list of tag-value pairs.
      type: object
      properties:
        tags:
          description: |-
            List of tag and value pairs
          type: array
          items:
            $ref: '#/components/schemas/Flow.MetricTag'
          x-field-uid: 1
        frames_tx:
          description: |-
            The current total number of frames transmitted
          type: integer
          format: uint64
          x-field-uid: 2
        frames_rx:
          description: |-
            The current total number of valid frames received
          type: integer
          format: uint64
          x-field-uid: 3
        bytes_tx:
          description: |-
            The current total number of bytes transmitted
          type: integer
          format: uint64
          x-field-uid: 4
        bytes_rx:
          description: |-
            The current total number of bytes received
          type: integer
          format: uint64
          x-field-uid: 5
        frames_tx_rate:
          description: |-
            The current rate of frames transmitted
          type: number
          x-field-uid: 6
        frames_rx_rate:
          description: |-
            The current rate of valid frames received
          type: number
          x-field-uid: 7
        loss:
          description: |-
            The percentage of lost frames
          type: number
          x-field-uid: 8
        timestamps:
          $ref: '#/components/schemas/Metric.Timestamp'
          x-field-uid: 9
        latency:
          $ref: '#/components/schemas/Metric.Latency'
          x-field-uid: 10
        tx_l1_rate_bps:
          description: |-
            The Layer 1 transmission rate in bits per second.
          type: number
          x-field-uid: 11
        rx_l1_rate_bps:
          description: |-
            The Layer 1 receive rate in bits per second.
          type: number
          x-field-uid: 12
        tx_rate_bytes:
          description: |-
            The transmission rate in bytes per second.
          type: number
          x-field-uid: 13
        rx_rate_bytes:
          description: |-
            The receive rate in bytes per second.
          type: number
          x-field-uid: 14
        tx_rate_bps:
          description: |-
            The transmission rate in bits per second.
          type: number
          x-field-uid: 15
        rx_rate_bps:
          description: |-
            The receive rate in bits per second.
          type: number
          x-field-uid: 16
        tx_rate_kbps:
          description: |-
            The transmission rate in Kilobits per second.
          type: number
          x-field-uid: 17
        rx_rate_kbps:
          description: |-
            The receive rate in Kilobits per second.
          type: number
          x-field-uid: 18
        tx_rate_mbps:
          description: |-
            The transmission rate in Megabits per second.
          type: number
          x-field-uid: 19
        rx_rate_mbps:
          description: |-
            The receive rate in Megabits per second.
          type: number
          x-field-uid: 20
    Flow.MetricTag:
      type: object
      properties:
        name:
          description: |-
            Name of packet field metric tag
          type: string
          x-field-uid: 1
        value:
          $ref: '#/components/schemas/Flow.MetricTag.Value'
          x-field-uid: 2
    Flow.MetricTag.Value:
      description: |-
        A container for metric tag value
      type: object
      properties:
        choice:
          description: |-
            Available formats for metric tag value
          type: string
          default: hex
          x-enum:
            hex:
              x-field-uid: 1
            str:
              x-field-uid: 2
          x-field-uid: 1
          enum:
          - hex
          - str
        hex:
          description: |-
            Value represented in hexadecimal format
          type: string
          format: hex
          x-field-uid: 2
        str:
          description: |-
            Value represented in string format
          type: string
          x-field-uid: 3
    Metric.Timestamp:
      description: |-
        The container for timestamp metrics.
        The container will be empty if the timestamp has not been configured for
        the flow.
      type: object
      properties:
        first_timestamp_ns:
          description: |-
            First timestamp in nanoseconds
          type: number
          format: double
          x-field-uid: 1
        last_timestamp_ns:
          description: |-
            Last timestamp in nanoseconds
          type: number
          format: double
          x-field-uid: 2
    Metric.Latency:
      description: "The container for latency metrics. \nThe min/max/avg values are\
        \ dependent on the type of latency measurement \nmode that is configured.\n\
        The container will be empty if the latency has not been configured for\nthe\
        \ flow."
      type: object
      properties:
        minimum_ns:
          description: |-
            Minimum latency in nanoseconds
          type: number
          format: double
          x-field-uid: 1
        maximum_ns:
          description: |-
            Maximum latency in nanoseconds
          type: number
          format: double
          x-field-uid: 2
        average_ns:
          description: |-
            Average latency in nanoseconds
          type: number
          format: double
          x-field-uid: 3
    Bgpv4.Metrics.Request:
      description: |-
        The request to retrieve BGPv4 per peer metrics/statistics.
      type: object
      properties:
        peer_names:
          description: |
            The names of BGPv4 peers to return results for. An empty list will return results for all BGPv4 peers.

            x-constraint:
            - /components/schemas/Bgp.V4peer/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Bgp.V4peer/properties/name
          x-field-uid: 1
        column_names:
          description: |-
            The list of column names that the returned result set will contain. If the list is empty then all columns will be returned except for any result_groups. The name of the BGPv4 peer cannot be excluded.
          type: array
          items:
            type: string
            x-enum:
              session_state:
                x-field-uid: 1
              session_flap_count:
                x-field-uid: 2
              routes_advertised:
                x-field-uid: 3
              routes_received:
                x-field-uid: 4
              route_withdraws_sent:
                x-field-uid: 5
              route_withdraws_received:
                x-field-uid: 6
              updates_sent:
                x-field-uid: 7
              updates_received:
                x-field-uid: 8
              opens_sent:
                x-field-uid: 9
              opens_received:
                x-field-uid: 10
              keepalives_sent:
                x-field-uid: 11
              keepalives_received:
                x-field-uid: 12
              notifications_sent:
                x-field-uid: 13
              notifications_received:
                x-field-uid: 14
              fsm_state:
                x-field-uid: 15
              end_of_rib_received:
                x-field-uid: 16
            enum:
            - session_state
            - session_flap_count
            - routes_advertised
            - routes_received
            - route_withdraws_sent
            - route_withdraws_received
            - updates_sent
            - updates_received
            - opens_sent
            - opens_received
            - keepalives_sent
            - keepalives_received
            - notifications_sent
            - notifications_received
            - fsm_state
            - end_of_rib_received
          x-field-uid: 2
    Bgpv4.Metric:
      description: |-
        BGPv4 per peer statistics information.
      type: object
      properties:
        name:
          description: |-
            The name of a configured BGPv4 peer.
          type: string
          x-field-uid: 1
        session_state:
          description: |-
            Session state as up or down. Up refers to an Established state and Down refers to any other state.
          type: string
          x-field-uid: 2
          x-enum:
            up:
              x-field-uid: 1
            down:
              x-field-uid: 2
          enum:
          - up
          - down
        session_flap_count:
          description: |-
            Number of times the session went from Up to Down state.
          type: integer
          format: uint64
          x-field-uid: 3
        routes_advertised:
          description: |-
            Number of routes advertised.
          type: integer
          format: uint64
          x-field-uid: 4
        routes_received:
          description: |-
            Number of routes received.
          type: integer
          format: uint64
          x-field-uid: 5
        route_withdraws_sent:
          description: |-
            Number of route withdraws sent.
          type: integer
          format: uint64
          x-field-uid: 6
        route_withdraws_received:
          description: |-
            Number of route withdraws received.
          type: integer
          format: uint64
          x-field-uid: 7
        updates_sent:
          description: |-
            Number of Update messages sent.
          type: integer
          format: uint64
          x-field-uid: 8
        updates_received:
          description: |-
            Number of Update messages received.
          type: integer
          format: uint64
          x-field-uid: 9
        opens_sent:
          description: |-
            Number of Open messages sent.
          type: integer
          format: uint64
          x-field-uid: 10
        opens_received:
          description: |-
            Number of Open messages received.
          type: integer
          format: uint64
          x-field-uid: 11
        keepalives_sent:
          description: |-
            Number of Keepalive messages sent.
          type: integer
          format: uint64
          x-field-uid: 12
        keepalives_received:
          description: |-
            Number of Keepalive messages received.
          type: integer
          format: uint64
          x-field-uid: 13
        notifications_sent:
          description: |-
            Number of Notification messages sent.
          type: integer
          format: uint64
          x-field-uid: 14
        notifications_received:
          description: |-
            Number of Notification messages received.
          type: integer
          format: uint64
          x-field-uid: 15
        fsm_state:
          description: |-
            BGP peer FSM (Finite State Machine) state as Idle, Connect, Active, OpenSent, OpenConfirm and Established. In all the states except Established the BGP session is down. Idle refers to the Idle state of the FSM. Connect refers to the state where the session is waiting for the underlying transport session to be established. Active refers to the state where the session is awaiting for a connection from the remote peer. OpenSent refers to the state where the session is in the process of being established. The local system has sent an OPEN message. OpenConfirm refers to the state where the session is in the process of being established. The local system has sent and received an OPEN message and is awaiting a NOTIFICATION or KEEPALIVE message from remote peer. Established refers to the state where the BGP session with the peer is established.
          type: string
          x-field-uid: 16
          x-enum:
            idle:
              x-field-uid: 1
            connect:
              x-field-uid: 2
            active:
              x-field-uid: 3
            opensent:
              x-field-uid: 4
            openconfirm:
              x-field-uid: 5
            established:
              x-field-uid: 6
          enum:
          - idle
          - connect
          - active
          - opensent
          - openconfirm
          - established
        end_of_rib_received:
          description: |-
            Number of End-of-RIB markers received indicating the completion of the initial routing update for a  particular <AFI, SAFI> address family after the session is established. For the IPv4 unicast address family, the End-of-RIB marker is an UPDATE message with the minimum length. For any other address family, it is an UPDATE message that contains only the MP_UNREACH_NLRI attribute with  no withdrawn routes for that <AFI, SAFI>.
          type: integer
          format: uint64
          x-field-uid: 17
    Bgpv6.Metrics.Request:
      description: |-
        The request to retrieve BGPv6 per peer metrics/statistics.
      type: object
      properties:
        peer_names:
          description: |
            The names of BGPv6 peers to return results for. An empty list will return results for all BGPv6 peers.

            x-constraint:
            - /components/schemas/Bgp.V6peer/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Bgp.V6peer/properties/name
          x-field-uid: 1
        column_names:
          description: |-
            The list of column names that the returned result set will contain. If the list is empty then all columns will be returned except for any result_groups. The name of the BGPv6 peer cannot be excluded.
          type: array
          items:
            type: string
            x-enum:
              session_state:
                x-field-uid: 1
              session_flap_count:
                x-field-uid: 2
              routes_advertised:
                x-field-uid: 3
              routes_received:
                x-field-uid: 4
              route_withdraws_sent:
                x-field-uid: 5
              route_withdraws_received:
                x-field-uid: 6
              updates_sent:
                x-field-uid: 7
              updates_received:
                x-field-uid: 8
              opens_sent:
                x-field-uid: 9
              opens_received:
                x-field-uid: 10
              keepalives_sent:
                x-field-uid: 11
              keepalives_received:
                x-field-uid: 12
              notifications_sent:
                x-field-uid: 13
              notifications_received:
                x-field-uid: 14
              fsm_state:
                x-field-uid: 15
              end_of_rib_received:
                x-field-uid: 16
            enum:
            - session_state
            - session_flap_count
            - routes_advertised
            - routes_received
            - route_withdraws_sent
            - route_withdraws_received
            - updates_sent
            - updates_received
            - opens_sent
            - opens_received
            - keepalives_sent
            - keepalives_received
            - notifications_sent
            - notifications_received
            - fsm_state
            - end_of_rib_received
          x-field-uid: 2
    Bgpv6.Metric:
      description: |-
        BGPv6 per peer statistics information.
      type: object
      properties:
        name:
          description: |-
            The name of a configured BGPv6 peer.
          type: string
          x-field-uid: 1
        session_state:
          description: |-
            Session state as up or down. Up refers to an Established state and Down refers to any other state.
          type: string
          x-field-uid: 2
          x-enum:
            up:
              x-field-uid: 1
            down:
              x-field-uid: 2
          enum:
          - up
          - down
        session_flap_count:
          description: |-
            Number of times the session went from Up to Down state.
          type: integer
          format: uint64
          x-field-uid: 3
        routes_advertised:
          description: |-
            Number of routes advertised.
          type: integer
          format: uint64
          x-field-uid: 4
        routes_received:
          description: |-
            Number of routes received.
          type: integer
          format: uint64
          x-field-uid: 5
        route_withdraws_sent:
          description: |-
            Number of route withdraws sent.
          type: integer
          format: uint64
          x-field-uid: 6
        route_withdraws_received:
          description: |-
            Number of route withdraws received.
          type: integer
          format: uint64
          x-field-uid: 7
        updates_sent:
          description: |-
            Number of Update messages sent.
          type: integer
          format: uint64
          x-field-uid: 8
        updates_received:
          description: |-
            Number of Update messages received.
          type: integer
          format: uint64
          x-field-uid: 9
        opens_sent:
          description: |-
            Number of Open messages sent.
          type: integer
          format: uint64
          x-field-uid: 10
        opens_received:
          description: |-
            Number of Open messages received.
          type: integer
          format: uint64
          x-field-uid: 11
        keepalives_sent:
          description: |-
            Number of Keepalive messages sent.
          type: integer
          format: uint64
          x-field-uid: 12
        keepalives_received:
          description: |-
            Number of Keepalive messages received.
          type: integer
          format: uint64
          x-field-uid: 13
        notifications_sent:
          description: |-
            Number of Notification messages sent.
          type: integer
          format: uint64
          x-field-uid: 14
        notifications_received:
          description: |-
            Number of Notification messages received.
          type: integer
          format: uint64
          x-field-uid: 15
        fsm_state:
          description: |-
            BGP peer FSM (Finite State Machine) state as Idle, Connect, Active, OpenSent, OpenConfirm and Established. In all the states except Established the BGP session is down. Idle refers to the Idle state of the FSM. Connect refers to the state where the session is waiting for the underlying transport session to be established. Active refers to the state where the session is awaiting for a connection from the remote peer. OpenSent refers to the state where the session is in the process of being established. The local system has sent an OPEN message. OpenConfirm refers to the state where the session is in the process of being established. The local system has sent and received an OPEN message and is awaiting a NOTIFICATION or KEEPALIVE message from remote peer. Established refers to the state where the BGP session with the peer is established.
          type: string
          x-field-uid: 16
          x-enum:
            idle:
              x-field-uid: 1
            connect:
              x-field-uid: 2
            active:
              x-field-uid: 3
            opensent:
              x-field-uid: 4
            openconfirm:
              x-field-uid: 5
            established:
              x-field-uid: 6
          enum:
          - idle
          - connect
          - active
          - opensent
          - openconfirm
          - established
        end_of_rib_received:
          description: |-
            Number of End-of-RIB markers received indicating the completion of the initial routing update for a  particular <AFI, SAFI> address family after the session is established. For the IPv4 unicast address family, the End-of-RIB marker is an UPDATE message with the minimum length. For any other address family, it is an UPDATE message that contains only the MP_UNREACH_NLRI attribute with  no withdrawn routes for that <AFI, SAFI>.
          type: integer
          format: uint64
          x-field-uid: 17
    Isis.Metrics.Request:
      description: |-
        The request to retrieve ISIS per Router metrics/statistics.
      type: object
      properties:
        router_names:
          description: |
            The names of ISIS Routers to return results for. An empty list will return results for all ISIS router.

            x-constraint:
            - /components/schemas/Device.IsisRouter/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Device.IsisRouter/properties/name
          x-field-uid: 1
        column_names:
          description: |-
            The list of column names that the returned result set will contain. If the list is empty then all columns will be returned except for any result_groups. The name of the ISIS Router cannot be excluded.
          type: array
          items:
            type: string
            x-enum:
              l1_sessions_up:
                x-field-uid: 1
              l1_session_flap:
                x-field-uid: 2
              l1_database_size:
                x-field-uid: 3
              l1_broadcast_hellos_sent:
                x-field-uid: 4
              l1_broadcast_hellos_received:
                x-field-uid: 5
              l1_point_to_point_hellos_sent:
                x-field-uid: 6
              l1_point_to_point_hellos_received:
                x-field-uid: 7
              l1_psnp_sent:
                x-field-uid: 8
              l1_psnp_received:
                x-field-uid: 9
              l1_csnp_sent:
                x-field-uid: 10
              l1_csnp_received:
                x-field-uid: 11
              l1_lsp_sent:
                x-field-uid: 12
              l1_lsp_received:
                x-field-uid: 13
              l2_sessions_up:
                x-field-uid: 14
              l2_session_flap:
                x-field-uid: 15
              l2_database_size:
                x-field-uid: 16
              l2_broadcast_hellos_sent:
                x-field-uid: 17
              l2_broadcast_hellos_received:
                x-field-uid: 18
              l2_point_to_point_hellos_sent:
                x-field-uid: 19
              l2_point_to_point_hellos_received:
                x-field-uid: 20
              l2_psnp_sent:
                x-field-uid: 21
              l2_psnp_received:
                x-field-uid: 22
              l2_csnp_sent:
                x-field-uid: 23
              l2_csnp_received:
                x-field-uid: 24
              l2_lsp_sent:
                x-field-uid: 25
              l2_lsp_received:
                x-field-uid: 26
            enum:
            - l1_sessions_up
            - l1_session_flap
            - l1_database_size
            - l1_broadcast_hellos_sent
            - l1_broadcast_hellos_received
            - l1_point_to_point_hellos_sent
            - l1_point_to_point_hellos_received
            - l1_psnp_sent
            - l1_psnp_received
            - l1_csnp_sent
            - l1_csnp_received
            - l1_lsp_sent
            - l1_lsp_received
            - l2_sessions_up
            - l2_session_flap
            - l2_database_size
            - l2_broadcast_hellos_sent
            - l2_broadcast_hellos_received
            - l2_point_to_point_hellos_sent
            - l2_point_to_point_hellos_received
            - l2_psnp_sent
            - l2_psnp_received
            - l2_csnp_sent
            - l2_csnp_received
            - l2_lsp_sent
            - l2_lsp_received
          x-field-uid: 2
    Isis.Metric:
      description: |-
        ISIS per router statistics information.
      type: object
      properties:
        name:
          description: |-
            The name of a configured ISIS router.
          type: string
          x-field-uid: 1
        l1_sessions_up:
          description: |-
            The number of Level 1 (L1) sessions that are fully up.
          type: integer
          format: uint32
          x-field-uid: 2
        l1_session_flap:
          description: |-
            The number of Level 1 Sessions Flap.
          type: integer
          format: uint64
          x-field-uid: 3
        l1_broadcast_hellos_sent:
          description: |-
            Number of Level 1 Hello messages sent.
          type: integer
          format: uint64
          x-field-uid: 4
        l1_broadcast_hellos_received:
          description: |-
            Number of Level 1 Hello messages received.
          type: integer
          format: uint64
          x-field-uid: 5
        l1_point_to_point_hellos_sent:
          description: |-
            Number of Level 1 Point-to-Point(P2P) Hello messages sent.
          type: integer
          format: uint64
          x-field-uid: 6
        l1_point_to_point_hellos_received:
          description: |-
            Number of Level 1 Point-to-Point(P2P) Hello messages received.
          type: integer
          format: uint64
          x-field-uid: 7
        l1_database_size:
          description: |-
            Number of Link State Updates (LSPs) in the Level 1 LSP Databases.
          type: integer
          format: uint64
          x-field-uid: 8
        l1_psnp_sent:
          description: |-
            Number of Level 1 (L1) Partial Sequence Number Packet (PSNPs) sent.
          type: integer
          format: uint64
          x-field-uid: 9
        l1_psnp_received:
          description: |-
            Number of Level 1 (L1) Complete Sequence Number Packet (PSNPs) received.
          type: integer
          format: uint64
          x-field-uid: 10
        l1_csnp_sent:
          description: |-
            Number of Level 1 (L1) Complete Sequence Number Packet (CSNPs) sent.
          type: integer
          format: uint64
          x-field-uid: 11
        l1_csnp_received:
          description: |-
            Number of Level 1 (L1) Complete Sequence Number Packet (CSNPs) received.
          type: integer
          format: uint64
          x-field-uid: 12
        l1_lsp_sent:
          description: |-
            Number of Level 1 (L1) Link State Protocol Data Units (LSPs) sent.
          type: integer
          format: uint64
          x-field-uid: 13
        l1_lsp_received:
          description: |-
            Number of Level 1 (L1) Link State Protocol Data Units (LSPs) received.
          type: integer
          format: uint64
          x-field-uid: 14
        l2_sessions_up:
          description: |-
            The number of Level 2 (L2) sessions that are fully up.
          type: integer
          format: uint32
          x-field-uid: 15
        l2_session_flap:
          description: |-
            The number of Level 2 Sessions Flap.
          type: integer
          format: uint64
          x-field-uid: 16
        l2_broadcast_hellos_sent:
          description: |-
            Number of Level 2 Hello messages sent.
          type: integer
          format: uint64
          x-field-uid: 17
        l2_broadcast_hellos_received:
          description: |-
            Number of Level 2 Hello messages received.
          type: integer
          format: uint64
          x-field-uid: 18
        l2_point_to_point_hellos_sent:
          description: |-
            Number of Level 2 Point-to-Point(P2P) Hello messages sent.
          type: integer
          format: uint64
          x-field-uid: 19
        l2_point_to_point_hellos_received:
          description: |-
            Number of Level 2 Point-to-Point(P2P) Hello messages received.
          type: integer
          format: uint64
          x-field-uid: 20
        l2_database_size:
          description: |-
            Number of Link State Updates (LSPs) in the Level 2 LSP Databases.
          type: integer
          format: uint64
          x-field-uid: 21
        l2_psnp_sent:
          description: |-
            Number of Level 2 (L2) Partial Sequence Number Packet (PSNPs) sent.
          type: integer
          format: uint64
          x-field-uid: 22
        l2_psnp_received:
          description: |-
            Number of Level 2 (L2) Complete Sequence Number Packet (PSNPs) received.
          type: integer
          format: uint64
          x-field-uid: 23
        l2_csnp_sent:
          description: |-
            Number of Level 2 (L2) Complete Sequence Number Packet (CSNPs) sent.
          type: integer
          format: uint64
          x-field-uid: 24
        l2_csnp_received:
          description: |-
            Number of Level 2 (L2) Complete Sequence Number Packet (CSNPs) received.
          type: integer
          format: uint64
          x-field-uid: 25
        l2_lsp_sent:
          description: |-
            Number of Level 2 (L2) Link State Protocol Data Units (LSPs) sent.
          type: integer
          format: uint64
          x-field-uid: 26
        l2_lsp_received:
          description: |-
            Number of Level 2 (L2) Link State Protocol Data Units (LSPs) received.
          type: integer
          format: uint64
          x-field-uid: 27
    Lag.Metrics.Request:
      description: |-
        The request to retrieve per LAG metrics/statistics.
      type: object
      properties:
        lag_names:
          description: |
            The names of LAGs to return results for. An empty list will return results for all LAGs.

            x-constraint:
            - /components/schemas/Lag/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Lag/properties/name
          x-field-uid: 1
        column_names:
          description: |-
            The list of column names that the returned result set will contain. If the list is empty then all columns will be returned. The name of the LAG cannot be excluded.
          type: array
          items:
            type: string
            x-enum:
              oper_status:
                x-field-uid: 1
              member_ports_up:
                x-field-uid: 2
              frames_tx:
                x-field-uid: 3
              frames_rx:
                x-field-uid: 4
              bytes_tx:
                x-field-uid: 5
              bytes_rx:
                x-field-uid: 6
              frames_tx_rate:
                x-field-uid: 7
              frames_rx_rate:
                x-field-uid: 8
              bytes_tx_rate:
                x-field-uid: 9
              bytes_rx_rate:
                x-field-uid: 10
            enum:
            - oper_status
            - member_ports_up
            - frames_tx
            - frames_rx
            - bytes_tx
            - bytes_rx
            - frames_tx_rate
            - frames_rx_rate
            - bytes_tx_rate
            - bytes_rx_rate
          x-field-uid: 2
    Lag.Metric:
      type: object
      properties:
        name:
          description: |
            The name of a configured LAG

            x-constraint:
            - /components/schemas/Lag/properties/name
          type: string
          x-constraint:
          - /components/schemas/Lag/properties/name
          x-field-uid: 1
        oper_status:
          description: |-
            The current operational state of the LAG. The state can be up or down. State 'up' indicates member_ports_up >= min_links.
          type: string
          x-field-uid: 2
          x-enum:
            up:
              x-field-uid: 1
            down:
              x-field-uid: 2
          enum:
          - up
          - down
        member_ports_up:
          description: |-
            The number of LAG member ports up.
          type: integer
          format: uint32
          x-field-uid: 3
        frames_tx:
          description: |-
            The current total number of frames transmitted.
          type: integer
          format: uint64
          x-field-uid: 4
        frames_rx:
          description: |-
            The current total number of valid frames received.
          type: integer
          format: uint64
          x-field-uid: 5
        bytes_tx:
          description: |-
            The current total number of bytes transmitted.
          type: integer
          format: uint64
          x-field-uid: 6
        bytes_rx:
          description: |-
            The current total number of valid bytes received.
          type: integer
          format: uint64
          minimum: 0
          x-field-uid: 7
        frames_tx_rate:
          description: |-
            The current rate of frames transmitted.
          type: number
          x-field-uid: 8
        frames_rx_rate:
          description: |-
            The current rate of valid frames received.
          type: number
          x-field-uid: 9
        bytes_tx_rate:
          description: |-
            The current rate of bytes transmitted.
          type: number
          x-field-uid: 10
        bytes_rx_rate:
          description: |-
            The current rate of bytes received.
          type: number
          x-field-uid: 11
    Lacp.Metrics.Request:
      description: |-
        The request to retrieve LACP per LAG member metrics/statistics.
      type: object
      properties:
        lag_names:
          description: |
            The names of LAG (ports group) for which LACP metrics to be returned. An empty list will return metrics for all LAGs.

            x-constraint:
            - /components/schemas/Lag/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Lag/properties/name
          x-field-uid: 1
        lag_member_port_names:
          description: |
            The names of LAG members (ports) for which LACP metrics to be returned. An empty list will return metrics for all LAG members.

            x-constraint:
            - /components/schemas/Port/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Port/properties/name
          x-field-uid: 2
        column_names:
          description: |-
            The list of column names that the returned result set will contain. If the list is empty then all columns will be returned. The name of LAG and LAG member can not be excluded.
          type: array
          items:
            type: string
            x-enum:
              lacp_packets_rx:
                x-field-uid: 1
              lacp_packets_tx:
                x-field-uid: 2
              lacp_rx_errors:
                x-field-uid: 3
              activity:
                x-field-uid: 4
              timeout:
                x-field-uid: 5
              synchronization:
                x-field-uid: 6
              aggregatable:
                x-field-uid: 7
              collecting:
                x-field-uid: 8
              distributing:
                x-field-uid: 9
              system_id:
                x-field-uid: 10
              oper_key:
                x-field-uid: 11
              partner_id:
                x-field-uid: 12
              partner_key:
                x-field-uid: 13
              port_num:
                x-field-uid: 14
              partner_port_num:
                x-field-uid: 15
            enum:
            - lacp_packets_rx
            - lacp_packets_tx
            - lacp_rx_errors
            - activity
            - timeout
            - synchronization
            - aggregatable
            - collecting
            - distributing
            - system_id
            - oper_key
            - partner_id
            - partner_key
            - port_num
            - partner_port_num
          x-field-uid: 3
    Lacp.Metric:
      description: |-
        LACP metrics (statistics) per LAG member.
      type: object
      properties:
        lag_name:
          description: |-
            The name of a LAG (ports group) configured with LACP.
          type: string
          x-field-uid: 1
        lag_member_port_name:
          description: |-
            The name of a LAG member (port) configured with LACP.
          type: string
          x-field-uid: 2
        lacp_packets_rx:
          description: |-
            Number of LACPDUs received.
          type: integer
          format: uint64
          x-field-uid: 3
        lacp_packets_tx:
          description: |-
            Number of LACPDUs transmitted.
          type: integer
          format: uint64
          x-field-uid: 4
        lacp_rx_errors:
          description: |-
            Number of LACPDUs receive packet errors.
          type: integer
          format: uint64
          x-field-uid: 5
        activity:
          description: |-
            Indicates participant is active or passive.
          type: string
          x-field-uid: 6
          x-enum:
            active:
              x-field-uid: 1
            passive:
              x-field-uid: 2
          enum:
          - active
          - passive
        timeout:
          description: |-
            The timeout type (short or long) used by the participant.
          type: string
          x-field-uid: 7
          x-enum:
            short:
              x-field-uid: 1
            long:
              x-field-uid: 2
          enum:
          - short
          - long
        synchronization:
          description: |-
            Indicates whether the participant is in-sync or out-of-sync.
          type: string
          x-field-uid: 8
          x-enum:
            in_sync:
              x-field-uid: 1
            out_sync:
              x-field-uid: 2
          enum:
          - in_sync
          - out_sync
        aggregatable:
          description: |-
            A true value indicates that the participant will allow the link to be used as part of the aggregate. A false value indicates the link should be used as an  individual link.
          type: boolean
          x-field-uid: 9
        collecting:
          description: |-
            If true, the participant is collecting incoming frames on the link, otherwise false.
          type: boolean
          x-field-uid: 10
        distributing:
          description: |-
            When true, the participant is distributing outgoing frames; when false, distribution is disabled.
          type: boolean
          x-field-uid: 11
        system_id:
          description: |-
            MAC address that defines the local system ID for the aggregate interface.
          type: string
          format: mac
          x-field-uid: 12
        oper_key:
          description: |-
            Current operational value of the key for the aggregate interface.
          type: integer
          format: uint32
          x-field-uid: 13
        partner_id:
          description: |-
            MAC address representing the protocol partner's interface system ID.
          type: string
          format: mac
          x-field-uid: 14
        partner_key:
          description: |-
            Operational value of the protocol partner's key.
          type: integer
          format: uint32
          x-field-uid: 15
        port_num:
          description: |-
            Port number of the local (actor) aggregation member.
          type: integer
          format: uint32
          x-field-uid: 16
        partner_port_num:
          description: |-
            Port number of the partner (remote) port for this member port.
          type: integer
          format: uint32
          x-field-uid: 17
    Lldp.Metrics.Request:
      description: |-
        The request to retrieve LLDP per instance metrics/statistics.
      type: object
      properties:
        lldp_names:
          description: |
            The names of LLDP instances to return results for. An empty list will return results for all LLDP instances.

            x-constraint:
            - /components/schemas/Lldp/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Lldp/properties/name
          x-field-uid: 1
        column_names:
          description: |-
            The requested list of column names for the result set. If the list is empty then metrics for all columns will be returned. The name of LLDP instance can not be excluded.
          type: array
          items:
            type: string
            x-enum:
              frames_rx:
                x-field-uid: 1
              frames_tx:
                x-field-uid: 2
              frames_error_rx:
                x-field-uid: 3
              frames_discard:
                x-field-uid: 4
              tlvs_discard:
                x-field-uid: 5
              tlvs_unknown:
                x-field-uid: 6
            enum:
            - frames_rx
            - frames_tx
            - frames_error_rx
            - frames_discard
            - tlvs_discard
            - tlvs_unknown
          x-field-uid: 2
    Lldp.Metric:
      description: |-
        LLDP per instance statistics information.
      type: object
      properties:
        name:
          description: |-
            The name of the configured LLDP instance.
          type: string
          x-field-uid: 1
        frames_rx:
          description: |-
            Number of LLDP frames received.
          type: integer
          format: uint64
          x-field-uid: 2
        frames_tx:
          description: |-
            Number of LLDP frames transmitted.
          type: integer
          format: uint64
          x-field-uid: 3
        frames_error_rx:
          description: |-
            Number of LLDP frames received with packet errors. This stat should be incremented based on statsFramesInErrorsTotal increment rule in section 10.3.2 of IEEE Std 802.1 AB-2005.
          type: integer
          format: uint64
          x-field-uid: 4
        frames_discard:
          description: |-
            Number of LLDP frames received that are discarded. This stat should be incremented when one or more of the three mandatory  TLVs at the beginning of the LLDPDU is missing, out of order or  contains an out of range information string length. This stat should follow the validation rules in section 10.3.2 of IEEE  Std 802.1 AB-2005.
          type: integer
          format: uint64
          x-field-uid: 5
        tlvs_discard:
          description: |-
            Number of LLDP tlvs received that are discarded. If any TLV contains  an error condition specific for that particular TLV or if any TLV  extends past the physical end of the frame then these TLVs will be discarded.
          type: integer
          format: uint64
          x-field-uid: 6
        tlvs_unknown:
          description: |-
            Number of LLDP unknown tlvs received. If the OUI of the organizationlly specific TLV and/or organizationally defined subtype are not recognized,or if TLV type  value is in the range of reserved TLV types then these TLVs will be considered as  unknown TLVs.
          type: integer
          format: uint64
          x-field-uid: 7
    Rsvp.Metrics.Request:
      description: |-
        The request to retrieve RSVP-TE per Router metrics/statistics.
      type: object
      properties:
        router_names:
          description: |
            The names of RSVP-TE Routers to return results for. An empty list as input will return results for all RSVP-TE routers.

            x-constraint:
            - /components/schemas/Device.Rsvp/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Device.Rsvp/properties/name
          x-field-uid: 1
        column_names:
          description: "The list of column names that the returned result set will\
            \ contain. If the input list is empty then all columns will be returned\
            \ except for any result_groups.            "
          type: array
          items:
            type: string
            x-enum:
              ingress_p2p_lsps_configured:
                x-field-uid: 1
              ingress_p2p_lsps_up:
                x-field-uid: 2
              egress_p2p_lsps_up:
                x-field-uid: 3
              lsp_flap_count:
                x-field-uid: 4
              paths_tx:
                x-field-uid: 5
              paths_rx:
                x-field-uid: 6
              resvs_tx:
                x-field-uid: 7
              resvs_rx:
                x-field-uid: 8
              path_tears_tx:
                x-field-uid: 9
              path_tears_rx:
                x-field-uid: 10
              resv_tears_tx:
                x-field-uid: 11
              resv_tears_rx:
                x-field-uid: 12
              path_errors_tx:
                x-field-uid: 13
              path_errors_rx:
                x-field-uid: 14
              resv_errors_tx:
                x-field-uid: 15
              resv_errors_rx:
                x-field-uid: 16
              resv_conf_tx:
                x-field-uid: 17
              resv_conf_rx:
                x-field-uid: 18
              hellos_tx:
                x-field-uid: 19
              hellos_rx:
                x-field-uid: 20
              acks_tx:
                x-field-uid: 21
              acks_rx:
                x-field-uid: 22
              nacks_tx:
                x-field-uid: 23
              nacks_rx:
                x-field-uid: 24
              srefresh_tx:
                x-field-uid: 25
              srefresh_rx:
                x-field-uid: 26
              bundle_tx:
                x-field-uid: 27
              bundle_rx:
                x-field-uid: 28
              path_reevaluation_request_tx:
                x-field-uid: 29
              path_reoptimizations:
                x-field-uid: 30
            enum:
            - ingress_p2p_lsps_configured
            - ingress_p2p_lsps_up
            - egress_p2p_lsps_up
            - lsp_flap_count
            - paths_tx
            - paths_rx
            - resvs_tx
            - resvs_rx
            - path_tears_tx
            - path_tears_rx
            - resv_tears_tx
            - resv_tears_rx
            - path_errors_tx
            - path_errors_rx
            - resv_errors_tx
            - resv_errors_rx
            - resv_conf_tx
            - resv_conf_rx
            - hellos_tx
            - hellos_rx
            - acks_tx
            - acks_rx
            - nacks_tx
            - nacks_rx
            - srefresh_tx
            - srefresh_rx
            - bundle_tx
            - bundle_rx
            - path_reevaluation_request_tx
            - path_reoptimizations
          x-field-uid: 2
    Rsvp.Metric:
      description: |-
        RSVP-TE per router statistics information.
      type: object
      properties:
        name:
          description: |-
            The name of a configured RSVP router.
          type: string
          x-field-uid: 1
        ingress_p2p_lsps_configured:
          description: |-
            The number of ingress point-to-point LSPs configured or transiting through the RSVP router which have been initated from the test port.
          type: integer
          format: uint32
          x-field-uid: 2
        ingress_p2p_lsps_up:
          description: "The number of ingress point-to-point LSPs for which Resv has\
            \ been received and is currently up. "
          type: integer
          format: uint32
          x-field-uid: 3
        egress_p2p_lsps_up:
          description: |-
            The number of egress point-to-point LSPs for which Path requests were successfully processed and is currently up.
          type: integer
          format: uint32
          x-field-uid: 4
        lsp_flap_count:
          description: |-
            The number of times an LSP went from up to down state either because it timed out while waiting for Refreshes or  a PathTear or ResvTear message was received which caused the LSP to flap.
          type: integer
          format: uint64
          x-field-uid: 5
        paths_tx:
          description: |-
            The number of Path messages sent by this RSVP router.
          type: integer
          format: uint64
          x-field-uid: 6
        paths_rx:
          description: |-
            The number of Path messages received by this RSVP router.
          type: integer
          format: uint64
          x-field-uid: 7
        resvs_tx:
          description: |-
            The number of Resv messages sent by this RSVP router.
          type: integer
          format: uint64
          x-field-uid: 8
        resvs_rx:
          description: |-
            The number of Resv messages received by this RSVP router.
          type: integer
          format: uint64
          x-field-uid: 9
        path_tears_tx:
          description: |-
            The number of  Path Tear messages sent by this RSVP router.
          type: integer
          format: uint64
          x-field-uid: 10
        path_tears_rx:
          description: "The number of Path Tear messages received by this RSVP router. "
          type: integer
          format: uint64
          x-field-uid: 11
        resv_tears_tx:
          description: |-
            The number of  Resv Tear messages sent by this RSVP router.
          type: integer
          format: uint64
          x-field-uid: 12
        resv_tears_rx:
          description: "The number of Resv Tear messages received by this RSVP router. "
          type: integer
          format: uint64
          x-field-uid: 13
        path_errors_tx:
          description: |-
            The number of Path Error messages sent by this RSVP router.
          type: integer
          format: uint64
          x-field-uid: 14
        path_errors_rx:
          description: "The number of Path Error messages received by this RSVP router. "
          type: integer
          format: uint64
          x-field-uid: 15
        resv_errors_tx:
          description: |-
            The number of Resv Error messages sent by this RSVP router.
          type: integer
          format: uint64
          x-field-uid: 16
        resv_errors_rx:
          description: "The number of Resv Error messages received by this RSVP router. "
          type: integer
          format: uint64
          x-field-uid: 17
        resv_conf_tx:
          description: |-
            The number of ResvConf messages sent by this RSVP router.
          type: integer
          format: uint64
          x-field-uid: 18
        resv_conf_rx:
          description: "The number of ResvConf messages received by this RSVP router. "
          type: integer
          format: uint64
          x-field-uid: 19
        hellos_tx:
          description: |-
            The number of Hello messages sent by this RSVP router.
          type: integer
          format: uint64
          x-field-uid: 20
        hellos_rx:
          description: "The number of Hello messages received by this RSVP router. "
          type: integer
          format: uint64
          x-field-uid: 21
        acks_tx:
          description: |-
            The number of Ack messages sent by this RSVP router.
          type: integer
          format: uint64
          x-field-uid: 22
        acks_rx:
          description: "The number of Ack messages received by this RSVP router. "
          type: integer
          format: uint64
          x-field-uid: 23
        nacks_tx:
          description: |-
            The number of Nack messages sent by this RSVP router.
          type: integer
          format: uint64
          x-field-uid: 24
        nacks_rx:
          description: "The number of Nack messages received by this RSVP router. "
          type: integer
          format: uint64
          x-field-uid: 25
        srefresh_tx:
          description: |-
            The number of SRefresh messages sent by this RSVP router.
          type: integer
          format: uint64
          x-field-uid: 26
        srefresh_rx:
          description: "The number of SRefresh messages received by this RSVP router. "
          type: integer
          format: uint64
          x-field-uid: 27
        bundle_tx:
          description: |-
            The number of Bundle messages sent by this RSVP router.
          type: integer
          format: uint64
          x-field-uid: 28
        bundle_rx:
          description: "The number of Bundle messages received by this RSVP router. "
          type: integer
          format: uint64
          x-field-uid: 29
        path_reevaluation_request_tx:
          description: |-
            The number of Path messages with Path Re-evaluation Request enabled sent by this RSVP router.
          type: integer
          format: uint64
          x-field-uid: 30
        path_reoptimizations:
          description: |-
            The number of successfully completed Make-Before-Break operations on LSPs on this RSVP router.
          type: integer
          format: uint64
          x-field-uid: 31
    Dhcpv4Client.Metrics.Request:
      description: |-
        The request to retrieve DHCPv4 per client metrics/statistics.
      type: object
      properties:
        client_names:
          description: |
            The names of DHCPv4 clients to return results for. An empty list will return results for all DHCPv4 client.

            x-constraint:
            - /components/schemas/Device.Dhcpv4client/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Device.Dhcpv4client/properties/name
          x-field-uid: 1
        column_names:
          description: |-
            The list of column names that the returned result set will contain. If the list is empty then all columns will be returned.  The name of the DHCPv4 client cannot be excluded.
          type: array
          items:
            type: string
            x-enum:
              discovers_sent:
                x-field-uid: 1
              offers_received:
                x-field-uid: 2
              requests_sent:
                x-field-uid: 3
              acks_received:
                x-field-uid: 4
              nacks_received:
                x-field-uid: 5
              releases_sent:
                x-field-uid: 6
              declines_sent:
                x-field-uid: 7
            enum:
            - discovers_sent
            - offers_received
            - requests_sent
            - acks_received
            - nacks_received
            - releases_sent
            - declines_sent
          x-field-uid: 2
    Dhcpv4Client.Metric:
      description: |-
        DHCPv4 per peer statistics information.
      type: object
      properties:
        name:
          description: |-
            The name of a configured DHCPv4 client.
          type: string
          x-field-uid: 1
        discovers_sent:
          description: |-
            Number of DHCPDISCOVER messages sent.
          type: integer
          format: uint64
          x-field-uid: 2
        offers_received:
          description: |-
            Number of DHCPOFFER messages received.
          type: integer
          format: uint64
          x-field-uid: 3
        requests_sent:
          description: |-
            Number of DHCPREQUEST messages sent.
          type: integer
          format: uint64
          x-field-uid: 4
        acks_received:
          description: |-
            Number of lease DHCPACK messages received.
          type: integer
          format: uint64
          x-field-uid: 5
        nacks_received:
          description: |-
            Number of negative lease DHCPNACK messages received.
          type: integer
          format: uint64
          x-field-uid: 6
        releases_sent:
          description: |-
            Number of DHCPRELEASE messages sent.
          type: integer
          format: uint64
          x-field-uid: 7
        declines_sent:
          description: |-
            Number of DHCPDECLINE messages sent.
          type: integer
          format: uint64
          x-field-uid: 8
    Dhcpv4Server.Metrics.Request:
      description: |-
        The request to retrieve DHCPv4 per Server metrics/statistics.
      type: object
      properties:
        server_names:
          description: |
            The names of DHCPv4 Servers to return results for. An empty list will return results for all DHCPv4 Server.

            x-constraint:
            - /components/schemas/Device.Dhcpv4Server/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Device.Dhcpv4Server/properties/name
          x-field-uid: 1
        column_names:
          description: |-
            The list of column names that the returned result set will contain. If the list is empty then all columns will be returned.  The name of the DHCPv4 server cannot be excluded.
          type: array
          items:
            type: string
            x-enum:
              discovers_received:
                x-field-uid: 1
              offers_sent:
                x-field-uid: 2
              requests_received:
                x-field-uid: 3
              acks_sent:
                x-field-uid: 4
              nacks_sent:
                x-field-uid: 5
              releases_received:
                x-field-uid: 6
              declines_received:
                x-field-uid: 7
            enum:
            - discovers_received
            - offers_sent
            - requests_received
            - acks_sent
            - nacks_sent
            - releases_received
            - declines_received
          x-field-uid: 2
    Dhcpv4Server.Metric:
      description: |-
        DHCPv4 per peer statistics information.
      type: object
      properties:
        name:
          description: |-
            The name of a configured DHCPv4 Server.
          type: string
          x-field-uid: 1
        discovers_received:
          description: |-
            Number of DHCPDISCOVER messages received.
          type: integer
          format: uint64
          x-field-uid: 2
        offers_sent:
          description: |-
            Number of DHCPOFFER messages sent.
          type: integer
          format: uint64
          x-field-uid: 3
        requests_received:
          description: |-
            Number of DHCPOFFER messages received.
          type: integer
          format: uint64
          x-field-uid: 4
        acks_sent:
          description: |-
            Number of lease DHCPACK messages sent.
          type: integer
          format: uint64
          x-field-uid: 5
        nacks_sent:
          description: |-
            Number of negative lease DHCPNACK messages sent.
          type: integer
          format: uint64
          x-field-uid: 6
        releases_received:
          description: |-
            Number of DHCPRELEASE messages received.
          type: integer
          format: uint64
          x-field-uid: 7
        declines_received:
          description: |-
            Number of DHCPDECLINE messages received.
          type: integer
          format: uint64
          x-field-uid: 8
    Dhcpv6Client.Metrics.Request:
      description: |-
        The request to retrieve DHCPv6 per client metrics/statistics.
      type: object
      properties:
        client_names:
          description: |
            The names of DHCPv6 clients to return results for. An empty list will return results for all DHCPv6 client.

            x-constraint:
            - /components/schemas/Device.Dhcpv6client/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Device.Dhcpv6client/properties/name
          x-field-uid: 1
        column_names:
          description: |-
            The list of column names that the returned result set will contain. If the list is empty then all columns will be returned except for any result_groups. The name of the DHCPv6 client cannot be excluded.
          type: array
          items:
            type: string
            x-enum:
              solicits_sent:
                x-field-uid: 1
              advertisements_received:
                x-field-uid: 2
              advertisements_ignored:
                x-field-uid: 3
              requests_sent:
                x-field-uid: 4
              nacks_received:
                x-field-uid: 5
              replies_received:
                x-field-uid: 6
              information_requests_sent:
                x-field-uid: 7
              renews_sent:
                x-field-uid: 8
              rebinds_sent:
                x-field-uid: 9
              releases_sent:
                x-field-uid: 10
              reconfigures_received:
                x-field-uid: 11
              rapid_commit_solicits_sent:
                x-field-uid: 12
              rapid_commit_replies_received:
                x-field-uid: 13
            enum:
            - solicits_sent
            - advertisements_received
            - advertisements_ignored
            - requests_sent
            - nacks_received
            - replies_received
            - information_requests_sent
            - renews_sent
            - rebinds_sent
            - releases_sent
            - reconfigures_received
            - rapid_commit_solicits_sent
            - rapid_commit_replies_received
          x-field-uid: 2
    Dhcpv6Client.Metric:
      description: |-
        DHCPv6 per peer statistics information.
      type: object
      properties:
        name:
          description: |-
            The name of a configured DHCPv6 client.
          type: string
          x-field-uid: 1
        solicits_sent:
          description: |-
            Number of DHCPSOLICIT messages sent.
          type: integer
          format: uint64
          x-field-uid: 2
        advertisements_received:
          description: |-
            Number of DHCPADVERTISE messages received.
          type: integer
          format: uint64
          x-field-uid: 3
        advertisements_ignored:
          description: |-
            Number of DHCPADVERTISE messages ignored.
          type: integer
          format: uint64
          x-field-uid: 4
        requests_sent:
          description: |-
            Number of DHCPREQUEST messages sent.
          type: integer
          format: uint64
          x-field-uid: 5
        nacks_received:
          description: |-
            Number of negative lease DHCPNACK messages received.
          type: integer
          format: uint64
          x-field-uid: 6
        replies_received:
          description: |-
            Number of DHCPOFFER messages received.
          type: integer
          format: uint64
          x-field-uid: 7
        information_requests_sent:
          description: |-
            Number of DHCP Inform requests sent.
          type: integer
          format: uint64
          x-field-uid: 8
        renews_sent:
          description: |-
            Number of DHCP renew messages sent.
          type: integer
          format: uint64
          x-field-uid: 9
        rebinds_sent:
          description: |-
            Number of DHCP rebind messages sent.
          type: integer
          format: uint64
          x-field-uid: 10
        releases_sent:
          description: |-
            Number of DHCP Release messages sent.
          type: integer
          format: uint64
          x-field-uid: 11
        reconfigures_received:
          description: |-
            Number of DHCP Reconfigure messages received.
          type: integer
          format: uint64
          x-field-uid: 12
        rapid_commit_solicits_sent:
          description: |-
            Number of rapid commit DHCPSOLICIT messages sent.
          type: integer
          format: uint64
          x-field-uid: 13
        rapid_commit_replies_received:
          description: |-
            Number of rapid commit DHCP Reply messages received.
          type: integer
          format: uint64
          x-field-uid: 14
    Dhcpv6Server.Metrics.Request:
      description: |-
        The request to retrieve DHCPv6 per Server metrics/statistics.
      type: object
      properties:
        server_names:
          description: |
            The names of DHCPv6 Servers to return results for. An empty list will return results for all DHCPv6 Server.

            x-constraint:
            - /components/schemas/Device.Dhcpv6Server/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Device.Dhcpv6Server/properties/name
          x-field-uid: 1
        column_names:
          description: |-
            The list of column names that the returned result set will contain. If the list is empty then all columns will be returned except for any result_groups. The name of the DHCPv6 server cannot be excluded.
          type: array
          items:
            type: string
            x-enum:
              solicits_received:
                x-field-uid: 1
              solicits_ignored:
                x-field-uid: 2
              advertisements_sent:
                x-field-uid: 3
              requests_received:
                x-field-uid: 4
              nacks_sent:
                x-field-uid: 5
              confirms_received:
                x-field-uid: 6
              renewals_received:
                x-field-uid: 7
              rebinds_received:
                x-field-uid: 8
              replies_sent:
                x-field-uid: 9
              releases_received:
                x-field-uid: 10
              declines_received:
                x-field-uid: 11
              information_requests_received:
                x-field-uid: 12
              relay_forwards_received:
                x-field-uid: 13
              relay_replies_sent:
                x-field-uid: 14
              reconfigures_sent:
                x-field-uid: 15
            enum:
            - solicits_received
            - solicits_ignored
            - advertisements_sent
            - requests_received
            - nacks_sent
            - confirms_received
            - renewals_received
            - rebinds_received
            - replies_sent
            - releases_received
            - declines_received
            - information_requests_received
            - relay_forwards_received
            - relay_replies_sent
            - reconfigures_sent
          x-field-uid: 2
    Dhcpv6Server.Metric:
      description: |-
        DHCPv6 per server statistics information.
      type: object
      properties:
        name:
          description: |-
            The name of a configured DHCPv6 Server.
          type: string
          x-field-uid: 1
        solicits_received:
          description: |-
            Number of DHCPSOLICIT messages received.
          type: integer
          format: uint64
          x-field-uid: 2
        solicits_ignored:
          description: |-
            Number of DHCPSOLICIT messages ignored.
          type: integer
          format: uint64
          x-field-uid: 3
        advertisements_sent:
          description: |-
            Number of DHCP Advertise messages sent.
          type: integer
          format: uint64
          x-field-uid: 4
        requests_received:
          description: |-
            Number of DHCPREQUEST messages received.
          type: integer
          format: uint64
          x-field-uid: 5
        nacks_sent:
          description: |-
            Number of naks sent for DHCPREQUEST messages.
          type: integer
          format: uint64
          x-field-uid: 6
        confirms_received:
          description: |-
            Number of DHCP Confirm messages received.
          type: integer
          format: uint64
          x-field-uid: 7
        renewals_received:
          description: |-
            Number of DHCP Renewal messages received.
          type: integer
          format: uint64
          x-field-uid: 8
        rebinds_received:
          description: |-
            Number of DHCP Rebind messages received.
          type: integer
          format: uint64
          x-field-uid: 9
        replies_sent:
          description: |-
            Number of DHCP Reply messages sent.
          type: integer
          format: uint64
          x-field-uid: 10
        releases_received:
          description: |-
            Number of DHCP Release messages received.
          type: integer
          format: uint64
          x-field-uid: 11
        declines_received:
          description: |-
            Number of DHCP Decline messages received.
          type: integer
          format: uint64
          x-field-uid: 12
        information_requests_received:
          description: |-
            Number of DHCP Information Request messages received.
          type: integer
          format: uint64
          x-field-uid: 13
        relay_forwards_received:
          description: |-
            Number of DHCP Relay agent forward messages received.
          type: integer
          format: uint64
          x-field-uid: 14
        relay_replies_sent:
          description: |-
            Number of DHCP reply messages sent to Relay agent.
          type: integer
          format: uint64
          x-field-uid: 15
        reconfigures_sent:
          description: |-
            Number of DHCP Reconfigure messages sent.
          type: integer
          format: uint64
          x-field-uid: 16
    Ospfv2.Metrics.Request:
      description: |-
        The request to retrieve OSPFv2 per Router metrics/statistics.
      type: object
      properties:
        router_names:
          description: |
            The names of OSPFv2 routers to return results for. An empty list will return results for all OSPFv2 router.

            x-constraint:
            - /components/schemas/Device.Ospfv2/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Device.Ospfv2/properties/name
          x-field-uid: 1
        column_names:
          description: |-
            The list of column names that the returned result set will contain.
            If the list is empty then all columns will be returned except for
            any result_groups.
            The name of the OSPFv2 Router cannot be excluded.
          type: array
          items:
            type: string
            x-enum:
              full_state_count:
                x-field-uid: 1
              down_state_count:
                x-field-uid: 2
              sessions_flap:
                x-field-uid: 3
              hellos_sent:
                x-field-uid: 4
              hellos_received:
                x-field-uid: 5
              dbd_sent:
                x-field-uid: 6
              dbd_received:
                x-field-uid: 7
              ls_request_sent:
                x-field-uid: 8
              ls_request_received:
                x-field-uid: 9
              ls_update_sent:
                x-field-uid: 10
              ls_update_received:
                x-field-uid: 11
              ls_ack_sent:
                x-field-uid: 12
              ls_ack_received:
                x-field-uid: 13
              lsa_sent:
                x-field-uid: 14
              lsa_received:
                x-field-uid: 15
              lsa_ack_sent:
                x-field-uid: 16
              lsa_ack_received:
                x-field-uid: 17
              router_lsa_sent:
                x-field-uid: 18
              router_lsa_received:
                x-field-uid: 19
              network_lsa_sent:
                x-field-uid: 20
              network_lsa_received:
                x-field-uid: 21
              summary_lsa_sent:
                x-field-uid: 22
              summary_lsa_received:
                x-field-uid: 23
              external_lsa_sent:
                x-field-uid: 24
              external_lsa_received:
                x-field-uid: 25
              nssa_lsa_sent:
                x-field-uid: 26
              nssa_lsa_received:
                x-field-uid: 27
              opaque_local_sent:
                x-field-uid: 28
              opaque_local_received:
                x-field-uid: 29
              opaque_area_sent:
                x-field-uid: 30
              opaque_area_received:
                x-field-uid: 31
              opaque_domain_sent:
                x-field-uid: 32
              opaque_domain_received:
                x-field-uid: 33
            enum:
            - full_state_count
            - down_state_count
            - sessions_flap
            - hellos_sent
            - hellos_received
            - dbd_sent
            - dbd_received
            - ls_request_sent
            - ls_request_received
            - ls_update_sent
            - ls_update_received
            - ls_ack_sent
            - ls_ack_received
            - lsa_sent
            - lsa_received
            - lsa_ack_sent
            - lsa_ack_received
            - router_lsa_sent
            - router_lsa_received
            - network_lsa_sent
            - network_lsa_received
            - summary_lsa_sent
            - summary_lsa_received
            - external_lsa_sent
            - external_lsa_received
            - nssa_lsa_sent
            - nssa_lsa_received
            - opaque_local_sent
            - opaque_local_received
            - opaque_area_sent
            - opaque_area_received
            - opaque_domain_sent
            - opaque_domain_received
          x-field-uid: 2
    Ospfv2.Metric:
      description: |-
        OSPFv2 per router statistics information.
      type: object
      properties:
        name:
          description: |-
            The name of a configured OSPFv2 router.
          type: string
          x-field-uid: 1
        full_state_count:
          description: |-
            The number of OSPFv2 sessions in up state.
          type: integer
          format: uint64
          x-field-uid: 2
        down_state_count:
          description: |-
            The number of OSPFv2 sessions in down state.
          type: integer
          format: uint64
          x-field-uid: 3
        sessions_flap:
          description: |-
            The number of change of OSPFv2 sessions from up to down state.
          type: integer
          format: uint64
          x-field-uid: 4
        hellos_sent:
          description: |-
            The number of OSPFv2 Hello messages transmitted.
          type: integer
          format: uint64
          x-field-uid: 5
        hellos_received:
          description: |-
            The number of OSPFv2 Hello messages received.
          type: integer
          format: uint64
          x-field-uid: 6
        dbd_sent:
          description: |-
            The number of OSPFv2 Database Description (DBD) messages transmitted.
          type: integer
          format: uint64
          x-field-uid: 7
        dbd_received:
          description: |-
            The number of OSPFv2 Database Description (DBD) messages received.
          type: integer
          format: uint64
          x-field-uid: 8
        ls_request_sent:
          description: |-
            The number of OSPFv2 LinkState (LS) Request messages transmitted.
          type: integer
          format: uint64
          x-field-uid: 9
        ls_request_received:
          description: |-
            The number of OSPFv2 LinkState (LS) Request messages received.
          type: integer
          format: uint64
          x-field-uid: 10
        ls_update_sent:
          description: |-
            The number of OSPFv2 LinkState (LS) Update messages transmitted.
          type: integer
          format: uint64
          x-field-uid: 11
        ls_update_received:
          description: |-
            The number of OSPFv2 LinkState (LS) Update messages received.
          type: integer
          format: uint64
          x-field-uid: 12
        ls_ack_sent:
          description: |-
            The number of OSPFv2 LinkState (LS) Acknowledgement messages transmitted.
          type: integer
          format: uint64
          x-field-uid: 13
        ls_ack_received:
          description: |-
            The number of OSPFv2 LinkState (LS) Acknowledgement messages received.
          type: integer
          format: uint64
          x-field-uid: 14
        lsa_sent:
          description: |-
            The total number of OSPFv2 LinkState Advertisement (LSA) messages transmitted.
          type: integer
          format: uint64
          x-field-uid: 15
        lsa_received:
          description: |-
            The total number of OSPFv2 LinkState Advertisement (LSA) messages received.
          type: integer
          format: uint64
          x-field-uid: 16
        lsa_ack_sent:
          description: |-
            The total number of OSPFv2 LinkState Advertisement (LSA) messages acknowledged.
          type: integer
          format: uint64
          x-field-uid: 17
        lsa_ack_received:
          description: |-
            The total number of OSPFv2 LinkState Advertisement (LSA) acknowledge messages received .
          type: integer
          format: uint64
          x-field-uid: 18
        router_lsa_sent:
          description: |-
            The number of OSPFv2 Router (Type 1) LSAs transmitted.
          type: integer
          format: uint64
          x-field-uid: 19
        router_lsa_received:
          description: |-
            The number of OSPFv2 Router (Type 1) LSAs received.
          type: integer
          format: uint64
          x-field-uid: 20
        network_lsa_sent:
          description: |-
            The number of OSPFv2 Network (Type 2) LSAs transmitted.
          type: integer
          format: uint64
          x-field-uid: 21
        network_lsa_received:
          description: |-
            The number of OSPFv2 Network (Type 2) LSAs transmitted.
          type: integer
          format: uint64
          x-field-uid: 22
        summary_lsa_sent:
          description: "The number of OSPFv2 Summary IP (Type 3) LSAs transmitted.\
            \  "
          type: integer
          format: uint64
          x-field-uid: 23
        summary_lsa_received:
          description: |-
            The number of OSPFv2 Summary IP (Type 3) LSA received.
          type: integer
          format: uint64
          x-field-uid: 24
        external_lsa_sent:
          description: |-
            The number of OSPFv2 External (Type 5) LSAs transmitted.
          type: integer
          format: uint64
          x-field-uid: 25
        external_lsa_received:
          description: |-
            The number of OSPFv2 External (Type 5) LSAs received.
          type: integer
          format: uint64
          x-field-uid: 26
        nssa_lsa_sent:
          description: |-
            The number of OSPFv2 NSSA (Type 7) LSAs transmitted.
          type: integer
          format: uint64
          x-field-uid: 27
        nssa_lsa_received:
          description: |-
            The number of OSPFv2 NSSA (Type 7) LSAs received.
          type: integer
          format: uint64
          x-field-uid: 28
        opaque_local_sent:
          description: |-
            The number of OSPFv2 Opaque Local (Type 9) LSAs transmitted.
          type: integer
          format: uint64
          x-field-uid: 29
        opaque_local_received:
          description: "The number of OSPFv2 Opaque Local (Type 9) LSAs received. "
          type: integer
          format: uint64
          x-field-uid: 30
        opaque_area_sent:
          description: |-
            The number of OSPF Opaque Area (Type 10) LSAs transmitted.
          type: integer
          format: uint64
          x-field-uid: 31
        opaque_area_received:
          description: |-
            The number of OSPFv2 Opaque Area (Type 10) LSAs received.
          type: integer
          format: uint64
          x-field-uid: 32
        opaque_domain_sent:
          description: |-
            The number of OSPFv2 Opaque Domain (Type 11) LSAs transmitted.
          type: integer
          format: uint64
          x-field-uid: 33
        opaque_domain_received:
          description: |-
            The number of OSPFv2 Opaque Domain (Type 11) LSAs received.
          type: integer
          format: uint64
          x-field-uid: 34
    Convergence.Request:
      description: |-
        Under Review: Convergence metrics is currently under review for pending exploration on use cases.

        Container for requesting control-plane and data-plane convergence time metrics for flows.
      x-status:
        status: under_review
        information: Convergence metrics is currently under review for pending exploration
          on use cases.
      type: object
      properties:
        flow_names:
          description: |
            Convergence metrics will be retrieved for these flow names.
            If no flow names are specified then convergence metrics for all flows will be returned.

            x-constraint:
            - /components/schemas/Flow/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Flow/properties/name
          x-field-uid: 1
    Convergence.Metric:
      description: |-
        Under Review: Convergence metrics is currently under review for pending exploration on use cases.

        The container for convergence metrics.
      x-status:
        status: under_review
        information: Convergence metrics is currently under review for pending exploration
          on use cases.
      type: object
      properties:
        name:
          description: "The name of a flow. "
          type: string
          x-field-uid: 1
        data_plane_convergence_us:
          description: "The convergence time(microseconds) measured from the data\
            \ plane perspective only. \nIt measures the time w.r.t. last start of\
            \ the traffic of the affected flow from Below Threshold Timestamp, \n\
            when the rate on Test Port 2 crosses below the Rx Threshold until an acceptable\
            \ amount of traffic was \nreceived at time Above Threshold Timestamp,\
            \ when the rate crosses above the configured \nrx_rate_threshold."
          type: number
          format: double
          x-field-uid: 2
        control_plane_data_plane_convergence_us:
          description: "The total convergence time(microseconds), between the event\
            \ that caused the\nswitchover until an acceptable amount of traffic was\
            \ \nreceived at time Above Threshold Timestamp, when the rate crosses\
            \ above the configured \nrx_rate_threshold."
          type: number
          format: double
          x-field-uid: 3
        events:
          description: |-
            The events that were used to determine the convergence analytics.
          type: array
          items:
            $ref: '#/components/schemas/Convergence.Event'
          x-field-uid: 4
    Convergence.Event:
      description: |-
        A container for an event that has occurred in the system affecting the convergence time recorded for the flow.
      type: object
      properties:
        type:
          description: |-
            The type of control plane or data plane event that occurred.
          type: string
          x-field-uid: 1
          x-enum:
            link_down:
              x-field-uid: 1
            link_up:
              x-field-uid: 2
            route_withdraw:
              x-field-uid: 3
            route_advertise:
              x-field-uid: 4
            flow_rx_rate_above_threshold:
              x-field-uid: 5
            flow_rx_rate_below_threshold:
              x-field-uid: 6
          enum:
          - link_down
          - link_up
          - route_withdraw
          - route_advertise
          - flow_rx_rate_above_threshold
          - flow_rx_rate_below_threshold
        source:
          description: "The source of the event. \nThe source MUST be the value of\
            \ one of the x-constraint paths,\nwhich means the source MUST be a unique\
            \ name in the configuration. \n\nx-constraint:\n- /components/schemas/Port/properties/name\n\
            - /components/schemas/Flow/properties/name\n- /components/schemas/Device.Bgpv4Route/properties/name\n\
            - /components/schemas/Device.Bgpv6Route/properties/name\n"
          type: string
          x-constraint:
          - /components/schemas/Port/properties/name
          - /components/schemas/Flow/properties/name
          - /components/schemas/Device.Bgpv4Route/properties/name
          - /components/schemas/Device.Bgpv6Route/properties/name
          x-field-uid: 2
        begin_timestamp_ns:
          description: |-
            The timestamp(nanoseconds) of the starting event that triggers convergence.
          type: number
          format: double
          x-field-uid: 3
        end_timestamp_ns:
          description: |-
            The timestamp(nanoseconds) of the end event that triggers convergence.
          type: number
          format: double
          x-field-uid: 4
    Macsec.Metrics.Request:
      description: |-
        The request to retrieve MACsec per secure entity(secY) metrics/statistics.
      type: object
      properties:
        secure_entity_names:
          description: |
            The names of secure entities(secYs) to return results for. An empty list will return results for all secYs.

            x-constraint:
            - /components/schemas/Macsec/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Macsec/properties/name
          x-field-uid: 1
        column_names:
          description: |-
            The list of column names that the returned result set will contain. If the list is empty then all columns will be returned except for any result_groups. The name of the secure entity(secY) cannot be excluded.
          type: array
          items:
            type: string
            x-enum:
              session_state:
                x-field-uid: 1
              session_flap_count:
                x-field-uid: 2
              out_pkts_protected:
                x-field-uid: 3
              out_pkts_encrypted:
                x-field-uid: 4
              in_pkts_ok:
                x-field-uid: 5
              in_pkts_bad:
                x-field-uid: 6
              in_pkts_bad_tag:
                x-field-uid: 7
              in_pkts_late:
                x-field-uid: 8
              in_pkts_no_sci:
                x-field-uid: 9
              in_pkts_not_using_sa:
                x-field-uid: 10
              in_pkts_not_valid:
                x-field-uid: 11
              in_pkts_unknown_sci:
                x-field-uid: 12
              in_pkts_unused_sa:
                x-field-uid: 13
              in_pkts_invalid:
                x-field-uid: 14
              in_pkts_untagged:
                x-field-uid: 15
              out_octets_protected:
                x-field-uid: 16
              out_octets_encrypted:
                x-field-uid: 17
              in_octets_validated:
                x-field-uid: 18
              in_octets_decrypted:
                x-field-uid: 19
            enum:
            - session_state
            - session_flap_count
            - out_pkts_protected
            - out_pkts_encrypted
            - in_pkts_ok
            - in_pkts_bad
            - in_pkts_bad_tag
            - in_pkts_late
            - in_pkts_no_sci
            - in_pkts_not_using_sa
            - in_pkts_not_valid
            - in_pkts_unknown_sci
            - in_pkts_unused_sa
            - in_pkts_invalid
            - in_pkts_untagged
            - out_octets_protected
            - out_octets_encrypted
            - in_octets_validated
            - in_octets_decrypted
          x-field-uid: 2
    Macsec.Metric:
      description: |-
        MACsec per secure entity(secY) statistics information.
      type: object
      properties:
        name:
          description: |-
            The name of a configured MACsec secure entity(secY).
          type: string
          x-field-uid: 1
        session_state:
          description: |-
            Session state as up or down. Up refers to an Established state and Down refers to any other state.
          type: string
          x-field-uid: 2
          x-enum:
            up:
              x-field-uid: 1
            down:
              x-field-uid: 2
          enum:
          - up
          - down
        session_flap_count:
          description: |-
            Number of times the session went from Up to Down state.
          type: integer
          format: uint64
          x-field-uid: 3
        out_pkts_protected:
          description: |-
            OutPktsProtected, the number of protected packets transmitted.
          type: integer
          format: uint64
          x-field-uid: 4
        out_pkts_encrypted:
          description: |-
            OutPktsEncrypted, the number of encrypted packets transmitted.
          type: integer
          format: uint64
          x-field-uid: 5
        in_pkts_ok:
          description: |-
            InPktsOk, the number of valid packets received.
          type: integer
          format: uint64
          x-field-uid: 6
        in_pkts_bad:
          description: |-
            The total number of received bad packets that failed atleast one validation check.
          type: integer
          format: uint64
          x-field-uid: 7
        in_pkts_bad_tag:
          description: |-
            InPktsBadTag, the number of packets discarded due to bad tag/ICV.
          type: integer
          format: uint64
          x-field-uid: 8
        in_pkts_late:
          description: |-
            InPktsLate, the number of packets discarded out of window.
          type: integer
          format: uint64
          x-field-uid: 9
        in_pkts_no_sci:
          description: |-
            InPktsNoSCI,the number of packets discarded due to unknown SCI.
          type: integer
          format: uint64
          x-field-uid: 10
        in_pkts_not_using_sa:
          description: |-
            InPktsNotUsingSA, the number of packets discarded due to unused SA.
          type: integer
          format: uint64
          x-field-uid: 11
        in_pkts_not_valid:
          description: |-
            InPktsNotValid, the number of packets discarded due to invalid ICV.
          type: integer
          format: uint64
          x-field-uid: 12
        in_pkts_unknown_sci:
          description: |-
            InPktsUnknownSCI, the number of packets received with unknown SCI.
          type: integer
          format: uint64
          x-field-uid: 13
        in_pkts_unused_sa:
          description: |-
            InPktsUnusedSA, the number of packets received with unused SA.
          type: integer
          format: uint64
          x-field-uid: 14
        in_pkts_invalid:
          description: |-
            InPktsInvalid, the number of packets received with invalid ICV.
          type: integer
          format: uint64
          x-field-uid: 15
        in_pkts_untagged:
          description: |-
            InPktsUntagged, the number of non-MACsec packets received.
          type: integer
          format: uint64
          x-field-uid: 16
        out_octets_protected:
          description: |-
            OutOctetsProtected, the number of bytes transmitted as protected.
          type: integer
          format: uint64
          x-field-uid: 17
        out_octets_encrypted:
          description: |-
            OutOctetsEncrypted, the number of bytes transmitted as encrypted.
          type: integer
          format: uint64
          x-field-uid: 18
        in_octets_validated:
          description: |-
            InOctetsValidated, the number of received bytes validated.
          type: integer
          format: uint64
          x-field-uid: 19
        in_octets_decrypted:
          description: |-
            InOctetsDecrypted, the number of received bytes decrypted.
          type: integer
          format: uint64
          x-field-uid: 20
    Mka.Metrics.Request:
      description: |-
        The request to retrieve MKA per peer metrics/statistics.
      type: object
      properties:
        peer_names:
          description: |
            The names of peers to return results for. An empty list will return results for all peers.

            x-constraint:
            - /components/schemas/Mka/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Mka/properties/name
          x-field-uid: 1
        column_names:
          description: |-
            The list of column names that the returned result set will contain. If the list is empty then all columns will be returned except for any result_groups. The name of the peer cannot be excluded.
          type: array
          items:
            type: string
            x-enum:
              session_state:
                x-field-uid: 1
              session_flap_count:
                x-field-uid: 2
              mkpdu_tx:
                x-field-uid: 3
              mkpdu_rx:
                x-field-uid: 4
              live_peer_count:
                x-field-uid: 5
              potential_peer_count:
                x-field-uid: 6
              latest_key_tx_peer_count:
                x-field-uid: 7
              latest_key_rx_peer_count:
                x-field-uid: 8
              malformed_mkpdu:
                x-field-uid: 9
              icv_mismatch:
                x-field-uid: 10
            enum:
            - session_state
            - session_flap_count
            - mkpdu_tx
            - mkpdu_rx
            - live_peer_count
            - potential_peer_count
            - latest_key_tx_peer_count
            - latest_key_rx_peer_count
            - malformed_mkpdu
            - icv_mismatch
          x-field-uid: 2
    Mka.Metric:
      description: |-
        MKA per peer statistics information.
      type: object
      properties:
        name:
          description: |-
            The name of a configured MKA peer.
          type: string
          x-field-uid: 1
        session_state:
          description: |-
            Session state as up or down. Up refers to an Established state and Down refers to any other state.
          type: string
          x-field-uid: 2
          x-enum:
            up:
              x-field-uid: 1
            down:
              x-field-uid: 2
          enum:
          - up
          - down
        session_flap_count:
          description: |-
            Number of times the session went from Up to Down state.
          type: integer
          format: uint64
          x-field-uid: 3
        mkpdu_tx:
          description: |-
            Number of MKA protocol data unit(MKPDU) frames Tx.
          type: integer
          format: uint64
          x-field-uid: 4
        mkpdu_rx:
          description: |-
            Number of MKA protocol data unit(MKPDU) frames Rx.
          type: integer
          format: uint64
          x-field-uid: 5
        live_peer_count:
          description: |-
            Number of MKA live peers.
          type: integer
          format: uint64
          x-field-uid: 6
        potential_peer_count:
          description: |-
            Number of MKA potential peers.
          type: integer
          format: uint64
          x-field-uid: 7
        latest_key_tx_peer_count:
          description: |-
            Number of MKA latest key Tx peers.
          type: integer
          format: uint64
          x-field-uid: 8
        latest_key_rx_peer_count:
          description: |-
            Number of MKA latest key Rx peers.
          type: integer
          format: uint64
          x-field-uid: 9
        malformed_mkpdu:
          description: |-
            Number of malformed MKA Protocol Data Unit(MKPDU) frames Rx.
          type: integer
          format: uint64
          x-field-uid: 10
        icv_mismatch:
          description: |-
            Number of MKA Protocol Data Unit(MKPDU) frames with ICV mismatch Rx.
          type: integer
          format: uint64
          x-field-uid: 11
    Ospfv3.Metrics.Request:
      description: |-
        The request to retrieve OSPFv3 per router metrics/statistics.
      type: object
      properties:
        router_names:
          description: |
            The names of OSPFv3 routers to return results for. An empty list will return results for all OSPFv3 routers.

            x-constraint:
            - /components/schemas/Ospfv3.RouterInstance/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Ospfv3.RouterInstance/properties/name
          x-field-uid: 1
        column_names:
          description: |-
            The list of column names that the returned result set will contain.
            If the list is empty then all columns will be returned except for
            any result_groups.
            The name of the OSPFv3 Router cannot be excluded.
          type: array
          items:
            type: string
            x-enum:
              full_state_count:
                x-field-uid: 1
              down_state_count:
                x-field-uid: 2
              sessions_flap:
                x-field-uid: 3
              hellos_sent:
                x-field-uid: 4
              hellos_received:
                x-field-uid: 5
              dbd_sent:
                x-field-uid: 6
              dbd_received:
                x-field-uid: 7
              ls_request_sent:
                x-field-uid: 8
              ls_request_received:
                x-field-uid: 9
              ls_update_sent:
                x-field-uid: 10
              ls_update_received:
                x-field-uid: 11
              ls_ack_sent:
                x-field-uid: 12
              ls_ack_received:
                x-field-uid: 13
              lsa_sent:
                x-field-uid: 14
              lsa_received:
                x-field-uid: 15
              router_lsa_sent:
                x-field-uid: 16
              router_lsa_received:
                x-field-uid: 17
              network_lsa_sent:
                x-field-uid: 18
              network_lsa_received:
                x-field-uid: 19
              inter_area_prefix_lsa_sent:
                x-field-uid: 20
              inter_area_prefix_lsa_received:
                x-field-uid: 21
              inter_area_router_lsa_sent:
                x-field-uid: 22
              inter_area_router_lsa_received:
                x-field-uid: 23
              external_lsa_sent:
                x-field-uid: 24
              external_lsa_received:
                x-field-uid: 25
              nssa_lsa_sent:
                x-field-uid: 26
              nssa_lsa_received:
                x-field-uid: 27
              link_lsa_sent:
                x-field-uid: 28
              link_lsa_received:
                x-field-uid: 29
              intra_area_prefix_lsa_sent:
                x-field-uid: 30
              intra_area_prefix_lsa_received:
                x-field-uid: 31
            enum:
            - full_state_count
            - down_state_count
            - sessions_flap
            - hellos_sent
            - hellos_received
            - dbd_sent
            - dbd_received
            - ls_request_sent
            - ls_request_received
            - ls_update_sent
            - ls_update_received
            - ls_ack_sent
            - ls_ack_received
            - lsa_sent
            - lsa_received
            - router_lsa_sent
            - router_lsa_received
            - network_lsa_sent
            - network_lsa_received
            - inter_area_prefix_lsa_sent
            - inter_area_prefix_lsa_received
            - inter_area_router_lsa_sent
            - inter_area_router_lsa_received
            - external_lsa_sent
            - external_lsa_received
            - nssa_lsa_sent
            - nssa_lsa_received
            - link_lsa_sent
            - link_lsa_received
            - intra_area_prefix_lsa_sent
            - intra_area_prefix_lsa_received
          x-field-uid: 2
    Ospfv3.Metric:
      description: |-
        OSPFv3 per router statistics information.
      type: object
      properties:
        name:
          description: |-
            The name of a configured OSPFv3 router.
          type: string
          x-field-uid: 1
        full_state_count:
          description: |-
            The number of OSPFv3 sessions in up state.
          type: integer
          format: uint64
          x-field-uid: 2
        down_state_count:
          description: |-
            The number of OSPFv3 sessions in down state.
          type: integer
          format: uint64
          x-field-uid: 3
        sessions_flap:
          description: |-
            The number of change of OSPFv3 sessions from up to down state.
          type: integer
          format: uint64
          x-field-uid: 4
        hellos_sent:
          description: |-
            The number of OSPFv3 Hello messages transmitted.
          type: integer
          format: uint64
          x-field-uid: 5
        hellos_received:
          description: |-
            The number of OSPFv3 Hello messages received.
          type: integer
          format: uint64
          x-field-uid: 6
        dbd_sent:
          description: |-
            The number of OSPFv3 Database Description (DBD) messages transmitted.
          type: integer
          format: uint64
          x-field-uid: 7
        dbd_received:
          description: |-
            The number of OSPFv3 Database Description (DBD) messages received.
          type: integer
          format: uint64
          x-field-uid: 8
        ls_request_sent:
          description: |-
            The number of OSPFv3 LinkState (LS) Request messages transmitted.
          type: integer
          format: uint64
          x-field-uid: 9
        ls_request_received:
          description: |-
            The number of OSPFv3 LinkState (LS) Request messages received.
          type: integer
          format: uint64
          x-field-uid: 10
        ls_update_sent:
          description: |-
            The number of OSPFv3 LinkState (LS) Update messages transmitted.
          type: integer
          format: uint64
          x-field-uid: 11
        ls_update_received:
          description: |-
            The number of OSPFv3 LinkState (LS) Update messages received.
          type: integer
          format: uint64
          x-field-uid: 12
        ls_ack_sent:
          description: |-
            The number of OSPFv3 LinkState (LS) Acknowledgement messages transmitted.
          type: integer
          format: uint64
          x-field-uid: 13
        ls_ack_received:
          description: |-
            The number of OSPFv3 LinkState (LS) Acknowledgement messages received.
          type: integer
          format: uint64
          x-field-uid: 14
        lsa_sent:
          description: |-
            The total number of OSPFv3 LinkState Advertisement (LSA) messages transmitted.
          type: integer
          format: uint64
          x-field-uid: 15
        lsa_received:
          description: |-
            The total number of OSPFv3 LinkState Advertisement (LSA) messages received.
          type: integer
          format: uint64
          x-field-uid: 16
        router_lsa_sent:
          description: |-
            The number of OSPFv3 Router (Type 1) LSAs transmitted.
          type: integer
          format: uint64
          x-field-uid: 17
        router_lsa_received:
          description: |-
            The number of OSPFv3 Router (Type 1) LSAs received.
          type: integer
          format: uint64
          x-field-uid: 18
        network_lsa_sent:
          description: |-
            The number of OSPFv3 Network (Type 2) LSAs transmitted.
          type: integer
          format: uint64
          x-field-uid: 19
        network_lsa_received:
          description: |-
            The number of OSPFv3 Network (Type 2) LSAs received.
          type: integer
          format: uint64
          x-field-uid: 20
        inter_area_prefix_lsa_sent:
          description: "The number of OSPFv3 Inter-Area-Prefix (Type 3) LSAs transmitted.\
            \  "
          type: integer
          format: uint64
          x-field-uid: 21
        inter_area_prefix_lsa_received:
          description: |-
            The number of OSPFv3 Inter-Area-Prefix (Type 3) LSAs received.
          type: integer
          format: uint64
          x-field-uid: 22
        inter_area_router_lsa_sent:
          description: "The number of OSPFv3 Inter-Area-Router (Type 4) LSAs transmitted.\
            \  "
          type: integer
          format: uint64
          x-field-uid: 23
        inter_area_router_lsa_received:
          description: |-
            The number of OSPFv3 Inter-Area-Router (Type 4) LSAs received.
          type: integer
          format: uint64
          x-field-uid: 24
        external_lsa_sent:
          description: |-
            The number of OSPFv3 External (Type 5) LSAs transmitted.
          type: integer
          format: uint64
          x-field-uid: 25
        external_lsa_received:
          description: |-
            The number of OSPFv3 External (Type 5) LSAs received.
          type: integer
          format: uint64
          x-field-uid: 26
        nssa_lsa_sent:
          description: |-
            The number of OSPFv3 NSSA (Type 7) LSAs transmitted.
          type: integer
          format: uint64
          x-field-uid: 27
        nssa_lsa_received:
          description: |-
            The number of OSPFv3 NSSA (Type 7) LSAs received.
          type: integer
          format: uint64
          x-field-uid: 28
        link_lsa_sent:
          description: |-
            The number of OSPFv3 Link (Type 8) LSAs transmitted.
          type: integer
          format: uint64
          x-field-uid: 29
        link_lsa_received:
          description: |-
            The number of OSPFv3 Link (Type 8) LSAs received.
          type: integer
          format: uint64
          x-field-uid: 30
        intra_area_prefix_lsa_sent:
          description: |-
            The number of OSPFv3 Intra-Area-Prefix (Type 9) LSAs transmitted.
          type: integer
          format: uint64
          x-field-uid: 31
        intra_area_prefix_lsa_received:
          description: |-
            The number of OSPFv3 Intra-Area-Prefix (Type 9) LSAs received.
          type: integer
          format: uint64
          x-field-uid: 32
    Rocev2IPv4.Metrics.Request:
      description: |-
        Request to retrieve RoCEv2 over IPv4 per peer metrics/statistics.
      type: object
      properties:
        choice:
          type: string
          description: |-
            Fetch stats per_peer
          default: per_peer
          x-enum:
            per_peer:
              x-field-uid: 1
          x-field-uid: 1
          enum:
          - per_peer
        per_peer:
          $ref: '#/components/schemas/Rocev2IPv4.ColumnNames'
          x-field-uid: 2
    Rocev2IPv4.ColumnNames:
      description: |-
        The names of RoCEv2 over IPv4 peers to return results for. An empty list will return results for all RoCEv2 peers.
      type: object
      properties:
        peer_names:
          type: array
          description: |
            The names of RoCEv2 over IPv4 peers to return results for. An empty list will return results for all RoCEv2 peers.

            x-constraint:
            - /components/schemas/Rocev2.V4peer/properties/name
          items:
            type: string
          x-constraint:
          - /components/schemas/Rocev2.V4peer/properties/name
          x-field-uid: 1
        column_names:
          description: |-
            The list of column names that the returned result set will contain. If the list is empty then all columns will be returned except for any result_groups. The name of the RoCEv2 peer cannot be excluded.
          type: array
          items:
            type: string
            x-enum:
              qp_configured:
                x-field-uid: 1
              qp_up:
                x-field-uid: 2
              qp_down:
                x-field-uid: 3
              connect_request_tx:
                x-field-uid: 4
              connect_request_rx:
                x-field-uid: 5
              connect_reply_tx:
                x-field-uid: 6
              connect_reply_rx:
                x-field-uid: 7
              ready_tx:
                x-field-uid: 8
              ready_rx:
                x-field-uid: 9
              disconnect_request_tx:
                x-field-uid: 10
              disconnect_request_rx:
                x-field-uid: 11
              disconnect_reply_tx:
                x-field-uid: 12
              disconnect_reply_rx:
                x-field-uid: 13
              reject_tx:
                x-field-uid: 14
              reject_rx:
                x-field-uid: 15
              unknown_msg_rx:
                x-field-uid: 16
            enum:
            - qp_configured
            - qp_up
            - qp_down
            - connect_request_tx
            - connect_request_rx
            - connect_reply_tx
            - connect_reply_rx
            - ready_tx
            - ready_rx
            - disconnect_request_tx
            - disconnect_request_rx
            - disconnect_reply_tx
            - disconnect_reply_rx
            - reject_tx
            - reject_rx
            - unknown_msg_rx
          x-field-uid: 2
    Rocev2IPv4.Metric.PerPeer:
      description: |-
        RoCEv2 per peer statistics information.
      type: object
      properties:
        name:
          description: |-
            The name of a configured RoCEv2 peer.
          type: string
          x-field-uid: 1
        qp_configured:
          description: |-
            Number of QPs configured on this port.
          type: integer
          format: uint64
          x-field-uid: 2
        qp_up:
          description: |-
            Number of QPs that are in UP state.
          type: integer
          format: uint64
          x-field-uid: 3
        qp_down:
          description: |-
            Number of QPs that have not come UP.
          type: integer
          format: uint64
          x-field-uid: 4
        connect_request_tx:
          description: |-
            Number of REQ Message Transmitted.
          type: integer
          format: uint64
          x-field-uid: 5
        connect_request_rx:
          description: |-
            Number of REQ Message Received.
          type: integer
          format: uint64
          x-field-uid: 6
        connect_reply_tx:
          description: |-
            Number of REP Message Transmitted.
          type: integer
          format: uint64
          x-field-uid: 8
        connect_reply_rx:
          description: |-
            Number of REP Message Received.
          type: integer
          format: uint64
          x-field-uid: 9
        ready_tx:
          description: |-
            Number of RTU Message Transmitted.
          type: integer
          format: uint64
          x-field-uid: 10
        ready_rx:
          description: |-
            Number of RTU Message Received.
          type: integer
          format: uint64
          x-field-uid: 11
        disconnect_request_tx:
          description: |-
            Number of DREQ Message Transmitted.
          type: integer
          format: uint64
          x-field-uid: 12
        disconnect_request_rx:
          description: |-
            Number of DREQ Message Received.
          type: integer
          format: uint64
          x-field-uid: 13
        disconnect_reply_tx:
          description: |-
            Number of DREP Message Transmitted.
          type: integer
          format: uint64
          x-field-uid: 14
        disconnect_reply_rx:
          description: |-
            Number of DREP Message Received.
          type: integer
          format: uint64
          x-field-uid: 15
        reject_tx:
          description: |-
            Number of REJ Message Transmitted.
          type: integer
          format: uint64
          x-field-uid: 16
        unknown_msg_rx:
          description: |-
            Number of Unknown Message Received.
          type: integer
          format: uint64
          x-field-uid: 17
    Rocev2IPv6.Metrics.Request:
      description: |-
        Request to retrieve RoCEv2 over IPv6 per peer metrics/statistics.
      type: object
      properties:
        choice:
          type: string
          description: |-
            Fetch stats per_peer
          default: per_peer
          x-enum:
            per_peer:
              x-field-uid: 1
          x-field-uid: 1
          enum:
          - per_peer
        per_peer:
          $ref: '#/components/schemas/Rocev2IPv6.ColumnNames'
          x-field-uid: 2
    Rocev2IPv6.ColumnNames:
      description: |-
        The names of RoCEv2 over IPv6 peers to return results for. An empty list will return results for all RoCEv2 peers.
      type: object
      properties:
        peer_names:
          description: |
            The names of RoCEv2 over IPv6 peers to return results for. An empty list will return results for all RoCEv2 peers.

            x-constraint:
            - /components/schemas/Rocev2.V6peer/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Rocev2.V6peer/properties/name
          x-field-uid: 1
        column_names:
          description: |-
            The list of column names that the returned result set will contain. If the list is empty then all columns will be returned except for any result_groups. The name of the RoCEv2 peer cannot be excluded.
          type: array
          items:
            type: string
            x-enum:
              qp_configured:
                x-field-uid: 1
              qp_up:
                x-field-uid: 2
              qp_down:
                x-field-uid: 3
              connect_request_tx:
                x-field-uid: 4
              connect_request_rx:
                x-field-uid: 5
              connect_reply_tx:
                x-field-uid: 6
              connect_reply_rx:
                x-field-uid: 7
              ready_tx:
                x-field-uid: 8
              ready_rx:
                x-field-uid: 9
              disconnect_request_tx:
                x-field-uid: 10
              disconnect_request_rx:
                x-field-uid: 11
              disconnect_reply_tx:
                x-field-uid: 12
              disconnect_reply_rx:
                x-field-uid: 13
              reject_tx:
                x-field-uid: 14
              reject_rx:
                x-field-uid: 15
              unknown_msg_rx:
                x-field-uid: 16
            enum:
            - qp_configured
            - qp_up
            - qp_down
            - connect_request_tx
            - connect_request_rx
            - connect_reply_tx
            - connect_reply_rx
            - ready_tx
            - ready_rx
            - disconnect_request_tx
            - disconnect_request_rx
            - disconnect_reply_tx
            - disconnect_reply_rx
            - reject_tx
            - reject_rx
            - unknown_msg_rx
          x-field-uid: 2
    Rocev2IPv6.Metric.PerPeer:
      description: |-
        RoCEv2 per peer statistics information.
      type: object
      properties:
        name:
          description: |-
            The name of a configured RoCEv2 peer.
          type: string
          x-field-uid: 1
        qp_configured:
          description: |-
            Number of QPs configured on this port.
          type: integer
          format: uint64
          x-field-uid: 2
        qp_up:
          description: |-
            Number of QPs that are in UP state.
          type: integer
          format: uint64
          x-field-uid: 3
        qp_down:
          description: |-
            Number of QPs that have not come UP.
          type: integer
          format: uint64
          x-field-uid: 4
        connect_request_tx:
          description: |-
            Number of REQ Message Transmitted.
          type: integer
          format: uint64
          x-field-uid: 5
        connect_request_rx:
          description: |-
            Number of REQ Message Received.
          type: integer
          format: uint64
          x-field-uid: 6
        connect_reply_tx:
          description: |-
            Number of REP Message Transmitted.
          type: integer
          format: uint64
          x-field-uid: 8
        connect_reply_rx:
          description: |-
            Number of REP Message Received.
          type: integer
          format: uint64
          x-field-uid: 9
        ready_tx:
          description: |-
            Number of RTU Message Transmitted.
          type: integer
          format: uint64
          x-field-uid: 10
        ready_rx:
          description: |-
            Number of RTU Message Received.
          type: integer
          format: uint64
          x-field-uid: 11
        disconnect_request_tx:
          description: |-
            Number of DREQ Message Transmitted.
          type: integer
          format: uint64
          x-field-uid: 12
        disconnect_request_rx:
          description: |-
            Number of DREQ Message Received.
          type: integer
          format: uint64
          x-field-uid: 13
        disconnect_reply_tx:
          description: |-
            Number of DREP Message Transmitted.
          type: integer
          format: uint64
          x-field-uid: 14
        disconnect_reply_rx:
          description: |-
            Number of DREP Message Received.
          type: integer
          format: uint64
          x-field-uid: 15
        reject_tx:
          description: |-
            Number of REJ Message Transmitted.
          type: integer
          format: uint64
          x-field-uid: 16
        unknown_msg_rx:
          description: |-
            Number of Unknown Message Received.
          type: integer
          format: uint64
          x-field-uid: 17
    Rocev2Flow.Metrics.Request:
      description: |-
        Request to retrieve RoCEv2 FLow statistics.
      type: object
      properties:
        choice:
          type: string
          description: |-
            Fetch stats per QP
          default: per_qp
          x-enum:
            per_qp:
              x-field-uid: 1
          x-field-uid: 1
          enum:
          - per_qp
        per_qp:
          $ref: '#/components/schemas/Rocev2Flow.ColumnNames'
          x-field-uid: 2
    Rocev2Flow.ColumnNames:
      description: |-
        The names of RoCEv2 flows. An empty list will return results for all RoCEv2 flows.
      type: object
      properties:
        column_names:
          description: |-
            The list of column names that the returned result set will contain. If the list is empty then all columns will be returned except for any result_groups. The name of the Flow cannot be excluded.
          type: array
          items:
            type: string
            x-enum:
              flow_name:
                x-field-uid: 1
              port_tx:
                x-field-uid: 2
              port_rx:
                x-field-uid: 3
              src_qp:
                x-field-uid: 4
              dest_qp:
                x-field-uid: 5
              src_ipv4:
                x-field-uid: 6
              dest_ipv4:
                x-field-uid: 7
              data_frames_tx:
                x-field-uid: 8
              data_frames_rx:
                x-field-uid: 9
              frame_delta:
                x-field-uid: 10
              data_frames_retransmitted:
                x-field-uid: 11
              frame_sequence_error:
                x-field-uid: 12
              tx_bytes:
                x-field-uid: 13
              rx_bytes:
                x-field-uid: 14
              data_tx_rate:
                x-field-uid: 15
              data_rx_rate:
                x-field-uid: 16
              message_tx:
                x-field-uid: 17
              message_complete_rx:
                x-field-uid: 18
              message_fail:
                x-field-uid: 19
              flow_completion_time:
                x-field-uid: 20
              avg_latency:
                x-field-uid: 21
              min_latency:
                x-field-uid: 22
              max_latency:
                x-field-uid: 23
              ecn_ce_rx:
                x-field-uid: 24
              cnp_tx:
                x-field-uid: 25
              cnp_rx:
                x-field-uid: 26
              ack_tx:
                x-field-uid: 27
              ack_rx:
                x-field-uid: 28
              nak_tx:
                x-field-uid: 29
              nak_rx:
                x-field-uid: 30
              first_timestamp:
                x-field-uid: 31
              last_timestamp:
                x-field-uid: 32
            enum:
            - flow_name
            - port_tx
            - port_rx
            - src_qp
            - dest_qp
            - src_ipv4
            - dest_ipv4
            - data_frames_tx
            - data_frames_rx
            - frame_delta
            - data_frames_retransmitted
            - frame_sequence_error
            - tx_bytes
            - rx_bytes
            - data_tx_rate
            - data_rx_rate
            - message_tx
            - message_complete_rx
            - message_fail
            - flow_completion_time
            - avg_latency
            - min_latency
            - max_latency
            - ecn_ce_rx
            - cnp_tx
            - cnp_rx
            - ack_tx
            - ack_rx
            - nak_tx
            - nak_rx
            - first_timestamp
            - last_timestamp
          x-field-uid: 1
    Rocev2Flow.Metric.PerQP:
      description: |-
        RoCEv2 Flow statistics information.
      type: object
      properties:
        flow_name:
          description: |-
            Flow Name.
          type: string
          x-field-uid: 1
        port_tx:
          description: |-
            The name of the transmit port
          type: string
          x-field-uid: 2
        port_rx:
          description: |-
            The name of the receive port
          type: string
          x-field-uid: 3
        src_qp:
          description: |-
            Current source QP number.
          type: integer
          format: uint64
          x-field-uid: 4
        dest_qp:
          description: |-
            Current destination QP number.
          type: integer
          format: uint64
          x-field-uid: 5
        src_ipv4:
          description: |-
            Current source address.
          type: string
          format: ipv4
          x-field-uid: 6
        dest_ipv4:
          description: |-
            Current destination address.
          type: string
          format: ipv4
          x-field-uid: 7
        data_frames_tx:
          description: |-
            Current number of data frames transmitted.
          type: integer
          format: uint64
          x-field-uid: 8
        data_frames_rx:
          description: |-
            Current number of data frames received.
          type: integer
          format: uint64
          x-field-uid: 9
        frame_delta:
          description: |-
            Current differnece between tx and rx data frames
          type: integer
          format: uint64
          x-field-uid: 10
        data_frames_retransmitted:
          description: |-
            Current number of data frames re-transmitted.
          type: integer
          format: uint64
          x-field-uid: 11
        frame_sequence_error:
          description: |-
            Current number of frame sequence errors.
          type: integer
          format: uint64
          x-field-uid: 12
        tx_bytes:
          description: |-
            Current number of bytes transmitted.
          type: integer
          format: uint64
          x-field-uid: 13
        rx_bytes:
          description: |-
            Current number of bytes received.
          type: integer
          format: uint64
          x-field-uid: 14
        data_tx_rate:
          description: |-
            Current rate at which data is transmitted in Gbps.
          type: integer
          format: uint64
          x-field-uid: 15
        data_rx_rate:
          description: |-
            Current rate at which data is received in Gbps.
          type: integer
          format: uint64
          x-field-uid: 16
        message_tx:
          description: |-
            Current number of Message transmitted.
          type: integer
          format: uint64
          x-field-uid: 17
        message_complete_rx:
          description: |-
            Current number of Message Complete received.
          type: integer
          format: uint64
          x-field-uid: 18
        message_fail:
          description: |-
            Current number of Message Fail count.
          type: integer
          format: uint64
          x-field-uid: 19
        flow_completion_time:
          description: |-
            Current flow comletion time in ms.
          type: integer
          format: uint64
          x-field-uid: 20
        avg_latency:
          description: |-
            Current average latency measured in ns.
          type: integer
          format: uint64
          x-field-uid: 21
        min_latency:
          description: |-
            Current minimum latency measured in ns.
          type: integer
          format: uint64
          x-field-uid: 22
        max_latency:
          description: |-
            Current maximum latency measured in ns.
          type: integer
          format: uint64
          x-field-uid: 23
        ecn_ce_rx:
          description: |-
            Current number of ECN-CE Recevied.
          type: integer
          format: uint64
          x-field-uid: 24
        cnp_tx:
          description: |-
            Current number of CNP transmitted.
          type: integer
          format: uint64
          x-field-uid: 25
        cnp_rx:
          description: |-
            Current number of CNP received.
          type: integer
          format: uint64
          x-field-uid: 26
        ack_tx:
          description: |-
            Current number of ACK transmitted.
          type: integer
          format: uint64
          x-field-uid: 27
        ack_rx:
          description: |-
            Current number of ACK received.
          type: integer
          format: uint64
          x-field-uid: 28
        nak_tx:
          description: |-
            Current number of NAK transmitted.
          type: integer
          format: uint64
          x-field-uid: 29
        nak_rx:
          description: |-
            Current number of NAK received.
          type: integer
          format: uint64
          x-field-uid: 30
        first_timestamp:
          description: |-
            First Timestamp.
          type: string
          x-field-uid: 31
        last_timestamp:
          description: |-
            Last Timestamp.
          type: string
          x-field-uid: 32
    States.Request:
      description: |-
        Request to traffic generator for states of choice
      type: object
      properties:
        choice:
          type: string
          default: ipv4_neighbors
          x-field-uid: 1
          x-enum:
            ipv4_neighbors:
              x-field-uid: 1
            ipv6_neighbors:
              x-field-uid: 2
            bgp_prefixes:
              x-field-uid: 3
            isis_lsps:
              x-field-uid: 4
            lldp_neighbors:
              x-field-uid: 5
            rsvp_lsps:
              x-field-uid: 6
            dhcpv4_interfaces:
              x-field-uid: 7
            dhcpv4_leases:
              x-field-uid: 8
            dhcpv6_interfaces:
              x-field-uid: 9
            dhcpv6_leases:
              x-field-uid: 10
            ospfv2_lsas:
              x-field-uid: 11
            ospfv3_lsas:
              x-field-uid: 12
          enum:
          - ipv4_neighbors
          - ipv6_neighbors
          - bgp_prefixes
          - isis_lsps
          - lldp_neighbors
          - rsvp_lsps
          - dhcpv4_interfaces
          - dhcpv4_leases
          - dhcpv6_interfaces
          - dhcpv6_leases
          - ospfv2_lsas
          - ospfv3_lsas
        ipv4_neighbors:
          $ref: '#/components/schemas/Neighborsv4.States.Request'
          x-field-uid: 2
        ipv6_neighbors:
          $ref: '#/components/schemas/Neighborsv6.States.Request'
          x-field-uid: 3
        bgp_prefixes:
          $ref: '#/components/schemas/BgpPrefix.State.Request'
          x-field-uid: 4
        isis_lsps:
          $ref: '#/components/schemas/IsisLsps.State.Request'
          x-field-uid: 5
        lldp_neighbors:
          $ref: '#/components/schemas/LldpNeighbors.State.Request'
          x-field-uid: 6
        rsvp_lsps:
          $ref: '#/components/schemas/RsvpLsps.State.Request'
          x-field-uid: 7
        dhcpv4_interfaces:
          $ref: '#/components/schemas/Dhcpv4Interface.State.Request'
          x-field-uid: 8
        dhcpv4_leases:
          $ref: '#/components/schemas/Dhcpv4Lease.State.Request'
          x-field-uid: 9
        dhcpv6_interfaces:
          $ref: '#/components/schemas/Dhcpv6Interface.State.Request'
          x-field-uid: 10
        dhcpv6_leases:
          $ref: '#/components/schemas/Dhcpv6Lease.State.Request'
          x-field-uid: 11
        ospfv2_lsas:
          $ref: '#/components/schemas/Ospfv2Lsas.State.Request'
          x-field-uid: 12
        ospfv3_lsas:
          $ref: '#/components/schemas/Ospfv3Lsas.State.Request'
          x-field-uid: 13
    States.Response:
      description: |-
        Response containing chosen traffic generator states
      type: object
      properties:
        choice:
          type: string
          default: ipv4_neighbors
          x-field-uid: 1
          x-enum:
            ipv4_neighbors:
              x-field-uid: 1
            ipv6_neighbors:
              x-field-uid: 2
            bgp_prefixes:
              x-field-uid: 3
            isis_lsps:
              x-field-uid: 4
            lldp_neighbors:
              x-field-uid: 5
            rsvp_lsps:
              x-field-uid: 6
            dhcpv4_interfaces:
              x-field-uid: 7
            dhcpv4_leases:
              x-field-uid: 8
            dhcpv6_interfaces:
              x-field-uid: 9
            dhcpv6_leases:
              x-field-uid: 10
            ospfv2_lsas:
              x-field-uid: 11
            ospfv3_lsas:
              x-field-uid: 12
          enum:
          - ipv4_neighbors
          - ipv6_neighbors
          - bgp_prefixes
          - isis_lsps
          - lldp_neighbors
          - rsvp_lsps
          - dhcpv4_interfaces
          - dhcpv4_leases
          - dhcpv6_interfaces
          - dhcpv6_leases
          - ospfv2_lsas
          - ospfv3_lsas
        ipv4_neighbors:
          type: array
          items:
            $ref: '#/components/schemas/Neighborsv4.State'
          x-field-uid: 2
        ipv6_neighbors:
          type: array
          items:
            $ref: '#/components/schemas/Neighborsv6.State'
          x-field-uid: 3
        bgp_prefixes:
          type: array
          items:
            $ref: '#/components/schemas/BgpPrefixes.State'
          x-field-uid: 4
        isis_lsps:
          type: array
          items:
            $ref: '#/components/schemas/IsisLsps.State'
          x-field-uid: 5
        lldp_neighbors:
          type: array
          items:
            $ref: '#/components/schemas/LldpNeighbors.State'
          x-field-uid: 6
        rsvp_lsps:
          type: array
          items:
            $ref: '#/components/schemas/RsvpLsps.State'
          x-field-uid: 7
        dhcpv4_interfaces:
          type: array
          items:
            $ref: '#/components/schemas/Dhcpv4Interface.State'
          x-field-uid: 8
        dhcpv4_leases:
          type: array
          items:
            $ref: '#/components/schemas/Dhcpv4Leases.State'
          x-field-uid: 9
        dhcpv6_interfaces:
          type: array
          items:
            $ref: '#/components/schemas/Dhcpv6Interface.State'
          x-field-uid: 10
        dhcpv6_leases:
          type: array
          items:
            $ref: '#/components/schemas/Dhcpv6Leases.State'
          x-field-uid: 11
        ospfv2_lsas:
          type: array
          items:
            $ref: '#/components/schemas/Ospfv2Lsa.State'
          x-field-uid: 12
        ospfv3_lsas:
          type: array
          items:
            $ref: '#/components/schemas/Ospfv3Lsa.State'
          x-field-uid: 13
    Neighborsv4.States.Request:
      description: |-
        The request to retrieve IPv4 Neighbor state (ARP cache entries) of a network interface(s).
      type: object
      properties:
        ethernet_names:
          description: |
            The names of Ethernet interfaces for which Neighbor state (ARP cache entries) will be retrieved. If no names are specified then the results will contain Neighbor state (ARP cache entries) for all available Ethernet interfaces.

            x-constraint:
            - /components/schemas/Device.Ethernet/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Device.Ethernet/properties/name
          x-field-uid: 1
    Neighborsv4.State:
      description: |-
        IPv4 Neighbor state (ARP cache entry).
      type: object
      required:
      - ethernet_name
      - ipv4_address
      properties:
        ethernet_name:
          description: |-
            The name of the Ethernet interface associated with the Neighbor state (ARP cache entry).
          type: string
          x-field-uid: 1
        ipv4_address:
          description: |-
            The IPv4 address of the neighbor.
          type: string
          format: ipv4
          x-field-uid: 2
        link_layer_address:
          description: |-
            The link-layer address (MAC) of the neighbor.
          type: string
          format: mac
          x-field-uid: 3
    Neighborsv6.States.Request:
      description: |-
        The request to retrieve IPv6 Neighbor state (NDISC cache entries) of a network interface(s).
      type: object
      properties:
        ethernet_names:
          description: |
            The names of Ethernet interfaces for which Neighbor state (NDISC cache entries) will be retrieved. If no names are specified then the results will contain Neighbor state (NDISC cache entries) for all available Ethernet interfaces.

            x-constraint:
            - /components/schemas/Device.Ethernet/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Device.Ethernet/properties/name
          x-field-uid: 1
    Neighborsv6.State:
      description: |-
        IPv6 Neighbor state (NDISC cache entry).
      type: object
      required:
      - ethernet_name
      - ipv6_address
      properties:
        ethernet_name:
          description: |-
            The name of the Ethernet interface associated with the Neighbor state (NDISC cache entry).
          type: string
          x-field-uid: 1
        ipv6_address:
          description: |-
            The IPv6 address of the neighbor.
          type: string
          format: ipv6
          x-field-uid: 2
        link_layer_address:
          description: |-
            The link-layer address (MAC) of the neighbor.
          type: string
          format: mac
          x-field-uid: 3
    BgpPrefix.State.Request:
      description: |-
        The request to retrieve BGP peer prefix information.
      type: object
      properties:
        bgp_peer_names:
          description: |
            The names of BGP peers for which prefix information will be retrieved. If no names are specified then the results will contain prefix information for all configured BGP peers.

            x-constraint:
            - /components/schemas/Bgp.V4Peer/properties/name
            - /components/schemas/Bgp.V6Peer/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Bgp.V4Peer/properties/name
          - /components/schemas/Bgp.V6Peer/properties/name
          x-field-uid: 1
        prefix_filters:
          description: |-
            Specify which prefixes to return. If the list is empty or missing then all prefixes will be returned.
          type: array
          items:
            type: string
            x-enum:
              ipv4_unicast:
                x-field-uid: 1
              ipv6_unicast:
                x-field-uid: 2
            enum:
            - ipv4_unicast
            - ipv6_unicast
          x-field-uid: 2
        ipv4_unicast_filters:
          description: |-
            The IPv4 unicast results can be filtered by specifying additional prefix search criteria. If the ipv4_unicast_filters property is missing or empty then all IPv4 prefixes will be returned.
          type: array
          items:
            $ref: '#/components/schemas/BgpPrefix.Ipv4Unicast.Filter'
          x-field-uid: 3
        ipv6_unicast_filters:
          description: |-
            The IPv6 unicast results can be filtered by specifying additional prefix search criteria. If the ipv6_unicast_filters property is missing or empty then all IPv6 prefixes will be returned.
          type: array
          items:
            $ref: '#/components/schemas/BgpPrefix.Ipv6Unicast.Filter'
          x-field-uid: 4
    BgpPrefix.Ipv4Unicast.Filter:
      type: object
      properties:
        addresses:
          description: |-
            The addresses to match. If the addresses property is missing or empty then all addresses will match.
          type: array
          items:
            type: string
            format: ipv4
          x-field-uid: 1
        prefix_length:
          x-field-uid: 2
          description: |-
            The prefix length to match. If the prefix length is missing then all prefix lengths will match.
          type: integer
          format: uint32
          maximum: 128
        origin:
          x-field-uid: 3
          description: |-
            The origin to match. If the origin is missing then all origins will match.
          type: string
          x-enum:
            igp:
              x-field-uid: 1
            egp:
              x-field-uid: 2
            incomplete:
              x-field-uid: 3
          enum:
          - igp
          - egp
          - incomplete
        path_id:
          x-field-uid: 4
          description: |-
            The path id to match. If the path id is missing then all path ids will match.
          type: integer
          format: uint32
    BgpPrefix.Ipv6Unicast.Filter:
      type: object
      properties:
        addresses:
          description: |-
            The addresses to match. If the addresses property is missing or empty then all addresses will match.
          type: array
          items:
            type: string
            format: ipv6
          x-field-uid: 1
        prefix_length:
          x-field-uid: 2
          description: |-
            The prefix length to match. If the prefix length is missing then all prefix lengths will match.
          type: integer
          format: uint32
          maximum: 128
        origin:
          x-field-uid: 3
          description: |-
            The origin to match. If the origin is missing then all origins will match.
          type: string
          x-enum:
            igp:
              x-field-uid: 1
            egp:
              x-field-uid: 2
            incomplete:
              x-field-uid: 3
          enum:
          - igp
          - egp
          - incomplete
        path_id:
          x-field-uid: 4
          description: |-
            The path id to match. If the path id is missing then all path ids will match.
          type: integer
          format: uint32
    BgpPrefixes.State:
      description: |-
        BGP peer prefixes.
      type: object
      properties:
        bgp_peer_name:
          description: |-
            The name of a BGP peer.
          type: string
          x-field-uid: 1
        ipv4_unicast_prefixes:
          type: array
          items:
            $ref: '#/components/schemas/BgpPrefixIpv4Unicast.State'
          x-field-uid: 2
        ipv6_unicast_prefixes:
          type: array
          items:
            $ref: '#/components/schemas/BgpPrefixIpv6Unicast.State'
          x-field-uid: 3
    BgpPrefixIpv4Unicast.State:
      description: |-
        IPv4 unicast prefix.
      type: object
      properties:
        ipv4_address:
          description: |-
            An IPv4 unicast address
          type: string
          x-field-uid: 1
        prefix_length:
          x-field-uid: 2
          description: |-
            The length of the prefix.
          type: integer
          format: uint32
          maximum: 128
        origin:
          x-field-uid: 3
          description: |-
            The origin of the prefix.
          type: string
          x-enum:
            igp:
              x-field-uid: 1
            egp:
              x-field-uid: 2
            incomplete:
              x-field-uid: 3
          enum:
          - igp
          - egp
          - incomplete
        path_id:
          x-field-uid: 4
          description: |-
            The path id.
          type: integer
          format: uint32
        ipv4_next_hop:
          x-field-uid: 5
          description: |-
            The IPv4 address of the egress interface.
          type: string
          format: ipv4
        ipv6_next_hop:
          x-field-uid: 6
          description: |-
            The IPv6 address of the egress interface.
          type: string
          format: ipv6
        communities:
          x-field-uid: 7
          description: |-
            Optional community attributes.
          type: array
          items:
            $ref: '#/components/schemas/Result.BgpCommunity'
        extended_communities:
          description: |-
            Optional received Extended Community attributes. Each received Extended Community attribute is available for retrieval in two forms. Support of the 'raw' format in which all 8 bytes (16 hex characters) is always present and available for use. In addition, if supported by the implementation, the Extended Community attribute may also be retrieved in the  'structured' format which is an optional field.
          type: array
          items:
            $ref: '#/components/schemas/Result.ExtendedCommunity'
          x-field-uid: 11
        as_path:
          x-field-uid: 8
          $ref: '#/components/schemas/Result.BgpAsPath'
        local_preference:
          x-field-uid: 9
          description: |-
            The local preference is a well-known attribute and the value is used for route selection. The route with the highest local preference value is preferred.
          type: integer
          format: uint32
        multi_exit_discriminator:
          x-field-uid: 10
          description: |-
            The multi exit discriminator (MED) is an optional non-transitive attribute and the value is used for route selection. The route with the lowest MED value is preferred.
          type: integer
          format: uint32
    BgpPrefixIpv6Unicast.State:
      description: |-
        IPv6 unicast prefix.
      type: object
      properties:
        ipv6_address:
          description: |-
            An IPv6 unicast address
          type: string
          x-field-uid: 1
        prefix_length:
          x-field-uid: 2
          description: |-
            The length of the prefix.
          type: integer
          format: uint32
          maximum: 128
        origin:
          x-field-uid: 3
          description: |-
            The origin of the prefix.
          type: string
          x-enum:
            igp:
              x-field-uid: 1
            egp:
              x-field-uid: 2
            incomplete:
              x-field-uid: 3
          enum:
          - igp
          - egp
          - incomplete
        path_id:
          x-field-uid: 4
          description: |-
            The path id.
          type: integer
          format: uint32
        ipv4_next_hop:
          x-field-uid: 5
          description: |-
            The IPv4 address of the egress interface.
          type: string
          format: ipv4
        ipv6_next_hop:
          x-field-uid: 6
          description: |-
            The IPv6 address of the egress interface.
          type: string
          format: ipv6
        communities:
          x-field-uid: 7
          description: |-
            Optional community attributes.
          type: array
          items:
            $ref: '#/components/schemas/Result.BgpCommunity'
        extended_communities:
          description: |-
            Optional received Extended Community attributes. Each received Extended Community attribute is available for retrieval in two forms. Support of the 'raw' format in which all 8 bytes (16 hex characters) is always present and available for use. In addition, if supported by the implementation, the Extended Community attribute may also be retrieved in the  'structured' format which is an optional field.
          type: array
          items:
            $ref: '#/components/schemas/Result.ExtendedCommunity'
          x-field-uid: 11
        as_path:
          x-field-uid: 8
          $ref: '#/components/schemas/Result.BgpAsPath'
        local_preference:
          x-field-uid: 9
          description: |-
            The local preference is a well-known attribute and the value is used for route selection. The route with the highest local preference value is preferred.
          type: integer
          format: uint32
        multi_exit_discriminator:
          x-field-uid: 10
          description: |-
            The multi exit discriminator (MED) is an optional non-transitive attribute and the value is used for route selection. The route with the lowest MED value is preferred.
          type: integer
          format: uint32
    Result.ExtendedCommunity:
      description: |-
        Each received Extended Community attribute is available for retrieval in two forms. Support of the 'raw' format in which all 8 bytes (16 hex characters) is always present and available for use. In addition, if supported by the implementation, the Extended Community attribute may also be retrieved in the 'structured' format which is an optional field.
      type: object
      properties:
        raw:
          description: "The raw byte contents of the 8 bytes received in the Extended\
            \ Community as 16 hex characters.              "
          type: string
          format: hex
          maxLength: 16
          x-field-uid: 1
        structured:
          x-field-uid: 2
          $ref: '#/components/schemas/Result.ExtendedCommunityStructured'
    Result.ExtendedCommunityStructured:
      description: "The Extended Communities Attribute is a optional BGP attribute,defined\
        \ in RFC4360 with the Type Code 16. \nCommunity and Extended Communities \
        \ attributes are utilized to trigger routing decisions, such as acceptance,\
        \ rejection,  preference, or redistribution. \nAn extended community is an\
        \ 8-bytes value. It is divided into two main parts. The first 2 bytes of the\
        \ community  encode a type and optonal sub-type field.\nThe last 6 bytes (or\
        \ 7 bytes for types without a sub-type) carry a unique set of data in a format\
        \ defined by the type and optional sub-type field. \nExtended communities\
        \ provide a larger  range for grouping or categorizing communities."
      type: object
      properties:
        choice:
          type: string
          x-enum:
            transitive_2octet_as_type:
              x-field-uid: 1
            transitive_ipv4_address_type:
              x-field-uid: 2
            transitive_4octet_as_type:
              x-field-uid: 3
            transitive_opaque_type:
              x-field-uid: 4
            non_transitive_2octet_as_type:
              x-field-uid: 5
          x-field-uid: 1
          enum:
          - transitive_2octet_as_type
          - transitive_ipv4_address_type
          - transitive_4octet_as_type
          - transitive_opaque_type
          - non_transitive_2octet_as_type
        transitive_2octet_as_type:
          x-field-uid: 2
          $ref: '#/components/schemas/Result.ExtendedCommunity.Transitive2OctetAsType'
        transitive_ipv4_address_type:
          x-field-uid: 3
          $ref: '#/components/schemas/Result.ExtendedCommunity.TransitiveIpv4AddressType'
        transitive_4octet_as_type:
          x-field-uid: 4
          $ref: '#/components/schemas/Result.ExtendedCommunity.Transitive4OctetAsType'
        transitive_opaque_type:
          x-field-uid: 5
          $ref: '#/components/schemas/Result.ExtendedCommunity.TransitiveOpaqueType'
        non_transitive_2octet_as_type:
          x-field-uid: 6
          $ref: '#/components/schemas/Result.ExtendedCommunity.NonTransitive2OctetAsType'
    Result.ExtendedCommunity.Transitive2OctetAsType.RouteTarget:
      description: "The Route Target Community identifies one or more routers that\
        \ may receive a set of routes (that carry this Community) carried by BGP Update\
        \ message.  It is sent with sub-type as 0x02.            "
      type: object
      properties:
        global_2byte_as:
          description: |-
            The two octet IANA assigned AS value assigned to the Autonomous System.
          type: integer
          format: uint32
          maximum: 65535
          x-field-uid: 1
        local_4byte_admin:
          type: integer
          format: uint32
          description: |-
            The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority.
          x-field-uid: 2
    Result.ExtendedCommunity.Transitive2OctetAsType.RouteOrigin:
      description: |-
        The Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP. It is sent with sub-type as 0x03 .
      type: object
      properties:
        global_2byte_as:
          description: |-
            The two octet IANA assigned AS value assigned to the Autonomous System.
          type: integer
          format: uint32
          maximum: 65535
          x-field-uid: 1
        local_4byte_admin:
          description: |-
            The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority.
          type: integer
          format: uint32
          x-field-uid: 2
    Result.ExtendedCommunity.Transitive2OctetAsType:
      description: "The Transitive Two-Octet AS-Specific Extended Community is sent\
        \ as type 0x00 .         "
      type: object
      properties:
        choice:
          type: string
          x-enum:
            route_target_subtype:
              x-field-uid: 1
            route_origin_subtype:
              x-field-uid: 2
          x-field-uid: 1
          enum:
          - route_target_subtype
          - route_origin_subtype
        route_target_subtype:
          x-field-uid: 2
          $ref: '#/components/schemas/Result.ExtendedCommunity.Transitive2OctetAsType.RouteTarget'
        route_origin_subtype:
          x-field-uid: 3
          $ref: '#/components/schemas/Result.ExtendedCommunity.Transitive2OctetAsType.RouteOrigin'
    Result.ExtendedCommunity.TransitiveIpv4AddressType.RouteOrigin:
      description: |-
        The Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP It is sent with sub-type as 0x03.
      type: object
      properties:
        global_ipv4_admin:
          description: "An IPv4 unicast address assigned by one of the Internet registries.\
            \            "
          type: string
          format: ipv4
          x-field-uid: 1
        local_2byte_admin:
          description: |-
            The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which  the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority.
          type: integer
          format: uint32
          maximum: 65535
          x-field-uid: 2
    Result.ExtendedCommunity.TransitiveIpv4AddressType.RouteTarget:
      description: "The Route Target Community identifies one or more routers that\
        \ may receive a set of routes (that carry this Community) carried by BGP.\
        \  It is sent with sub-type as 0x02.             "
      type: object
      properties:
        global_ipv4_admin:
          description: "An IPv4 unicast address assigned by one of the Internet registries. "
          type: string
          format: ipv4
          x-field-uid: 1
        local_2byte_admin:
          type: integer
          format: uint32
          maximum: 65535
          description: |-
            The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which  the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority.
          x-field-uid: 2
    Result.ExtendedCommunity.TransitiveIpv4AddressType:
      description: |-
        The Transitive IPv4 Address Specific Extended Community is sent as type 0x01.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            route_target_subtype:
              x-field-uid: 1
            route_origin_subtype:
              x-field-uid: 2
          x-field-uid: 1
          enum:
          - route_target_subtype
          - route_origin_subtype
        route_target_subtype:
          x-field-uid: 2
          $ref: '#/components/schemas/Result.ExtendedCommunity.TransitiveIpv4AddressType.RouteTarget'
        route_origin_subtype:
          x-field-uid: 3
          $ref: '#/components/schemas/Result.ExtendedCommunity.TransitiveIpv4AddressType.RouteOrigin'
    Result.ExtendedCommunity.Transitive4OctetAsType.RouteTarget:
      description: "The Route Target Community identifies one or more routers that\
        \ may receive a set of routes (that carry this Community) carried by BGP.\
        \  It is sent with sub-type as 0x02              "
      type: object
      properties:
        global_4byte_as:
          description: |-
            The four octet IANA assigned AS value assigned to the Autonomous System.
          type: integer
          format: uint32
          x-field-uid: 1
        local_2byte_admin:
          type: integer
          format: uint32
          maximum: 65535
          description: |-
            The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority.
          x-field-uid: 2
    Result.ExtendedCommunity.Transitive4OctetAsType.RouteOrigin:
      description: |-
        The Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP. It is sent with sub-type as 0x03.
      type: object
      properties:
        global_4byte_as:
          description: |-
            The four octet IANA assigned AS value assigned to the Autonomous System.
          type: integer
          format: uint32
          x-field-uid: 1
        local_2byte_admin:
          description: |-
            The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority.
          type: integer
          format: uint32
          maximum: 65535
          x-field-uid: 2
    Result.ExtendedCommunity.Transitive4OctetAsType:
      description: "The Transitive Four-Octet AS-Specific Extended Community is sent\
        \ as type 0x02. It is defined in RFC 5668.       "
      type: object
      properties:
        choice:
          type: string
          x-enum:
            route_target_subtype:
              x-field-uid: 1
            route_origin_subtype:
              x-field-uid: 2
          x-field-uid: 1
          enum:
          - route_target_subtype
          - route_origin_subtype
        route_target_subtype:
          x-field-uid: 2
          $ref: '#/components/schemas/Result.ExtendedCommunity.Transitive4OctetAsType.RouteTarget'
        route_origin_subtype:
          x-field-uid: 3
          $ref: '#/components/schemas/Result.ExtendedCommunity.Transitive4OctetAsType.RouteOrigin'
    Result.ExtendedCommunity.TransitiveOpaqueType.Color:
      description: "The Color Community contains locally administrator defined 'color'\
        \ value which is used in conjunction with Encapsulation  attribute to decide\
        \ whether a data packet can be transmitted on a certain tunnel or not. It\
        \ is defined in RFC9012 and sent with sub-type as 0x0b.             "
      type: object
      properties:
        flags:
          description: "Two octet flag values. "
          type: integer
          format: uint32
          maximum: 65535
          x-field-uid: 1
        color:
          type: integer
          format: uint32
          description: "The color value is user defined and configured locally and\
            \ used to determine whether a data packet can be transmitted on a certain\
            \ tunnel or not\nin conjunction with the Encapsulation attribute. It is\
            \ defined in RFC9012.           "
          x-field-uid: 2
    Result.ExtendedCommunity.TransitiveOpaqueType.Encapsulation:
      description: |-
        This identifies the type of tunneling technology being signalled. It is defined in RFC9012 and sent with sub-type as 0x0c.
      type: object
      properties:
        reserved:
          description: "Four bytes of reserved values. Normally set to 0 on transmit\
            \ and ignored on receive. "
          type: integer
          format: uint32
          x-field-uid: 1
        tunnel_type:
          description: "Identifies the type of tunneling technology being signalled.\
            \ Initially defined in RFC5512 and extended in RFC9012.\nSome of the important\
            \ tunnel types include \n- 1 L2TPv3 over IP\t[RFC9012],           \n-\
            \ 2\tGRE\t[RFC9012],          \n- 7\tIP in IP\t[RFC9012],\n- 8\tVXLAN\
            \ Encapsulation\t[RFC8365],\n- 9\tNVGRE Encapsulation\t[RFC8365],\n- 10\t\
            MPLS Encapsulation\t[RFC8365],\n- 15\tSR TE Policy Type\t[draft-ietf-idr-segment-routing-te-policy],\n\
            - 19\tGeneve Encapsulation\t[RFC8926]"
          type: integer
          format: uint32
          maximum: 65535
          x-field-uid: 2
    Result.ExtendedCommunity.TransitiveOpaqueType:
      description: |-
        The Transitive Opaque Extended Community is sent as type 0x03.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            color_subtype:
              x-field-uid: 1
            encapsulation_subtype:
              x-field-uid: 2
          x-field-uid: 1
          enum:
          - color_subtype
          - encapsulation_subtype
        color_subtype:
          x-field-uid: 2
          $ref: '#/components/schemas/Result.ExtendedCommunity.TransitiveOpaqueType.Color'
        encapsulation_subtype:
          x-field-uid: 3
          $ref: '#/components/schemas/Result.ExtendedCommunity.TransitiveOpaqueType.Encapsulation'
    Result.ExtendedCommunity.NonTransitive2OctetAsType.LinkBandwidth:
      description: |-
        The Link Bandwidth Extended Community attribute is defined in draft-ietf-idr-link-bandwidth. It is sent with sub-type as 0x04.
      type: object
      properties:
        global_2byte_as:
          description: |-
            The value of the Global Administrator subfield should represent the Autonomous System of the router that attaches the Link Bandwidth Community. If four octet AS numbering scheme is used, AS_TRANS (23456) should be used.
          type: integer
          format: uint32
          maximum: 65535
          x-field-uid: 1
        bandwidth:
          description: |-
            Bandwidth of the link in bytes per second. ( 1 Kbps is 1000 bytes per second and 1 Mbps is 1000 Kbps per second )
          type: number
          format: float
          x-field-uid: 2
    Result.ExtendedCommunity.NonTransitive2OctetAsType:
      description: "The Non-Transitive Two-Octet AS-Specific Extended Community is\
        \ sent as type 0x40.         "
      type: object
      properties:
        choice:
          type: string
          x-enum:
            link_bandwidth_subtype:
              x-field-uid: 1
          x-field-uid: 1
          enum:
          - link_bandwidth_subtype
        link_bandwidth_subtype:
          x-field-uid: 2
          $ref: '#/components/schemas/Result.ExtendedCommunity.NonTransitive2OctetAsType.LinkBandwidth'
    Result.BgpCommunity:
      description: |-
        BGP communities provide additional capability for tagging routes and  for modifying BGP routing policy on upstream and downstream routers. BGP community is a 32-bit number which is broken into 16-bit AS number and  a 16-bit custom value.
      type: object
      properties:
        type:
          description: |-
            The type of community AS number. If community type is manual_as_number then as_number and as_custom will be available.
          type: string
          x-field-uid: 1
          x-enum:
            manual_as_number:
              x-field-uid: 1
            no_export:
              x-field-uid: 2
            no_advertised:
              x-field-uid: 3
            no_export_subconfed:
              x-field-uid: 4
            llgr_stale:
              x-field-uid: 5
            no_llgr:
              x-field-uid: 6
          enum:
          - manual_as_number
          - no_export
          - no_advertised
          - no_export_subconfed
          - llgr_stale
          - no_llgr
        as_number:
          description: |-
            First two octets of 32 bit community AS number.
          type: integer
          format: uint32
          maximum: 65535
          x-field-uid: 2
        as_custom:
          description: "Last two octets of the community value. "
          type: integer
          format: uint32
          maximum: 65535
          x-field-uid: 3
    Result.BgpAsPath:
      description: |-
        This attribute identifies the autonomous systems through  which routing information carried in this UPDATE message has passed.
      type: object
      properties:
        segments:
          description: "AS Path segments present in the received AS Path attribute. "
          type: array
          items:
            $ref: '#/components/schemas/Result.BgpAsPathSegment'
          x-field-uid: 1
    Result.BgpAsPathSegment:
      description: |-
        Configuration for a single BGP AS path segment
      type: object
      properties:
        type:
          description: |-
            AS sequence is the most common type of AS_PATH, it contains the  list of ASNs starting with the most recent ASN being added read  from left to right.
            The other three AS_PATH types are used for Confederations - AS_SET is the type of AS_PATH attribute that summarizes routes using using the aggregate-address command, allowing AS_PATHs to be  summarized in the update as well. - AS_CONFED_SEQ gives the list of ASNs in the path starting with the  most recent ASN to be added reading left to right - AS_CONFED_SET will allow summarization of multiple AS PATHs to be  sent in BGP Updates.
          type: string
          x-field-uid: 1
          x-enum:
            as_seq:
              x-field-uid: 1
            as_set:
              x-field-uid: 2
            as_confed_seq:
              x-field-uid: 3
            as_confed_set:
              x-field-uid: 4
          enum:
          - as_seq
          - as_set
          - as_confed_seq
          - as_confed_set
        as_numbers:
          description: |-
            The AS numbers in this AS path segment.
          type: array
          items:
            type: integer
            format: uint32
          x-field-uid: 2
    IsisLsps.State.Request:
      description: |-
        The request to retrieve ISIS Link State PDU (LSP) information learned by the router.
      type: object
      properties:
        isis_router_names:
          description: |
            The names of ISIS routers for which learned information is requested. An empty list will return results for all ISIS routers.

            x-constraint:
            - /components/schemas/Device.IsisRouter/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Device.IsisRouter/properties/name
          x-field-uid: 1
    IsisLsps.State:
      description: |-
        The result of ISIS LSP information that are retrieved.
      type: object
      properties:
        isis_router_name:
          description: |-
            The name of the ISIS Router.
          type: string
          x-field-uid: 1
        lsps:
          description: |-
            One or more LSPs that are learned by this ISIS router.
          type: array
          items:
            $ref: '#/components/schemas/IsisLsp.State'
          x-field-uid: 2
    IsisLsp.State:
      description: |-
        ISIS LSP.
      type: object
      required:
      - lsp_id
      properties:
        lsp_id:
          description: |-
            LSP ID in the format, e.g. '640000000001-00-00'. LSP ID consists of the System ID of a neighbor, the Pseudonode ID, and the LSP number. The last two bytes represent Pseudonode ID and LSP number respectively. A pseudonode is a logical representation of the LAN which is generated by a Designated Intermediate System (DIS) on a LAN segment. If one LSP exceeds the maximum LSP size then it is sent in another LSP with the LSP number incremented by one. A router's learned LSP gets refreshed by 'remaining_lifetime'. Then the sequence number is incremented by 1.
          type: string
          x-field-uid: 1
        pdu_type:
          description: |-
            Link State PDU type.
          type: string
          x-field-uid: 2
          x-enum:
            level_1:
              x-field-uid: 1
            level_2:
              x-field-uid: 2
          enum:
          - level_1
          - level_2
        remaining_lifetime:
          description: |-
            Remaining lifetime in seconds before LSP expires.
          type: integer
          format: uint32
          x-field-uid: 3
        sequence_number:
          description: |-
            Sequence number of the LSP.
          type: integer
          format: uint64
          x-field-uid: 4
        pdu_length:
          description: |-
            Total length of the LSP.
          type: integer
          format: uint32
          maximum: 65535
          x-field-uid: 5
        flags:
          description: |-
            LSP Type-Block flags.
          $ref: '#/components/schemas/IsisLsp.Flags'
          x-field-uid: 6
        is_type:
          description: "IS Type - bits 1 and 2 indicate the type of Intermediate System.\n\
            1 - ( i.e. bit 1 set) Level 1 Intermediate system.\n2 - Unused value.\n\
            3 - (i.e. bits 1 and 2 set) Level 2 Intermediate system. "
          type: integer
          format: uint32
          maximum: 3
          x-field-uid: 7
        tlvs:
          description: |-
            It refers to Link State PDU State TLVs container.
          $ref: '#/components/schemas/IsisLsp.Tlvs'
          x-field-uid: 8
    IsisLsp.Tlvs:
      description: |-
        This contains the list of TLVs present in one LSP.
      type: object
      properties:
        hostname_tlvs:
          description: |-
            Array of Hostname TLVs ( type 137) present in this LSP.
          type: array
          items:
            $ref: '#/components/schemas/IsisLsp.Hostname'
          x-field-uid: 1
        is_reachability_tlvs:
          description: |-
            Array of IS-Reachability TLVs (type 2) present in this LSP.
          type: array
          items:
            $ref: '#/components/schemas/IsisLsp.IsReachabilityTlv'
          x-field-uid: 2
        extended_is_reachability_tlvs:
          description: |-
            Array of Extended IS-Reachability TLVs (type 22) present in this LSP.
          type: array
          items:
            $ref: '#/components/schemas/IsisLsp.ExtendedIsReachabilityTlv'
          x-field-uid: 3
        ipv4_internal_reachability_tlvs:
          description: |-
            Array of IPv4 Internal Reachability TLVs (type 128) present in this LSP.
          type: array
          items:
            $ref: '#/components/schemas/IsisLsp.Ipv4InternalReachabilityTlv'
          x-field-uid: 4
        ipv4_external_reachability_tlvs:
          description: |-
            Array of IPv4 External Reachability TLVs (type 130) present in this LSP.
          type: array
          items:
            $ref: '#/components/schemas/IsisLsp.Ipv4ExternalReachabilityTlv'
          x-field-uid: 5
        extended_ipv4_reachability_tlvs:
          description: |-
            Array of IPv4 Extended Reachability TLVs (type 135) present in this LSP.
          type: array
          items:
            $ref: '#/components/schemas/IsisLsp.ExtendedIpv4ReachabilityTlv'
          x-field-uid: 6
        ipv6_reachability_tlvs:
          description: |-
            Array of IPv6 Reachability TLVs (type 236) present in this LSP.
          type: array
          items:
            $ref: '#/components/schemas/IsisLsp.Ipv6ReachabilityTlv'
          x-field-uid: 7
        router_capabilities:
          description: |-
            IS-IS Router Capabilities: TLV 242.
            This container defines Router Capabilities.
          type: array
          items:
            $ref: '#/components/schemas/IsisLsp.Capability'
          x-field-uid: 8
    IsisLsp.Hostname:
      description: |-
        It contains Hostname for the TLV 137.
      type: object
      properties:
        hostname:
          description: |-
            Hostname for an ISIS router.
          type: string
          x-field-uid: 1
    IsisLsp.Flags:
      description: |-
        LSP Type flags.
      type: object
      properties:
        partition_repair:
          description: |-
            When set, the originator supports partition repair.
          type: boolean
          x-field-uid: 1
        attached_error:
          description: |-
            When set, the originator is attached to another area using the referred metric.
          type: boolean
          x-field-uid: 2
        attached_expense:
          description: |-
            When set, the originator is attached to another
            area using the referred metric.
          type: boolean
          x-field-uid: 3
        attached_delay:
          description: |-
            Delay Metric - when set, the originator is attached to another
            area using the referred metric.
          type: boolean
          x-field-uid: 4
        attached_default:
          description: |-
            Default Metric - when set, the originator is attached to another
            area using the referred metric.
          type: boolean
          x-field-uid: 5
        overload:
          description: |-
            Overload bit - when set, the originator is overloaded, and must
            be avoided in path calculation.
          type: boolean
          x-field-uid: 6
    IsisLsp.IsReachabilityTlv:
      description: |-
        This container describes list of ISIS neighbors and attributes in IS-Reachability TLV (type 2).
      type: object
      properties:
        neighbors:
          description: |-
            This container describes Intermediate System (IS) neighbors.
          type: array
          items:
            $ref: '#/components/schemas/IsisLsp.neighbor'
          x-field-uid: 1
    IsisLsp.ExtendedIsReachabilityTlv:
      description: |-
        This is list of ISIS neighbors and attributes in Extended-IS-Reachability TLV (type 22).
      type: object
      properties:
        neighbors:
          description: |-
            This container describes IS neighbors.
          type: array
          items:
            $ref: '#/components/schemas/IsisLsp.ExtendedNeighbor'
          x-field-uid: 1
    IsisLsp.neighbor:
      description: |-
        This contains IS neighbors.
      type: object
      properties:
        system_id:
          description: |-
            The System ID for this emulated ISIS router, e.g. "640100010000".
          type: string
          format: hex
          x-field-uid: 1
    IsisLsp.ExtendedNeighbor:
      description: |-
        This contains IS neighbors.
      type: object
      properties:
        system_id:
          description: |-
            The System ID for this emulated ISIS router, e.g. "640100010000".
          type: string
          format: hex
          x-field-uid: 1
        adjacency_sids:
          description: |-
            List of segment routing adjacency SIDs.
          type: array
          items:
            $ref: '#/components/schemas/IsisLsp.AdjacencySid'
          x-field-uid: 2
    IsisLsp.Ipv4InternalReachabilityTlv:
      description: |-
        This container defines list of IPv4 internal reachability information in one IPv4 internal reachability TLV.
        This is advertised when the origin-type is set 'internal' in route range configurations.
      type: object
      properties:
        prefixes:
          description: |-
            Describes list of IPv4 prefixes in this TLV.
          type: array
          items:
            $ref: '#/components/schemas/IsisLsp.V4Prefix'
          x-field-uid: 1
    IsisLsp.Ipv4ExternalReachabilityTlv:
      description: |-
        This container defines list of IPv4 external reachability information in one IPv4 external reachability TLV.
        This is advertised when the origin-type is set 'external' in route range configurations.
      type: object
      properties:
        prefixes:
          description: |-
            Describes list of IPv4 prefixes in this TLV..
          type: array
          items:
            $ref: '#/components/schemas/IsisLsp.V4Prefix'
          x-field-uid: 1
    IsisLsp.V4Prefix:
      description: |-
        This group defines attributes of an IPv4 standard prefix.
      type: object
      properties:
        ipv4_address:
          description: |-
            An IPv4 unicast prefix reachable via the originator of this LSP.
          type: string
          x-field-uid: 1
        prefix_length:
          description: |-
            The length of the IPv4 prefix.
          type: integer
          format: uint32
          maximum: 32
          x-field-uid: 2
        redistribution_type:
          description: "Up (0)-used when a prefix is initially advertised within the\
            \ ISIS L3 hierarchy, \n  and for all other prefixes in L1 and L2 LSPs.\
            \ (default) \nDown (1)-used when an L1/L2 router advertises L2 prefixes\
            \ in L1 LSPs. \nThe prefixes are being advertised from a higher level\
            \ (L2) down to a lower level (L1). "
          type: string
          x-field-uid: 3
          x-enum:
            up:
              x-field-uid: 1
            down:
              x-field-uid: 2
          enum:
          - up
          - down
        default_metric:
          description: |-
            ISIS default metric value.
          type: integer
          format: uint32
          x-field-uid: 4
        origin_type:
          description: "The origin of the advertised route-internal or external to\
            \ the ISIS area. Options include the following: \n  Internal-for intra-area\
            \ routes, through Level 1 LSPs. \n  External-for inter-area routes redistributed\
            \ within L1, through Level\n1 LSPs."
          type: string
          x-field-uid: 5
          x-enum:
            internal:
              x-field-uid: 1
            external:
              x-field-uid: 2
          enum:
          - internal
          - external
    IsisLsp.ExtendedIpv4ReachabilityTlv:
      description: |-
        This container defines list of IPv4 extended reachability information in one Extended IPv4 External Reachability TLV.
        It is advertised when the 'wide metric' is enabled.
      type: object
      properties:
        prefixes:
          description: |-
            IPv4 prefix contained within extended reachability TLVs.
          type: array
          items:
            $ref: '#/components/schemas/IsisLsp.ExtendedV4Prefix'
          x-field-uid: 1
    IsisLsp.ExtendedV4Prefix:
      description: |-
        This group defines attributes of an IPv4 standard prefix.
      type: object
      properties:
        ipv4_address:
          description: |-
            An IPv4 unicast prefix reachable via the originator of this LSP.
          type: string
          format: ipv4
          x-field-uid: 1
        prefix_length:
          description: |-
            The length of the IPv4 prefix.
          type: integer
          format: uint32
          maximum: 32
          x-field-uid: 2
        metric:
          description: |-
            ISIS wide metric.
          type: integer
          format: uint32
          x-field-uid: 3
        redistribution_type:
          description: "Up (0)-used when a prefix is initially advertised within the\
            \ ISIS L3 hierarchy, \n  and for all other prefixes in L1 and L2 LSPs.\
            \ (default) \nDown (1)-used when an L1/L2 router advertises L2 prefixes\
            \ in L1 LSPs. \nThe prefixes are being advertised from a higher level\
            \ (L2) down to a lower level (L1). "
          type: string
          x-field-uid: 4
          x-enum:
            up:
              x-field-uid: 1
            down:
              x-field-uid: 2
          enum:
          - up
          - down
        prefix_attributes:
          description: |-
            Extended Prefix Attribute flags container sub-TLV is type 4.
          $ref: '#/components/schemas/IsisLsp.PrefixAttributes'
          x-field-uid: 5
        prefix_sids:
          description: |-
            Prefix Segment-ID list. IGP-Prefix Segment is an IGP segment attached to an IGP prefix. An IGP-Prefix Segment is global
            (unless explicitly advertised otherwise) within the SR/IGP domain.
          type: array
          items:
            $ref: '#/components/schemas/IsisLsp.PrefixSid'
          x-field-uid: 6
    IsisLsp.Ipv6ReachabilityTlv:
      description: |-
        It defines list of IPv6 extended reachability information in one IPv6 Reachability TLV.
      type: object
      properties:
        prefixes:
          description: |-
            IPv6 prefix contained within reachability TLVs.
          type: array
          items:
            $ref: '#/components/schemas/IsisLsp.V6Prefix'
          x-field-uid: 1
    IsisLsp.V6Prefix:
      description: |-
        It defines attributes of an IPv6 standard prefix.
      type: object
      properties:
        ipv6_address:
          description: |-
            An IPv6 unicast prefix reachable via the originator of this LSP.
          type: string
          format: ipv6
          x-field-uid: 1
        prefix_length:
          description: |-
            The length of the IPv6 prefix.
          type: integer
          format: uint32
          maximum: 128
          x-field-uid: 2
        metric:
          description: |-
            ISIS wide metric.
          type: integer
          format: uint32
          x-field-uid: 3
        redistribution_type:
          description: "Up (0)-used when a prefix is initially advertised within the\
            \ ISIS L3 hierarchy, \n  and for all other prefixes in L1 and L2 LSPs.\
            \ (default) \nDown (1)-used when an L1/L2 router advertises L2 prefixes\
            \ in L1 LSPs. \nThe prefixes are being advertised from a higher level\
            \ (L2) down to a lower level (L1). "
          type: string
          x-field-uid: 4
          x-enum:
            up:
              x-field-uid: 1
            down:
              x-field-uid: 2
          enum:
          - up
          - down
        origin_type:
          description: "The origin of the advertised route-internal or external to\
            \ the ISIS area. Options include the following: \n  Internal-for intra-area\
            \ routes, through Level 1 LSPs. \n  External-for inter-area routes redistributed\
            \ within L1, through Level\n1 LSPs."
          type: string
          x-field-uid: 5
          x-enum:
            internal:
              x-field-uid: 1
            external:
              x-field-uid: 2
          enum:
          - internal
          - external
        prefix_attributes:
          description: |-
            Extended Prefix Attribute flags container sub-TLV is type 4.
          $ref: '#/components/schemas/IsisLsp.PrefixAttributes'
          x-field-uid: 6
        prefix_sids:
          description: |-
            Prefix Segment-ID list. IGP-Prefix Segment is an IGP segment attached to an IGP prefix. An IGP-Prefix Segment is global
            (unless explicitly advertised otherwise) within the SR/IGP domain.
          type: array
          items:
            $ref: '#/components/schemas/IsisLsp.PrefixSid'
          x-field-uid: 7
    IsisLsp.PrefixAttributes:
      description: |-
        One bit value of ISIS Prefix attributes for the extended IPv4 and IPv6 reachability. https://www.rfc-editor.org/rfc/rfc7794.html.
      type: object
      properties:
        x_flag:
          description: |-
            External prefix flag (Bit 0). Set if the prefix has been
            redistributed from another protocol. This includes
            the case where multiple virtual routers are
            supported and the source of the redistributed prefix
            is another IS-IS instance.
          type: boolean
          x-field-uid: 1
        r_flag:
          description: |-
            Readvertisement flag (Bit 1). Set when the prefix has been
            leaked from one level to another (upwards or
            downwards).
          type: boolean
          x-field-uid: 2
        n_flag:
          description: |-
            Node Flag (Bit 2).
            Set when the prefix identifies the
            advertising router, i.e., the prefix is a host
            prefix advertising  a globally reachable address
            typically associated with a loopback address.
          type: boolean
          x-field-uid: 3
    IsisLsp.PrefixSid:
      description: |-
        This contains the properties of IS-IS Prefix-SID and its attributes for  the extended Ipv4 and Ipv6 reachability. Refernce: https://datatracker.ietf.org/doc/html/rfc8667#name-prefix-segment-identifier-p.
      type: object
      properties:
        sids:
          description: |-
            One or more SIDs/Indices are the SID/Label values associated  with the IGP Prefix segment attached to the specific IPv4 or IPv6 prefix.
          type: array
          items:
            type: integer
            format: uint32
          x-field-uid: 1
        flags:
          description: |-
            Flags associated with Prefix Segment-ID.
          $ref: '#/components/schemas/IsisLsp.PrefixSidFlags'
          x-field-uid: 2
        algorithm:
          description: "The Isis may use various algorithms when calculating\nreachability\
            \ to other nodes or to prefixes attached to these\nnodes. "
          type: integer
          format: uint32
          minimum: 0
          maximum: 255
          x-field-uid: 3
    IsisLsp.Capability:
      description: |-
        Container of IS-IS Router CAPABILITY TLV.
      type: object
      properties:
        router_cap_id:
          description: |-
            Router CapabilityID in IPv4 address format.
          type: string
          format: ipv4
          x-field-uid: 1
        s_bit:
          description: |-
            S bit (0x01): If the S bit is set(1), the IS-IS Router CAPABILITY TLV
            MUST be flooded across the entire routing domain.  If the S bit is
            not set(0), the TLV MUST NOT be leaked between levels.  This bit MUST
            NOT be altered during the TLV leaking.
          type: string
          x-enum:
            flood:
              x-field-uid: 1
            not_flood:
              x-field-uid: 2
          x-field-uid: 2
          enum:
          - flood
          - not_flood
        d_bit:
          description: |-
            D bit (0x02): When the IS-IS Router CAPABILITY TLV is leaked from
            Level 2 (L2) to Level 1 (L1), the D bit MUST be set.  Otherwise, this
            bit MUST be clear.  IS-IS Router CAPABILITY TLVs with the D bit set
            MUST NOT be leaked from Level 1 to Level 2.  This is to prevent TLV looping.
          type: string
          x-enum:
            down:
              x-field-uid: 1
            not_down:
              x-field-uid: 2
          x-field-uid: 3
          enum:
          - down
          - not_down
        sr_capability:
          description: "SR-Capabilities.      "
          $ref: '#/components/schemas/IsisLsp.SRCapability'
          x-field-uid: 4
        algorithms:
          description: |-
            This contains one or more SR-Algorithm.
          type: array
          items:
            type: integer
            format: uint32
          x-field-uid: 5
        srlb_ranges:
          description: |-
            This contains the list of SR Local Block (SRLB)
          type: array
          items:
            $ref: '#/components/schemas/IsisLsp.Srlb'
          x-field-uid: 6
    IsisLsp.SRCapability:
      description: |-
        Container of IS-IS SR-CAPABILITY Sub-Tlv.
      type: object
      properties:
        flags:
          description: |-
            1 octet of flags.
          $ref: '#/components/schemas/IsisLsp.CapasFlags'
          x-field-uid: 1
        srgb_ranges:
          description: |-
            This contains the list of SRGB.
          type: array
          items:
            $ref: '#/components/schemas/IsisLsp.Srgb'
          x-field-uid: 2
    IsisLsp.CapasFlags:
      description: |-
        Container for the configuration of IS-IS SR-CAPABILITY flags.
      type: object
      properties:
        ipv4_mpls:
          description: |-
            I-Flag for the MPLS IPv4 Flag. If set, then the router is capable of processing SR-MPLS-encapsulated IPv4 packets on all interfaces.
          type: boolean
          x-field-uid: 1
        ipv6_mpls:
          description: |-
            V-Flag for the MPLS IPv6 Flag. If set, then the router is capable of processing SR-MPLS-encapsulated IPv6 packets on all interfaces.
          type: boolean
          x-field-uid: 2
    IsisLsp.Srgb:
      description: |-
        This contains the propeties of SRGB range. Reference: https://datatracker.ietf.org/doc/html/rfc8667#section-3.1-7.1.1
      type: object
      properties:
        starting_sid:
          description: |-
            The SID/Label sub-TLV contains the first value of the SRGB while the range contains the number of SRGB elements.
          type: integer
          format: uint32
          x-field-uid: 1
        range:
          description: "This represents the number of SID in a SRGB range. "
          type: integer
          format: uint32
          x-field-uid: 2
    IsisLsp.Srlb:
      description: |-
        This contains the propeties of SRLB. The SR Local Block (SRLB) sub-TLV contains the range of labels the node has reserved  for Local SIDs. Local SIDs are used, e.g., for Adj-SIDs, and may also be allocated by components other than the IS-IS protocol Reference: https://datatracker.ietf.org/doc/html/rfc8667#name-sr-local-block-sub-tlv.
      type: object
      properties:
        starting_sid:
          description: |-
            The SID/Label sub-TLV contains the first value of the SRGB while the range contains the number of SRGB elements.
          type: integer
          format: uint32
          x-field-uid: 1
        range:
          description: "This represents the number of SID in a SRGB range. "
          type: integer
          format: uint32
          x-field-uid: 2
    IsisLsp.AdjacencySid:
      description: |-
        This container defines segment routing adjacency SIDs.
      type: object
      properties:
        type:
          description: |-
            Adjacency-SID type: Adjacency SIDs(31) or LAN adjacency SID (32).
          type: string
          x-field-uid: 1
          x-enum:
            adj_sid:
              x-field-uid: 1
            lan_adj_sid:
              x-field-uid: 2
          enum:
          - adj_sid
          - lan_adj_sid
        sids:
          description: |-
            One or more SID/Indices are the SID/Label values associated with the IGP adjacency SID.
          type: array
          items:
            type: integer
            format: uint32
          x-field-uid: 2
        flags:
          description: |-
            Flags associated with Adjacency Segment-ID.
          $ref: '#/components/schemas/IsisLsp.AdjSidFlags'
          x-field-uid: 3
        weight:
          description: "The value represents the weight of the Adj-SID for the purpose\
            \ of load balancing. "
          type: integer
          format: uint32
          x-field-uid: 4
    IsisLsp.PrefixSidFlags:
      description: |-
        Conatiner of 1-octet Flags associated with Prefix Segment-ID.
      type: object
      properties:
        r_flag:
          description: |-
            Readvertisment flag. When set, the prefix to which this Prefix-SID is attached, has been propagated by
            the router either from another level or from redistribution.
          type: boolean
          x-field-uid: 1
        n_flag:
          description: |-
            Node flag. When set, the Prefix-SID refers to the router identified by the prefix. Typically, the
            N-Flag is set on Prefix-SIDs attached to a router loopback address.
          type: boolean
          x-field-uid: 2
        p_flag:
          description: |-
            Penultimate-Hop-Popping flag. When set, then the penultimate hop MUST NOT pop the Prefix-SID before
            delivering the packet to the node that advertised the Prefix-SID.
          type: boolean
          x-field-uid: 3
        e_flag:
          description: |-
            Explicit-Null flag. When set, any upstream neighbor of the Prefix-SID originator MUST replace the
            Prefix-SID with a Prefix-SID having an Explicit-NULL value (0 for IPv4 and 2 for IPv6) before forwarding
            the packet.
          type: boolean
          x-field-uid: 4
        v_flag:
          description: |-
            Value flag. When set, the Prefix-SID carries avalue (instead of an index).
          type: boolean
          x-field-uid: 5
        l_flag:
          description: |-
            Local flag. When set, the value/index carried by the Prefix-SID has local significance.
          type: boolean
          x-field-uid: 6
    IsisLsp.AdjSidFlags:
      description: |-
        Conatiner of 1-octet Flags associated with Adjacency Segment-ID.
      type: object
      properties:
        f_flag:
          description: |-
            The address family flag. If unset, then the Adj-SID refers
            to an adjacency with outgoing IPv4 encapsulation.  If set then
            the Adj-SID refers to an adjacency with outgoing IPv6
            encapsulation.
          type: boolean
          x-field-uid: 1
        b_flag:
          description: |-
            The backup flag. If set, the Adj-SID is eligible for protection.
          type: boolean
          x-field-uid: 2
        v_flag:
          description: |-
            The value flag. If set, then the Adj-SID carries a value.
          type: boolean
          x-field-uid: 3
        l_flag:
          description: |-
            The local flag.  If set, then the value/index carried by
            the Adj-SID has local significance.
          type: boolean
          x-field-uid: 4
        s_flag:
          description: |-
            The set flag. When set, the S-Flag indicates that the
            Adj-SID refers to a set of adjacencies (and therefore MAY be
            assigned to other adjacencies as well).
          type: boolean
          x-field-uid: 5
        p_flag:
          description: |-
            The persistent flag. When set, the P-Flag indicates that
            the Adj-SID is persistently allocated, i.e., the Adj-SID value
            remains consistent across router restart and/or interface flap.
          type: boolean
          x-field-uid: 6
    LldpNeighbors.State.Request:
      description: |-
        The request to retrieve LLDP neighbor information for a given instance.
      type: object
      properties:
        lldp_names:
          description: |
            The names of LLDP instances for which neighbor information will be retrieved. If no names are specified then the results will contain neighbor information for all configured LLDP instances.

            x-constraint:
            - /components/schemas/Lldp/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Lldp/properties/name
          x-field-uid: 1
        neighbor_id_filters:
          description: |-
            Specify the neighbors for which information will be returned. If empty  or missing then information for all neighbors will be returned.
          type: array
          items:
            type: string
          x-field-uid: 2
    LldpNeighbors.State:
      description: |-
        LLDP neighbor information.
      type: object
      properties:
        lldp_name:
          description: |-
            The name of the LLDP instance.
          type: string
          x-field-uid: 1
        system_name:
          description: |-
            The system name field shall contain an alpha-numeric string that  indicates the system's administratively assigned name. The system name  should be the system's fully qualified domain name. If implementations  support IETF RFC 3418, the sysName object should be used for this field.
          type: string
          x-field-uid: 2
        system_description:
          description: |-
            The system description field shall contain an alpha-numeric string that  is the textual description of the network entity. The system description  should include the full name and version identification of the system's  hardware type, software operating system, and networking software. If  implementations support IETF RFC 3418, the sysDescr object should be used  for this field.
          type: string
          x-field-uid: 3
        chassis_id:
          description: |-
            The Chassis ID is a mandatory TLV which identifies the chassis component of  the endpoint identifier associated with the transmitting LLDP agent.
          type: string
          x-field-uid: 4
        chassis_id_type:
          description: |-
            This field identifies the format and source of the chassis identifier string.  It is an enumerator defined by the LldpChassisIdSubtype object from IEEE 802.1AB  MIB.
          type: string
          x-enum:
            port_component:
              x-field-uid: 1
            network_address:
              x-field-uid: 2
            chassis_component:
              x-field-uid: 3
            mac_address:
              x-field-uid: 4
            interface_name:
              x-field-uid: 5
            local:
              x-field-uid: 6
            interface_alias:
              x-field-uid: 7
          x-field-uid: 5
          enum:
          - port_component
          - network_address
          - chassis_component
          - mac_address
          - interface_name
          - local
          - interface_alias
        neighbor_id:
          description: |-
            System generated identifier for the neighbor on the LLDP instance.
          type: string
          x-field-uid: 6
        age:
          description: |-
            Age since discovery in seconds.
          type: integer
          format: uint32
          x-field-uid: 7
        last_update:
          description: |-
            Seconds since last update received.
          type: integer
          format: uint32
          x-field-uid: 8
        ttl:
          description: |-
            The time-to-live (TTL) in seconds is a mandatory TLV which indicates how long information from the neighbor  should be considered valid.
          type: integer
          format: uint32
          x-field-uid: 9
        port_id:
          description: |-
            The Port ID is a mandatory TLV which identifies the port component of the endpoint identifier associated with  the transmitting LLDP agent. If the specified port is an IEEE 802.3 Repeater port, then this TLV is optional.
          type: string
          x-field-uid: 10
        port_id_type:
          description: |-
            This field identifies the format and source of the port identifier string. It is an enumerator defined by the PtopoPortIdType object from RFC2922.
          type: string
          x-enum:
            port_component:
              x-field-uid: 1
            network_address:
              x-field-uid: 2
            agent_circuit_id:
              x-field-uid: 3
            mac_address:
              x-field-uid: 4
            interface_name:
              x-field-uid: 5
            local:
              x-field-uid: 6
            interface_alias:
              x-field-uid: 7
          x-field-uid: 11
          enum:
          - port_component
          - network_address
          - agent_circuit_id
          - mac_address
          - interface_name
          - local
          - interface_alias
        port_description:
          description: |-
            The binary string containing the actual port identifier for the port which this LLDP PDU was transmitted. The source  and format of this field is defined by PtopoPortId from RFC2922.
          type: string
          x-field-uid: 12
        management_address:
          description: |-
            The Management Address is a mandatory TLV which identifies a network address associated with the local LLDP agent, which  can be used to reach the agent on the port identified in the Port ID TLV.
          type: string
          x-field-uid: 13
        management_address_type:
          description: |-
            The enumerated value for the network address type identified in this TLV. This enumeration is defined in the 'Assigned Numbers'  RFC [RFC3232] and the ianaAddressFamilyNumbers object.
          type: string
          x-field-uid: 14
        custom_tlvs:
          type: array
          items:
            $ref: '#/components/schemas/LldpCustomTLV.State'
          x-field-uid: 15
        capabilities:
          type: array
          items:
            $ref: '#/components/schemas/LldpCapability.State'
          x-field-uid: 16
    LldpCustomTLV.State:
      description: |-
        Custom TLV received from a neighbor.Custom TLVs are organization specific TLVs advertised with TLV type 127.
      type: object
      properties:
        custom_type:
          description: |-
            The integer value identifying the type of information contained in the value field.
          type: integer
          format: uint32
          x-field-uid: 1
        oui:
          description: |-
            The organizationally unique identifier field shall contain the organization's OUI as defined in Clause 9 of IEEE Std 802. The high-order octet is 0 and the low-order 3 octets are the SMI Network Management Private Enterprise Code of the Vendor in network byte order,  as defined in the 'Assigned Numbers' RFC [RFC3232].
          type: string
          x-field-uid: 2
        oui_subtype:
          description: |-
            The organizationally defined subtype field shall contain a unique subtype value assigned by the defining organization.
          type: integer
          format: uint32
          x-field-uid: 3
        information:
          description: |-
            Contains information on the remaining bytes of the received Organization-Specific TLV after the sub-type field. The value must be returned in lowercase hexadecimal format.
          type: string
          x-field-uid: 4
    LldpCapability.State:
      description: |-
        LLDP system capability advertised by the neighbor
      type: object
      properties:
        capability_name:
          description: |-
            Name of the system capability advertised by the neighbor. Capabilities are represented in a bitmap that defines the primary functions of the system.  The capabilities are defined in IEEE 802.1AB.
          type: string
          x-enum:
            mac_bridge:
              x-field-uid: 1
            two_port_mac_relay:
              x-field-uid: 2
            repeater:
              x-field-uid: 3
            docsis_cable_device:
              x-field-uid: 4
            s_vlan:
              x-field-uid: 5
            telephone:
              x-field-uid: 6
            other:
              x-field-uid: 7
            router:
              x-field-uid: 8
            c_vlan:
              x-field-uid: 9
            station_only:
              x-field-uid: 10
            wlan_access_point:
              x-field-uid: 11
          x-field-uid: 1
          enum:
          - mac_bridge
          - two_port_mac_relay
          - repeater
          - docsis_cable_device
          - s_vlan
          - telephone
          - other
          - router
          - c_vlan
          - station_only
          - wlan_access_point
        capability_enabled:
          description: |-
            Indicates whether the corresponding system capability is enabled on the neighbor.
          type: boolean
          x-field-uid: 2
    RsvpLsps.State.Request:
      description: |-
        The request to retrieve RSVP Label Switched Path (LSP) information learned by the router.
      type: object
      properties:
        rsvp_router_names:
          description: |
            The names of RSVP-TE routers for which learned information is requested. An empty list will return results for all RSVP=TE routers.

            x-constraint:
            - /components/schemas/Device.Rsvp/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Device.Rsvp/properties/name
          x-field-uid: 1
    RsvpLsps.State:
      description: |-
        Discovered IPv4 Point-to-Point LSPs of a RSVP-TE router.
      type: object
      properties:
        rsvp_router_name:
          description: |-
            The name of the RSVP-TE Router.
          type: string
          x-field-uid: 1
        ipv4_lsps:
          description: |-
            IPv4 Point-to-Point RSVP-TE Discovered LSPs.
          type: array
          items:
            $ref: '#/components/schemas/RsvpIPv4Lsp.State'
          x-field-uid: 2
    RsvpIPv4Lsp.State:
      description: |-
        IPv4 RSVP-TE Discovered LSPs.
      type: object
      properties:
        source_address:
          description: |-
            The origin IPv4 address of RSVP session.
          type: string
          format: ipv4
          x-field-uid: 1
        destination_address:
          description: |-
            The IPv4 destination address of RSVP session.
          type: string
          format: ipv4
          x-field-uid: 2
        lsp:
          description: |-
            It refers to the RSVP LSP properties.
          $ref: '#/components/schemas/RsvpLsp.State'
          x-field-uid: 3
        rros:
          description: |-
            It refers to RSVP RRO objects container.
          items:
            $ref: '#/components/schemas/RsvpLsp.Ipv4Rro'
          type: array
          x-field-uid: 4
        eros:
          description: |-
            It refers to RSVP ERO objects container.
          items:
            $ref: '#/components/schemas/RsvpLsp.Ipv4Ero'
          type: array
          x-field-uid: 5
    RsvpLsp.State:
      description: |-
        IPv4 RSVP-TE Discovered LSPs.
      type: object
      properties:
        tunnel_id:
          description: |-
            The tunnel id of RSVP session which acts as an identifier that remains constant over the life of the tunnel.
          type: integer
          format: uint32
          x-field-uid: 1
        lsp_id:
          description: |-
            The lsp-id of RSVP session which acts as a differentiator for two lsps originating from the same headend, commonly used to distinguish RSVP sessions during make before break operations.
          type: integer
          format: uint32
          x-field-uid: 2
        session_name:
          description: |-
            The value of RSVP-TE Session Name field of the Session Attribute object.
          type: string
          x-field-uid: 3
        label_in:
          description: |-
            The label received by RSVP-TE ingress.
          type: integer
          format: uint32
          x-field-uid: 4
        label_out:
          description: |-
            The label assigned by RSVP-TE egress.
          type: integer
          format: uint32
          x-field-uid: 5
        session_status:
          description: |-
            Operational state of the RSVP LSP.
          type: string
          x-field-uid: 6
          x-enum:
            up:
              x-field-uid: 1
            down:
              x-field-uid: 2
          enum:
          - up
          - down
        last_flap_reason:
          description: |-
            The reason for the last flap of this RSVP session.
          type: string
          x-field-uid: 7
          x-enum:
            resv_tear:
              x-field-uid: 1
            path_tear:
              x-field-uid: 2
            path_timeout:
              x-field-uid: 3
          enum:
          - resv_tear
          - path_tear
          - path_timeout
        up_time:
          description: |-
            The tunnel UP time in milli seconds. If the tunnel is DOWN the UP time will be zero.
          type: integer
          format: uint64
          x-field-uid: 8
    RsvpLsp.Ipv4Rro:
      description: "This contains the list of Record Route Object(RRO) objects associated\
        \ with the traffic engineering tunnel. The  Record Route Object(RRO) is used\
        \ in RSVP-TE to record the route traversed by the LSP. The RRO might be present\
        \ in both   Path message and Resv message, the RRO stores the IP addresses\
        \ of the routers that the traffic engineering tunnel  traversed and also the\
        \ label generated and distributed by the routers. The RROs in the Resv message\
        \ mirrors that of  the Path message, the only difference is that the RRO in\
        \ a Resv message records the path information in the reverse  direction. "
      properties:
        address:
          description: |-
            The IPv4 addresses of the routers that the traffic engineering tunnel traversed.
          type: string
          format: ipv4
          x-field-uid: 1
        reported_label:
          description: "Label reported for RRO hop. When the Label_Recording flag\
            \ is set in the Session Attribute object, nodes doing route recording\
            \ should include the Label Record subobject containing the reported label. "
          type: integer
          format: uint32
          x-field-uid: 2
    RsvpLsp.Ipv4Ero:
      description: |-
        This contains the list of sub-objects included in the Explicit Route Object(ERO) object send in the PATH message from the ingress. These sub-objects contain the intermediate hops to be traversed by the LSP while being forwarded  towards the egress endpoint.
      type: object
      properties:
        prefix:
          description: |-
            The IPv4 prefix indicated by the ERO. Specified only when the ERO hop is an IPv4 prefix.
          type: string
          format: ipv4
          x-field-uid: 1
        asn:
          description: |-
            The autonomous system number indicated by the ERO. Specified only when the ERO hop is an  2 or 4-byte AS number.
          type: integer
          format: uint32
          x-field-uid: 2
        type:
          description: |-
            The type indicated by the ERO.
          type: string
          x-field-uid: 3
          x-enum:
            ipv4:
              x-field-uid: 1
            ipv6:
              x-field-uid: 2
            asn:
              x-field-uid: 3
            asn4:
              x-field-uid: 4
            label:
              x-field-uid: 5
            unnumbered_interface:
              x-field-uid: 6
          enum:
          - ipv4
          - ipv6
          - asn
          - asn4
          - label
          - unnumbered_interface
    Dhcpv4Interface.State.Request:
      description: |-
        The request for assigned IPv4 address information associated with DHCP Client sessions.
      type: object
      properties:
        dhcp_client_names:
          description: |
            The names of DHCPv4 client to return results for. An empty list will return results for all DHCPv4 Client address information.

            x-constraint:
            - /components/schemas/Device.Dhcpv4client/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Device.Dhcpv4client/properties/name
          x-field-uid: 1
    Dhcpv4Interface.State:
      description: |-
        The IPv4 address associated with this DHCP Client session.
      type: object
      properties:
        dhcp_client_name:
          description: |-
            The name of a DHCPv4 Client.
          type: string
          x-field-uid: 1
        ipv4_address:
          description: |-
            The IPv4 address associated with this DHCP Client session.
          type: string
          x-field-uid: 2
        prefix_length:
          description: |-
            The length of the prefix.
          type: integer
          format: uint32
          maximum: 32
          x-field-uid: 3
        gateway_address:
          description: |-
            The Gateway Ipv4 address associated with this DHCP Client session.
          type: string
          x-field-uid: 4
        lease_time:
          description: |-
            The duration of the IPv4 address lease, in seconds.
          type: integer
          format: uint32
          x-field-uid: 5
        renew_time:
          description: |-
            Time in seconds until the DHCPv4 client starts renewing the lease.
          type: integer
          format: uint32
          x-field-uid: 6
        rebind_time:
          description: |-
            Time in seconds until the DHCPv4 client starts rebinding.
          type: integer
          format: uint32
          x-field-uid: 7
    Dhcpv4Lease.State.Request:
      description: |-
        The request to retrieve DHCP Server host allocated status.
      type: object
      properties:
        dhcp_server_names:
          description: |
            The names of DHCPv4 server to return results for. An empty list will return results for all DHCPv4 servers.

            x-constraint:
            - /components/schemas/Device.Dhcpv4server/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Device.Dhcpv4server/properties/name
          x-field-uid: 1
    Dhcpv4Leases.State:
      description: |-
        Lease information of DHCP Server.
      type: object
      properties:
        dhcp_server_name:
          description: |-
            The name of a DHCP Server.
          type: string
          x-field-uid: 1
        leases:
          type: array
          items:
            $ref: '#/components/schemas/Dhcpv4Lease.State'
          x-field-uid: 2
    Dhcpv4Lease.State:
      description: |-
        IPv4 address lease state.
      type: object
      properties:
        address:
          description: |-
            The IPv4 address associated with this lease.
          type: string
          x-field-uid: 1
        valid_time:
          description: |-
            The time in seconds after which the IPv4 address lease will expire.
          type: integer
          format: uint32
          x-field-uid: 2
        preferred_time:
          description: |-
            The elapsed time in seconds since the address has been renewed.
          type: integer
          format: uint32
          x-field-uid: 3
        renew_time:
          description: |-
            Time in seconds until the DHCPv4 client starts renewing the lease.
          type: integer
          format: uint32
          x-field-uid: 4
        rebind_time:
          description: |-
            Time in seconds until the DHCPv4 client starts rebinding.
          type: integer
          format: uint32
          x-field-uid: 5
        client_id:
          description: |-
            The ID of the DHCPv4 client holding this lease.
          type: string
          x-field-uid: 6
        circuit_id:
          description: |-
            The Circuit ID option found in the last request message.
          type: string
          x-field-uid: 7
        remote_id:
          description: |-
            The Remote ID option found in the last request message.
          type: string
          x-field-uid: 8
    Dhcpv6Interface.State.Request:
      description: |-
        The request for assigned IPv6 address information associated with DHCP Client sessions.
      type: object
      properties:
        dhcp_client_names:
          description: |
            The names of DHCPv6 client to return results for. An empty list will return results for all DHCPv6 Client address information.

            x-constraint:
            - /components/schemas/Device.Dhcpv6client/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Device.Dhcpv6client/properties/name
          x-field-uid: 1
    Dhcpv6Interface.State:
      description: |-
        The IPv6 address associated with this DHCP Client session.
      type: object
      properties:
        dhcp_client_name:
          description: |-
            The name of a DHCPv6 Client.
          type: string
          x-field-uid: 1
        iapd_addresses:
          description: |-
            The IPv6 IAPD addresses and prefixes associated with this DHCP Client session.
          type: array
          items:
            $ref: '#/components/schemas/Dhcpv6Interface.Iapd'
          x-field-uid: 2
        ia_addresses:
          description: |-
            The IPv6 IATA/IANA addresses and gateways associated with this DHCP Client session.
          type: array
          items:
            $ref: '#/components/schemas/Dhcpv6Interface.Ia'
          x-field-uid: 3
    Dhcpv6Interface.Iapd:
      description: |-
        The IPv6 IAPD address and prefix length associated with this DHCP Client session.
      type: object
      properties:
        address:
          description: |-
            The IAPD address associated with this DHCPv6 Client session.
          type: string
          format: ipv6
          x-field-uid: 1
        prefix_length:
          description: |-
            The prefix length of the IAPD address associated with this DHCPv6 Client session.
          type: integer
          format: uint32
          maximum: 128
          x-field-uid: 2
        lease_time:
          description: |-
            The duration of the IPv6 address lease, in seconds.
          type: integer
          format: uint32
          x-field-uid: 3
    Dhcpv6Interface.Ia:
      description: |-
        The IPv6 IATA/IANA address and gateway associated with this DHCP Client session.
      type: object
      properties:
        address:
          description: |-
            The address associated with this DHCPv6 Client session.
          type: string
          format: ipv6
          x-field-uid: 1
        gateway:
          description: |-
            The Gateway address associated with this DHCPv6 Client session.
          type: string
          format: ipv6
          x-field-uid: 2
        lease_time:
          description: |-
            The duration of the IPv6 address lease, in seconds.
          type: integer
          format: uint32
          x-field-uid: 3
    Dhcpv6Lease.State.Request:
      description: |-
        The request to retrieve DHCP Server host allocated status.
      type: object
      properties:
        dhcp_server_names:
          description: |
            The names of DHCPv6 server to return results for. An empty list will return results for all DHCPv6 servers.

            x-constraint:
            - /components/schemas/Device.Dhcpv6server/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Device.Dhcpv6server/properties/name
          x-field-uid: 1
    Dhcpv6Leases.State:
      description: |-
        Lease information of DHCP Server.
      type: object
      properties:
        dhcp_server_name:
          description: |-
            The name of a DHCP Server.
          type: string
          x-field-uid: 1
        leases:
          type: array
          items:
            $ref: '#/components/schemas/Dhcpv6ServerLease.State'
          x-field-uid: 2
    Dhcpv6ServerLease.State:
      description: |-
        IPv6 unicast prefix.
      type: object
      properties:
        address:
          description: |-
            The IPv6 address associated with this lease.
          type: string
          x-field-uid: 1
        valid_time:
          description: |-
            The time in seconds, IP address lease will expire.
          type: integer
          format: uint32
          x-field-uid: 2
        preferred_time:
          description: |-
            The time in seconds, elapsed time since address has been renewed.
          type: integer
          format: uint32
          x-field-uid: 3
        renew_time:
          description: |-
            Time in seconds until the DHCPv6 client starts renewing the lease.
          type: integer
          format: uint32
          x-field-uid: 4
        rebind_time:
          description: |-
            Time in seconds until the DHCPv6 client starts rebinding.
          type: integer
          format: uint32
          x-field-uid: 5
        client_id:
          description: |-
            The ID of the DHCPv6 client holding this lease.
          type: string
          x-field-uid: 6
        remote_id:
          description: |-
            The Remote ID option found in the last request message.
          type: string
          x-field-uid: 7
        interface_id:
          description: |-
            The Interface ID option found in the last request message.
          type: string
          x-field-uid: 8
    Ospfv2Lsas.State.Request:
      description: |-
        The request to retrieve OSPFv2 Link State Advertisements (LSA) information learned by the routers.
      type: object
      properties:
        router_names:
          description: |
            The names of OSPFv2 routers for which learned information is requested. An empty list will return results for all OSPFv2 routers.

            x-constraint:
            - /components/schemas/Device.Ospfv2Router/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Device.Ospfv2Router/properties/name
          x-field-uid: 1
    Ospfv2Lsa.State:
      description: |-
        The result of OSPFv2 LSA information that are retrieved.
      type: object
      properties:
        router_name:
          description: |-
            The name of the OSPFv2 Router that learned the LSA information.
          type: string
          x-field-uid: 1
        router_lsas:
          description: |-
            One or more OSPFv2 Router-LSA - Type 1.
          type: array
          items:
            $ref: '#/components/schemas/Ospfv2.RouterLsa'
          x-field-uid: 2
        network_lsas:
          description: |-
            One or more OSPFv2 Network-LSA - Type 2.
          type: array
          items:
            $ref: '#/components/schemas/Ospfv2.NetworkLsa'
          x-field-uid: 3
        network_summary_lsas:
          description: |-
            One or more OSPFv2 Network summary LSA - Type 3.
          type: array
          items:
            $ref: '#/components/schemas/Ospfv2.NetworkSummaryLsa'
          x-field-uid: 4
        summary_as_lsas:
          description: |-
            One or more OSPFv2 Autonomous System Boundary Router (ASBR) summary LSA - Type 4.
          type: array
          items:
            $ref: '#/components/schemas/Ospfv2.SummaryAsLsa'
          x-field-uid: 5
        external_as_lsas:
          description: |-
            OSPFv2 AS-External-LSA - Type 5.
          type: array
          items:
            $ref: '#/components/schemas/Ospfv2.ExternalAsLsa'
          x-field-uid: 6
        nssa_lsas:
          description: |-
            One or more OSPFv2 NSSA-LSA - Type 7.
          type: array
          items:
            $ref: '#/components/schemas/Ospfv2.NssaLsa'
          x-field-uid: 7
        opaque_lsas:
          description: |-
            One or more OSPFv2 Link-Scope Opaque-LSA - Type 9.
          type: array
          items:
            $ref: '#/components/schemas/Ospfv2.OpaqueLsa'
          x-field-uid: 8
    Ospfv2.RouterLsa:
      description: |-
        Contents of the router LSA.
      type: object
      properties:
        header:
          description: |-
            Contents of the LSA header.
          $ref: '#/components/schemas/Ospfv2.LsaHeader'
          x-field-uid: 1
        links:
          description: |-
            Links that are described within the LSA.
          type: array
          items:
            $ref: '#/components/schemas/Ospfv2.Link'
          x-field-uid: 2
    Ospfv2.NetworkLsa:
      description: |-
        Contents of the Network LSA.
      type: object
      properties:
        header:
          description: |-
            Contents of the LSA header.
          $ref: '#/components/schemas/Ospfv2.LsaHeader'
          x-field-uid: 1
        network_mask:
          description: |-
            The IPv4 address mask for the network.
          type: string
          format: ipv4
          x-field-uid: 2
        neighbor_router_ids:
          description: |-
            Neighbor router ids that are described within the LSA.
          type: array
          items:
            type: string
            format: ipv4
          x-field-uid: 3
    Ospfv2.NetworkSummaryLsa:
      description: |-
        Contents of the Network Summary LSA - Type 3.
        The value of the IPv4 prefix that was received is present in header.lsa_id.
      type: object
      properties:
        header:
          description: |-
            Contents of the LSA header.
          $ref: '#/components/schemas/Ospfv2.LsaHeader'
          x-field-uid: 1
        network_mask:
          description: |-
            The IPv4 address mask for the network.
          type: string
          format: ipv4
          x-field-uid: 2
        metric:
          description: |-
            The cost of the summary route TOS level 0 and all unspecified levels.
          type: integer
          format: uint32
          x-field-uid: 3
    Ospfv2.SummaryAsLsa:
      description: |-
        Contents of OSPFv2 Autonomous System Boundary Router (ASBR) summary LSA - Type 4.
      type: object
      properties:
        header:
          description: |-
            Contents of the LSA header.
          $ref: '#/components/schemas/Ospfv2.LsaHeader'
          x-field-uid: 1
        network_mask:
          description: |-
            The IPv4 address mask for the network.
          type: string
          format: ipv4
          x-field-uid: 2
        metric:
          description: |-
            The cost of the summary route TOS level 0 and all unspecified levels.
          type: integer
          format: uint32
          x-field-uid: 3
    Ospfv2.ExternalAsLsa:
      description: |-
        Contents of OSPFv2 AS-External-LSA - Type 5.
        The value of the IPv4 prefix that was received is present in header.lsa_id.
      type: object
      properties:
        header:
          description: |-
            Contents of the LSA header.
          $ref: '#/components/schemas/Ospfv2.LsaHeader'
          x-field-uid: 1
        network_mask:
          description: |-
            The IPv4 address mask for the network.
          type: string
          format: ipv4
          x-field-uid: 2
        metric:
          description: |-
            The cost of the summary route TOS level 0 and all unspecified levels.
          type: integer
          format: uint32
          x-field-uid: 3
        metric_type:
          description: |-
            The type of metric associated with the route range.
          type: integer
          format: uint32
          x-field-uid: 4
    Ospfv2.NssaLsa:
      description: |-
        Contents of OSPFv2 NSSA LSA - Type 7.
        The value of the IPv4 prefix that was received is present in header.lsa_id.
      type: object
      properties:
        header:
          description: |-
            Contents of the LSA header.
          $ref: '#/components/schemas/Ospfv2.LsaHeader'
          x-field-uid: 1
        network_mask:
          description: |-
            The IPv4 address mask for the network.
          type: string
          format: ipv4
          x-field-uid: 2
        metric:
          description: |-
            The cost of the summary route TOS level 0 and all unspecified levels.
          type: integer
          format: uint32
          x-field-uid: 3
        metric_type:
          description: |-
            The type of metric associated with the route range.
          type: integer
          format: uint32
          x-field-uid: 4
        forwarding_address:
          description: |-
            IPv4 Forwarding address.
          type: string
          format: ipv4
          x-field-uid: 5
    Ospfv2.OpaqueLsa:
      description: |-
        Contents of OSPFv2 Opaque LSA - Type 7.
      type: object
      properties:
        header:
          description: |-
            Contents of the LSA header.
          $ref: '#/components/schemas/Ospfv2.LsaHeader'
          x-field-uid: 1
        type:
          description: |-
            The type of Opaque TE LSAs. The LSA type.
          type: string
          x-field-uid: 2
          x-enum:
            local:
              x-field-uid: 1
            area:
              x-field-uid: 2
            domain:
              x-field-uid: 3
          enum:
          - local
          - area
          - domain
    Ospfv2.LsaHeader:
      description: |-
        Attributes in LSA Header.
      type: object
      properties:
        lsa_id:
          description: |-
            LSA ID in the IPv4 format. The Link State ID for the specified LSA type.
          type: string
          format: ipv4
          x-field-uid: 1
        advertising_router_id:
          description: |-
            The router ID (in the IPv4 format) of the router that originated the LSA.
          type: string
          format: ipv4
          x-field-uid: 2
        sequence_number:
          description: |-
            Sequence number to detect old and duplicate LSAs. The greater the sequence number the more recent the LSA.
          type: integer
          format: uint32
          x-field-uid: 3
        age:
          description: |-
            The time since the LSA's generation in seconds.
          type: integer
          format: uint32
          x-field-uid: 4
        option_bits:
          description: |-
            The optional bits.
          type: integer
          format: uint32
          x-field-uid: 5
    Ospfv2.Link:
      description: |-
        Generic attributes used to identify links within OSPFv2.
      type: object
      properties:
        type:
          description: |-
            The data associated with the link type. The value is dependent upon the subtype of the LSA. - point_to_point: The LSA represents a point-to-point connection to another router. - transit: The LSA represents a connection to a transit network. - stub: The LSA represents a connection to a stub network. - virtual: The LSA represents a virtual link connection.
          type: string
          x-enum:
            point_to_point:
              x-field-uid: 1
            transit:
              x-field-uid: 2
            stub:
              x-field-uid: 3
            virtual:
              x-field-uid: 4
          x-field-uid: 1
          enum:
          - point_to_point
          - transit
          - stub
          - virtual
        id:
          description: |-
            The identifier for the link specified. The value of the link
            identifier is dependent upon the type of the LSA.
          type: string
          format: ipv4
          x-field-uid: 2
        data:
          description: |-
            The data associated with the link type. The value is
            dependent upon the subtype of the LSA. When the connection is
            to a stub network it represents the mask; for p2p connections
            that are unnumbered it represents the ifIndex value of the
            router's interface; for all other connections it represents
            the local system's IP address.
          type: string
          format: ipv4
          x-field-uid: 3
        metric:
          description: |-
            The data associated with the link type. The value is
            dependent upon the subtype of the LSA. When the connection is
            to a stub network it represents the mask; for p2p connections
            that are unnumbered it represents the ifIndex value of the
            router's interface; for all other connections it represents
            the local system's IP address.
          type: integer
          format: uint32
          x-field-uid: 4
    Ospfv3Lsas.State.Request:
      description: |-
        The request to retrieve OSPFv3 Link State Advertisements (LSA) information learned by the routers.
      type: object
      properties:
        router_names:
          description: |
            The names of OSPFv3 routers for which learned information is requested. An empty list will return results for all OSPFv3 routers.

            x-constraint:
            - /components/schemas/Ospfv3.RouterInstance/properties/name
          type: array
          items:
            type: string
          x-constraint:
          - /components/schemas/Ospfv3.RouterInstance/properties/name
          x-field-uid: 1
    Ospfv3Lsa.State:
      description: |-
        The result of OSPFv3 LSA information that are retrieved.
      type: object
      properties:
        router_name:
          description: |-
            The name of the OSPFv3 Router that learned the LSA information.
          type: string
          x-field-uid: 1
        router_lsas:
          description: |-
            One or more OSPFv3 Router LSA - Type 1.
          type: array
          items:
            $ref: '#/components/schemas/Ospfv3.RouterLsa'
          x-field-uid: 2
        network_lsas:
          description: |-
            One or more OSPFv3 Network LSA - Type 2.
          type: array
          items:
            $ref: '#/components/schemas/Ospfv3.NetworkLsa'
          x-field-uid: 3
        inter_area_prefix_lsas:
          description: |-
            One or more OSPFv3 Inter-Area-Prefix LSA - Type 3.
          type: array
          items:
            $ref: '#/components/schemas/Ospfv3.InterAreaPrefixLsa'
          x-field-uid: 4
        inter_area_router_lsas:
          description: |-
            One or more OSPFv3 Inter-Area-Router LSA - Type 4.
          type: array
          items:
            $ref: '#/components/schemas/Ospfv3.InterAreaRouterLsa'
          x-field-uid: 5
        external_as_lsas:
          description: |-
            OSPFv3 AS-External LSA - Type 5.
          type: array
          items:
            $ref: '#/components/schemas/Ospfv3.ExternalAsLsa'
          x-field-uid: 6
        nssa_lsas:
          description: |-
            One or more OSPFv3 NSSA LSA - Type 7.
          type: array
          items:
            $ref: '#/components/schemas/Ospfv3.NssaLsa'
          x-field-uid: 7
        link_lsas:
          description: |-
            One or more OSPFv3 Link LSA - Type 8.
          type: array
          items:
            $ref: '#/components/schemas/Ospfv3.LinkLsa'
          x-field-uid: 8
        intra_area_prefix_lsas:
          description: |-
            One or more OSPFv3 Intra-Area-Prefix LSA - Type 9.
          type: array
          items:
            $ref: '#/components/schemas/Ospfv3.IntraAreaPrefixLsa'
          x-field-uid: 9
    Ospfv3.RouterLsa:
      description: |-
        Contents of the router LSA.
      type: object
      properties:
        header:
          description: |-
            Contents of the LSA header.
          $ref: '#/components/schemas/Ospfv3.LsaHeader'
          x-field-uid: 1
        neighbor_router_id:
          description: |-
            Neighbor router id that is described within the LSA.
          type: string
          format: ipv4
          x-field-uid: 2
        links:
          description: |-
            Links that are described within the LSA.
          type: array
          items:
            $ref: '#/components/schemas/Ospfv3.Link'
          x-field-uid: 3
    Ospfv3.NetworkLsa:
      description: |-
        Contents of the Network LSA.
      type: object
      properties:
        header:
          description: |-
            Contents of the LSA header.
          $ref: '#/components/schemas/Ospfv3.LsaHeader'
          x-field-uid: 1
        attached_router_ids:
          description: |-
            Attached router ids that are described within the LSA.
          type: array
          items:
            type: string
            format: ipv4
          x-field-uid: 2
    Ospfv3.InterAreaPrefixLsa:
      description: |-
        Contents of the Inter-Area-Prefix LSA - Type 3.
      type: object
      properties:
        header:
          description: |-
            Contents of the LSA header.
          $ref: '#/components/schemas/Ospfv3.LsaHeader'
          x-field-uid: 1
        address_prefix:
          description: |-
            The prefix for Inter Area Prefix LSA Address.
          type: string
          format: ipv6
          x-field-uid: 2
        prefix_length:
          description: |-
            The prefix length for the IP address.
          type: integer
          format: uint32
          x-field-uid: 3
        metric:
          description: |-
            The cost of the summary route TOS level 0 and all unspecified levels.
          type: integer
          format: uint32
          x-field-uid: 4
    Ospfv3.InterAreaRouterLsa:
      description: |-
        Contents of OSPFv3 Inter-Area-Router LSA - Type 4.
      type: object
      properties:
        header:
          description: |-
            Contents of the LSA header.
          $ref: '#/components/schemas/Ospfv3.LsaHeader'
          x-field-uid: 1
        metric:
          description: |-
            The cost of the summary route TOS level 0 and all unspecified levels.
          type: integer
          format: uint32
          x-field-uid: 2
        destination_router_id:
          description: |-
            The id of the destination router of LSA.
          type: string
          format: ipv4
          x-field-uid: 3
    Ospfv3.ExternalAsLsa:
      description: |-
        Contents of OSPFv3 AS-External-LSA - Type 5.
      type: object
      properties:
        header:
          description: |-
            Contents of the LSA header.
          $ref: '#/components/schemas/Ospfv3.LsaHeader'
          x-field-uid: 1
        address_prefix:
          description: |-
            The first IPv6 address prefix to be advertised in the LSA.
          type: string
          format: ipv6
          x-field-uid: 2
        prefix_length:
          description: |-
            The length of the IPv6 address prefix, in bits.
          type: integer
          format: uint32
          x-field-uid: 3
        metric:
          description: |-
            The cost metric value for the route to this destination router.
          type: integer
          format: uint32
          x-field-uid: 4
        referenced_ls_type:
          description: |-
            If non-zero, an LSA with this LS type is to be associated with this LSA.
          type: integer
          format: uint32
          x-field-uid: 5
        forwarding_address:
          description: |-
            The IPV6 address where traffic for the advertised destination is forwarded.
          type: string
          format: ipv6
          x-field-uid: 6
        route_tag:
          description: |-
            The optional field may be used to communicate additional information between  AS boundary routers.
          type: string
          format: ipv4
          x-field-uid: 7
    Ospfv3.NssaLsa:
      description: |-
        Contents of OSPFv3 NSSA LSA - Type 7.
      type: object
      properties:
        header:
          description: |-
            Contents of the LSA header.
          $ref: '#/components/schemas/Ospfv3.LsaHeader'
          x-field-uid: 1
        address_prefix:
          description: |-
            The first IPv6 address prefix to be advertised in the LSA.
          type: string
          format: ipv6
          x-field-uid: 2
        prefix_length:
          description: |-
            The length of the IPv6 address prefix, in bits.
          type: integer
          format: uint32
          x-field-uid: 3
        metric:
          description: |-
            The cost metric value for the route to this destination router.
          type: integer
          format: uint32
          x-field-uid: 4
        forwarding_address:
          description: |-
            The IPV6 address where traffic for the advertised destination is forwarded.
          type: string
          format: ipv6
          x-field-uid: 5
        route_tag:
          description: |-
            The optional field may be used to communicate additional information between  AS boundary routers.
          type: string
          format: ipv4
          x-field-uid: 6
    Ospfv3.LinkLsa:
      description: |-
        Contents of OSPFv3 Link LSA - Type 8.
      type: object
      properties:
        header:
          description: |-
            Contents of the LSA header.
          $ref: '#/components/schemas/Ospfv3.LsaHeader'
          x-field-uid: 1
        address_prefix:
          description: |-
            The first IPv6 address prefix to be advertised in the LSA.
          type: string
          format: ipv6
          x-field-uid: 2
        prefix_length:
          description: |-
            The length of the IPv6 address prefix, in bits.
          type: integer
          format: uint32
          x-field-uid: 3
        link_local_address:
          description: |-
            The IPV6 Link Local address for the originating router's interface attached to this link.
          type: string
          format: ipv6
          x-field-uid: 4
    Ospfv3.IntraAreaPrefixLsa:
      description: |-
        Contents of OSPFv3 Intra-Area-Prefix LSA - Type 9.
      type: object
      properties:
        header:
          description: |-
            Contents of the LSA header.
          $ref: '#/components/schemas/Ospfv3.LsaHeader'
          x-field-uid: 1
        address_prefix:
          description: |-
            The first IPv6 address prefix to be advertised in the LSA.
          type: string
          format: ipv6
          x-field-uid: 2
        prefix_length:
          description: |-
            The length of the IPv6 address prefix, in bits.
          type: integer
          format: uint32
          x-field-uid: 3
        metric:
          description: |-
            The cost metric value for the route to this destination router.
          type: integer
          format: uint32
          x-field-uid: 4
    Ospfv3.LsaHeader:
      description: |-
        Attributes in LSA Header.
      type: object
      properties:
        lsa_id:
          description: |-
            LSA ID in the IPv4 format. The Link State ID for the specified LSA type.
          type: string
          format: ipv4
          x-field-uid: 1
        advertising_router_id:
          description: |-
            The router ID (in the IPv4 format) of the router that originated the LSA.
          type: string
          format: ipv4
          x-field-uid: 2
        sequence_number:
          description: |-
            Sequence number to detect old and duplicate LSAs. The greater the sequence number the more recent the LSA.
          type: integer
          format: uint32
          x-field-uid: 3
        age:
          description: |-
            The time since the LSA's generation in seconds.
          type: integer
          format: uint32
          x-field-uid: 4
    Ospfv3.Link:
      description: |-
        Generic attributes used to identify links within OSPFv3.
      type: object
      properties:
        type:
          description: |-
            The data associated with the link type. The value is dependent upon the subtype of the LSA. - point_to_point: The LSA represents a point-to-point connection to another router. - transit: The LSA represents a connection to a transit network. - stub: The LSA represents a connection to a stub network. - virtual: The LSA represents a virtual link connection.
          type: string
          x-enum:
            point_to_point:
              x-field-uid: 1
            transit:
              x-field-uid: 2
            stub:
              x-field-uid: 3
            virtual:
              x-field-uid: 4
          x-field-uid: 1
          enum:
          - point_to_point
          - transit
          - stub
          - virtual
        metric:
          description: |-
            The data associated with the link type. The value is
            dependent upon the subtype of the LSA. When the connection is
            to a stub network it represents the mask; for p2p connections
            that are unnumbered it represents the ifIndex value of the
            router's interface; for all other connections it represents
            the local system's IP address.
          type: integer
          format: uint32
          x-field-uid: 2
    Capture.Request:
      description: |-
        The capture result request to the traffic generator. Stops the port capture on the port_name and returns the capture.
      type: object
      required:
      - port_name
      properties:
        port_name:
          description: |
            The name of a port a capture is started on.

            x-constraint:
            - /components/schemas/Port/properties/name
          type: string
          x-constraint:
          - /components/schemas/Port/properties/name
          x-field-uid: 1
    Pattern.Flow.Ethernet.Dst.Counter:
      description: |-
        mac counter pattern
      type: object
      properties:
        start:
          type: string
          x-field-uid: 1
          default: 00:00:00:00:00:00
          format: mac
        step:
          type: string
          x-field-uid: 2
          default: 00:00:00:00:00:01
          format: mac
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
    Pattern.Flow.Ethernet.Dst.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 47
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 48
          minimum: 1
          maximum: 48
          x-field-uid: 3
    Pattern.Flow.Ethernet.Dst:
      description: |-
        Destination MAC address
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            auto:
              x-field-uid: 1
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: auto
          x-field-uid: 1
          enum:
          - value
          - values
          - auto
          - increment
          - decrement
        value:
          type: string
          x-field-uid: 2
          default: 00:00:00:00:00:00
          format: mac
        values:
          type: array
          items:
            type: string
            format: mac
          x-field-uid: 3
          default:
          - 00:00:00:00:00:00
        auto:
          description: |-
            The OTG implementation can provide a system generated
            value for this property. If the OTG is unable to generate a value
            the default value must be used.
          type: string
          x-field-uid: 4
          default: 00:00:00:00:00:00
          format: mac
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ethernet.Dst.Counter'
          x-field-uid: 6
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ethernet.Dst.Counter'
          x-field-uid: 7
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Ethernet.Dst.MetricTag'
          x-field-uid: 8
    Pattern.Flow.Ethernet.Src.Counter:
      description: |-
        mac counter pattern
      type: object
      properties:
        start:
          type: string
          x-field-uid: 1
          default: 00:00:00:00:00:00
          format: mac
        step:
          type: string
          x-field-uid: 2
          default: 00:00:00:00:00:01
          format: mac
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
    Pattern.Flow.Ethernet.Src.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 47
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 48
          minimum: 1
          maximum: 48
          x-field-uid: 3
    Pattern.Flow.Ethernet.Src:
      description: |-
        Source MAC address
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: string
          x-field-uid: 2
          default: 00:00:00:00:00:00
          format: mac
        values:
          type: array
          items:
            type: string
            format: mac
          x-field-uid: 3
          default:
          - 00:00:00:00:00:00
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ethernet.Src.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ethernet.Src.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Ethernet.Src.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Ethernet.EtherType.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 65535
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
      x-constants:
        ipv4: 2048
        ipv6: 34525
        arp: 2054
        vlan_802_1_q: 33024
        reserved: 65535
    Pattern.Flow.Ethernet.EtherType.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.Ethernet.EtherType:
      description: |-
        Ethernet type
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            auto:
              x-field-uid: 1
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: auto
          x-field-uid: 1
          enum:
          - value
          - values
          - auto
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 65535
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 65535
        auto:
          description: |-
            The OTG implementation can provide a system generated
            value for this property. If the OTG is unable to generate a value
            the default value must be used.
          type: integer
          x-field-uid: 4
          default: 65535
          format: uint32
          maximum: 65535
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ethernet.EtherType.Counter'
          x-field-uid: 6
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ethernet.EtherType.Counter'
          x-field-uid: 7
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Ethernet.EtherType.MetricTag'
          x-field-uid: 8
      x-constants:
        ipv4: 2048
        ipv6: 34525
        arp: 2054
        vlan_802_1_q: 33024
        reserved: 65535
    Pattern.Flow.Ethernet.PfcQueue.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 7
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 7
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 7
    Pattern.Flow.Ethernet.PfcQueue.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 2
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 3
          minimum: 1
          maximum: 3
          x-field-uid: 3
    Pattern.Flow.Ethernet.PfcQueue:
      description: |-
        Priority flow control queue
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 7
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 7
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ethernet.PfcQueue.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ethernet.PfcQueue.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Ethernet.PfcQueue.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Vlan.Priority.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 7
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 7
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 7
    Pattern.Flow.Vlan.Priority.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 2
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 3
          minimum: 1
          maximum: 3
          x-field-uid: 3
    Pattern.Flow.Vlan.Priority:
      description: |-
        Priority code point
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 7
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 7
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Vlan.Priority.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Vlan.Priority.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Vlan.Priority.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Vlan.Cfi.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 1
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 1
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 1
    Pattern.Flow.Vlan.Cfi.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 0
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 1
          minimum: 1
          maximum: 1
          x-field-uid: 3
    Pattern.Flow.Vlan.Cfi:
      description: |-
        Canonical format indicator or drop elegible indicator
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 1
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 1
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Vlan.Cfi.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Vlan.Cfi.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Vlan.Cfi.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Vlan.Id.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 4095
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 4095
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 4095
    Pattern.Flow.Vlan.Id.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 11
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 12
          minimum: 1
          maximum: 12
          x-field-uid: 3
    Pattern.Flow.Vlan.Id:
      description: |-
        Vlan identifier
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 4095
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 4095
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Vlan.Id.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Vlan.Id.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Vlan.Id.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Vlan.Tpid.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 65535
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
      x-constants:
        x8100: 33024
        x88A8: 34984
        x9100: 37120
        x9200: 37376
        x9300: 37632
    Pattern.Flow.Vlan.Tpid.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.Vlan.Tpid:
      description: |-
        Protocol identifier
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 65535
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 65535
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Vlan.Tpid.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Vlan.Tpid.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Vlan.Tpid.MetricTag'
          x-field-uid: 7
      x-constants:
        x8100: 33024
        x88A8: 34984
        x9100: 37120
        x9200: 37376
        x9300: 37632
    Pattern.Flow.Vxlan.Flags.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 8
          format: uint32
          maximum: 255
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 255
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 255
    Pattern.Flow.Vxlan.Flags.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 7
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 8
          minimum: 1
          maximum: 8
          x-field-uid: 3
    Pattern.Flow.Vxlan.Flags:
      description: |-
        Flags field with a bit format of RRRRIRRR. The I flag MUST be set to 1 for a valid vxlan network id (VNI).   The other 7 bits (designated "R") are reserved fields and MUST be  set to zero on transmission and ignored on receipt.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 8
          format: uint32
          maximum: 255
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 255
          x-field-uid: 3
          default:
          - 8
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Vxlan.Flags.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Vxlan.Flags.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Vxlan.Flags.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Vxlan.Reserved0.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 16777215
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 16777215
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 16777215
    Pattern.Flow.Vxlan.Reserved0.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 23
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 24
          minimum: 1
          maximum: 24
          x-field-uid: 3
    Pattern.Flow.Vxlan.Reserved0:
      description: |-
        Reserved field
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 16777215
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 16777215
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Vxlan.Reserved0.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Vxlan.Reserved0.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Vxlan.Reserved0.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Vxlan.Vni.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 16777215
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 16777215
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 16777215
    Pattern.Flow.Vxlan.Vni.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 23
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 24
          minimum: 1
          maximum: 24
          x-field-uid: 3
    Pattern.Flow.Vxlan.Vni:
      description: |-
        VXLAN network id
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            auto:
              x-field-uid: 1
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: auto
          x-field-uid: 1
          enum:
          - value
          - values
          - auto
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 16777215
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 16777215
          x-field-uid: 3
          default:
          - 0
        auto:
          description: |-
            The OTG implementation can provide a system generated
            value for this property. If the OTG is unable to generate a value
            the default value must be used.
          type: integer
          x-field-uid: 4
          default: 0
          format: uint32
          maximum: 16777215
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Vxlan.Vni.Counter'
          x-field-uid: 6
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Vxlan.Vni.Counter'
          x-field-uid: 7
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Vxlan.Vni.MetricTag'
          x-field-uid: 8
    Pattern.Flow.Vxlan.Reserved1.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 255
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 255
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 255
    Pattern.Flow.Vxlan.Reserved1.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 7
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 8
          minimum: 1
          maximum: 8
          x-field-uid: 3
    Pattern.Flow.Vxlan.Reserved1:
      description: |-
        Reserved field
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 255
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 255
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Vxlan.Reserved1.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Vxlan.Reserved1.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Vxlan.Reserved1.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Ipv4.Version.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 4
          format: uint32
          maximum: 15
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 15
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 15
    Pattern.Flow.Ipv4.Version.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 3
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 4
          minimum: 1
          maximum: 4
          x-field-uid: 3
    Pattern.Flow.Ipv4.Version:
      description: |-
        Version
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 4
          format: uint32
          maximum: 15
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 15
          x-field-uid: 3
          default:
          - 4
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Version.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Version.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Ipv4.Version.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Ipv4.HeaderLength.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 5
          format: uint32
          maximum: 15
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 15
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 15
    Pattern.Flow.Ipv4.HeaderLength.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 3
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 4
          minimum: 1
          maximum: 4
          x-field-uid: 3
    Pattern.Flow.Ipv4.HeaderLength:
      description: |-
        Header length
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            auto:
              x-field-uid: 1
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: auto
          x-field-uid: 1
          enum:
          - value
          - values
          - auto
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 5
          format: uint32
          maximum: 15
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 15
          x-field-uid: 3
          default:
          - 5
        auto:
          description: |-
            The OTG implementation can provide a system generated
            value for this property. If the OTG is unable to generate a value
            the default value must be used.
          type: integer
          x-field-uid: 4
          default: 5
          format: uint32
          maximum: 15
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.HeaderLength.Counter'
          x-field-uid: 6
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.HeaderLength.Counter'
          x-field-uid: 7
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Ipv4.HeaderLength.MetricTag'
          x-field-uid: 8
    Pattern.Flow.Ipv4.TotalLength.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 46
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.Ipv4.TotalLength.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.Ipv4.TotalLength:
      description: |-
        Total length
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            auto:
              x-field-uid: 1
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: auto
          x-field-uid: 1
          enum:
          - value
          - values
          - auto
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 46
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 46
        auto:
          description: |-
            The OTG implementation can provide a system generated
            value for this property. If the OTG is unable to generate a value
            the default value must be used.
          type: integer
          x-field-uid: 4
          default: 46
          format: uint32
          maximum: 65535
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.TotalLength.Counter'
          x-field-uid: 6
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.TotalLength.Counter'
          x-field-uid: 7
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Ipv4.TotalLength.MetricTag'
          x-field-uid: 8
    Pattern.Flow.Ipv4.Identification.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.Ipv4.Identification.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.Ipv4.Identification:
      description: |-
        Identification
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Identification.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Identification.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Ipv4.Identification.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Ipv4.Reserved.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 1
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 1
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 1
    Pattern.Flow.Ipv4.Reserved.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 0
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 1
          minimum: 1
          maximum: 1
          x-field-uid: 3
    Pattern.Flow.Ipv4.Reserved:
      description: |-
        Reserved flag.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 1
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 1
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Reserved.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Reserved.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Ipv4.Reserved.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Ipv4.DontFragment.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 1
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 1
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 1
    Pattern.Flow.Ipv4.DontFragment.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 0
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 1
          minimum: 1
          maximum: 1
          x-field-uid: 3
    Pattern.Flow.Ipv4.DontFragment:
      description: |-
        Dont fragment flag If the dont_fragment flag is set and fragmentation is required to route the packet then the packet is dropped.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 1
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 1
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.DontFragment.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.DontFragment.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Ipv4.DontFragment.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Ipv4.MoreFragments.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 1
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 1
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 1
    Pattern.Flow.Ipv4.MoreFragments.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 0
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 1
          minimum: 1
          maximum: 1
          x-field-uid: 3
    Pattern.Flow.Ipv4.MoreFragments:
      description: |-
        More fragments flag
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 1
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 1
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.MoreFragments.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.MoreFragments.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Ipv4.MoreFragments.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Ipv4.FragmentOffset.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 31
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 31
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 31
    Pattern.Flow.Ipv4.FragmentOffset.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 4
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 5
          minimum: 1
          maximum: 5
          x-field-uid: 3
    Pattern.Flow.Ipv4.FragmentOffset:
      description: |-
        Fragment offset
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 31
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 31
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.FragmentOffset.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.FragmentOffset.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Ipv4.FragmentOffset.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Ipv4.TimeToLive.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 64
          format: uint32
          maximum: 255
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 255
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 255
    Pattern.Flow.Ipv4.TimeToLive.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 7
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 8
          minimum: 1
          maximum: 8
          x-field-uid: 3
    Pattern.Flow.Ipv4.TimeToLive:
      description: |-
        Time to live
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 64
          format: uint32
          maximum: 255
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 255
          x-field-uid: 3
          default:
          - 64
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.TimeToLive.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.TimeToLive.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Ipv4.TimeToLive.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Ipv4.Protocol.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 61
          format: uint32
          maximum: 255
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 255
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 255
    Pattern.Flow.Ipv4.Protocol.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 7
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 8
          minimum: 1
          maximum: 8
          x-field-uid: 3
    Pattern.Flow.Ipv4.Protocol:
      description: |-
        Protocol, default is 61 any host internal protocol
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            auto:
              x-field-uid: 1
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: auto
          x-field-uid: 1
          enum:
          - value
          - values
          - auto
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 61
          format: uint32
          maximum: 255
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 255
          x-field-uid: 3
          default:
          - 61
        auto:
          description: |-
            The OTG implementation can provide a system generated
            value for this property. If the OTG is unable to generate a value
            the default value must be used.
          type: integer
          x-field-uid: 4
          default: 61
          format: uint32
          maximum: 255
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Protocol.Counter'
          x-field-uid: 6
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Protocol.Counter'
          x-field-uid: 7
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Ipv4.Protocol.MetricTag'
          x-field-uid: 8
    Pattern.Flow.Ipv4.HeaderChecksum:
      description: |-
        Header checksum
      type: object
      properties:
        choice:
          description: |-
            The type of checksum
          type: string
          x-enum:
            generated:
              x-field-uid: 1
            custom:
              x-field-uid: 2
          default: generated
          x-field-uid: 1
          enum:
          - generated
          - custom
        generated:
          description: |-
            A system generated checksum value
          type: string
          x-enum:
            good:
              x-field-uid: 1
            bad:
              x-field-uid: 2
          default: good
          x-field-uid: 2
          enum:
          - good
          - bad
        custom:
          description: |-
            A custom checksum value
          type: integer
          format: uint32
          maximum: 65535
          x-field-uid: 3
    Pattern.Flow.Ipv4.Src.Counter:
      description: |-
        ipv4 counter pattern
      type: object
      properties:
        start:
          type: string
          x-field-uid: 1
          default: 0.0.0.0
          format: ipv4
        step:
          type: string
          x-field-uid: 2
          default: 0.0.0.1
          format: ipv4
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
    Pattern.Flow.Ipv4.Src.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 31
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 32
          minimum: 1
          maximum: 32
          x-field-uid: 3
    Pattern.Flow.Ipv4.Src.Random:
      description: |-
        ipv4 random pattern
      type: object
      properties:
        min:
          description: |-
            The minimum possible value generated by the random value generator.
          type: string
          x-field-uid: 1
          default: 0.0.0.0
          format: ipv4
        max:
          description: |-
            The maximum possible value generated by the random value generator.
          type: string
          x-field-uid: 2
          default: 255.255.255.255
          format: ipv4
        seed:
          description: |-
            The seed value is used to initialize the random number generator to a deterministic state. If the user provides a seed value of 0, the implementation will generate a sequence of non-deterministic random values. For any other seed value, the sequence of random numbers will be generated in a deterministic manner (specific to the implementation).
          type: integer
          default: 1
          format: uint32
          x-field-uid: 3
        count:
          description: |-
            The total number of values to be generated by the random value generator.
          type: integer
          default: 1
          format: uint32
          x-field-uid: 4
    Pattern.Flow.Ipv4.Src:
      description: |-
        Source address
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
            auto:
              x-field-uid: 1
            random:
              x-field-uid: 6
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
          - auto
          - random
        value:
          type: string
          x-field-uid: 2
          default: 0.0.0.0
          format: ipv4
        values:
          type: array
          items:
            type: string
            format: ipv4
          x-field-uid: 3
          default:
          - 0.0.0.0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Src.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Src.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Ipv4.Src.MetricTag'
          x-field-uid: 7
        auto:
          $ref: '#/components/schemas/Flow.Ipv4.Auto'
          x-field-uid: 8
        random:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Src.Random'
          x-field-uid: 9
    Pattern.Flow.Ipv4.Dst.Counter:
      description: |-
        ipv4 counter pattern
      type: object
      properties:
        start:
          type: string
          x-field-uid: 1
          default: 0.0.0.0
          format: ipv4
        step:
          type: string
          x-field-uid: 2
          default: 0.0.0.1
          format: ipv4
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
    Pattern.Flow.Ipv4.Dst.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 31
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 32
          minimum: 1
          maximum: 32
          x-field-uid: 3
    Pattern.Flow.Ipv4.Dst.Random:
      description: |-
        ipv4 random pattern
      type: object
      properties:
        min:
          description: |-
            The minimum possible value generated by the random value generator.
          type: string
          x-field-uid: 1
          default: 0.0.0.0
          format: ipv4
        max:
          description: |-
            The maximum possible value generated by the random value generator.
          type: string
          x-field-uid: 2
          default: 255.255.255.255
          format: ipv4
        seed:
          description: |-
            The seed value is used to initialize the random number generator to a deterministic state. If the user provides a seed value of 0, the implementation will generate a sequence of non-deterministic random values. For any other seed value, the sequence of random numbers will be generated in a deterministic manner (specific to the implementation).
          type: integer
          default: 1
          format: uint32
          x-field-uid: 3
        count:
          description: |-
            The total number of values to be generated by the random value generator.
          type: integer
          default: 1
          format: uint32
          x-field-uid: 4
    Pattern.Flow.Ipv4.Dst:
      description: |-
        Destination address
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
            auto:
              x-field-uid: 1
            random:
              x-field-uid: 6
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
          - auto
          - random
        value:
          type: string
          x-field-uid: 2
          default: 0.0.0.0
          format: ipv4
        values:
          type: array
          items:
            type: string
            format: ipv4
          x-field-uid: 3
          default:
          - 0.0.0.0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Dst.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Dst.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Ipv4.Dst.MetricTag'
          x-field-uid: 7
        auto:
          $ref: '#/components/schemas/Flow.Ipv4.Auto'
          x-field-uid: 8
        random:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Dst.Random'
          x-field-uid: 9
    Pattern.Flow.Ipv4Options.Custom.Type.CopiedFlag.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 1
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 1
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 1
      x-constants:
        not_copied: 0
        copied: 1
    Pattern.Flow.Ipv4Options.Custom.Type.CopiedFlag:
      description: |-
        This flag indicates this option is copied to all fragments on fragmentations.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 1
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 1
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4Options.Custom.Type.CopiedFlag.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4Options.Custom.Type.CopiedFlag.Counter'
          x-field-uid: 6
      x-constants:
        not_copied: 0
        copied: 1
    Pattern.Flow.Ipv4Options.Custom.Type.OptionClass.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 3
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 3
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 3
      x-constants:
        control: 0
        reserved: 3
        debugging_measurement: 2
    Pattern.Flow.Ipv4Options.Custom.Type.OptionClass:
      description: |-
        Option class [Ref:https://www.iana.org/assignments/ip-parameters/ip-parameters.xhtml#ip-parameters-1].
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 3
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 3
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4Options.Custom.Type.OptionClass.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4Options.Custom.Type.OptionClass.Counter'
          x-field-uid: 6
      x-constants:
        control: 0
        reserved: 3
        debugging_measurement: 2
    Pattern.Flow.Ipv4Options.Custom.Type.OptionNumber.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 31
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 31
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 31
    Pattern.Flow.Ipv4Options.Custom.Type.OptionNumber:
      description: |-
        Option Number [Ref:https://www.iana.org/assignments/ip-parameters/ip-parameters.xhtml#ip-parameters-1].
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 31
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 31
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4Options.Custom.Type.OptionNumber.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4Options.Custom.Type.OptionNumber.Counter'
          x-field-uid: 6
    Pattern.Flow.Ipv4.Priority.Raw.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 255
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 255
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 255
    Pattern.Flow.Ipv4.Priority.Raw.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 7
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 8
          minimum: 1
          maximum: 8
          x-field-uid: 3
    Pattern.Flow.Ipv4.Priority.Raw:
      description: |-
        Raw priority
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 255
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 255
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Priority.Raw.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Priority.Raw.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Ipv4.Priority.Raw.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Ipv4.Dscp.Phb.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 63
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 63
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 63
      x-constants:
        default: 0
        cs1: 8
        cs2: 16
        cs3: 24
        cs4: 32
        cs5: 40
        cs6: 48
        cs7: 56
        af11: 10
        af12: 12
        af13: 14
        af21: 18
        af22: 20
        af23: 22
        af31: 26
        af32: 28
        af33: 30
        af41: 34
        af42: 36
        af43: 38
        ef46: 46
    Pattern.Flow.Ipv4.Dscp.Phb.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 5
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 6
          minimum: 1
          maximum: 6
          x-field-uid: 3
    Pattern.Flow.Ipv4.Dscp.Phb:
      description: |-
        Per hop behavior
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 63
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 63
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Dscp.Phb.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Dscp.Phb.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Ipv4.Dscp.Phb.MetricTag'
          x-field-uid: 7
      x-constants:
        default: 0
        cs1: 8
        cs2: 16
        cs3: 24
        cs4: 32
        cs5: 40
        cs6: 48
        cs7: 56
        af11: 10
        af12: 12
        af13: 14
        af21: 18
        af22: 20
        af23: 22
        af31: 26
        af32: 28
        af33: 30
        af41: 34
        af42: 36
        af43: 38
        ef46: 46
    Pattern.Flow.Ipv4.Dscp.Ecn.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 3
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 3
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 3
      x-constants:
        non_capable: 0
        capable_transport_0: 1
        capable_transport_1: 2
        congestion_encountered: 3
    Pattern.Flow.Ipv4.Dscp.Ecn.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 1
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 2
          minimum: 1
          maximum: 2
          x-field-uid: 3
    Pattern.Flow.Ipv4.Dscp.Ecn:
      description: |-
        Explicit congestion notification
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 3
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 3
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Dscp.Ecn.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Dscp.Ecn.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Ipv4.Dscp.Ecn.MetricTag'
          x-field-uid: 7
      x-constants:
        non_capable: 0
        capable_transport_0: 1
        capable_transport_1: 2
        congestion_encountered: 3
    Pattern.Flow.Ipv4.Tos.Precedence.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 7
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 7
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 7
      x-constants:
        routine: 0
        priority: 1
        immediate: 2
        flash: 3
        flash_override: 4
        critic_ecp: 5
        internetwork_control: 6
        network_control: 7
    Pattern.Flow.Ipv4.Tos.Precedence.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 2
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 3
          minimum: 1
          maximum: 3
          x-field-uid: 3
    Pattern.Flow.Ipv4.Tos.Precedence:
      description: |-
        Precedence
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 7
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 7
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Precedence.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Precedence.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Precedence.MetricTag'
          x-field-uid: 7
      x-constants:
        routine: 0
        priority: 1
        immediate: 2
        flash: 3
        flash_override: 4
        critic_ecp: 5
        internetwork_control: 6
        network_control: 7
    Pattern.Flow.Ipv4.Tos.Delay.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 1
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 1
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 1
      x-constants:
        normal: 0
        low: 1
    Pattern.Flow.Ipv4.Tos.Delay.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 0
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 1
          minimum: 1
          maximum: 1
          x-field-uid: 3
    Pattern.Flow.Ipv4.Tos.Delay:
      description: |-
        Delay
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 1
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 1
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Delay.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Delay.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Delay.MetricTag'
          x-field-uid: 7
      x-constants:
        normal: 0
        low: 1
    Pattern.Flow.Ipv4.Tos.Throughput.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 1
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 1
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 1
      x-constants:
        normal: 0
        low: 1
    Pattern.Flow.Ipv4.Tos.Throughput.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 0
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 1
          minimum: 1
          maximum: 1
          x-field-uid: 3
    Pattern.Flow.Ipv4.Tos.Throughput:
      description: |-
        Throughput
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 1
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 1
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Throughput.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Throughput.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Throughput.MetricTag'
          x-field-uid: 7
      x-constants:
        normal: 0
        low: 1
    Pattern.Flow.Ipv4.Tos.Reliability.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 1
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 1
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 1
      x-constants:
        normal: 0
        low: 1
    Pattern.Flow.Ipv4.Tos.Reliability.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 0
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 1
          minimum: 1
          maximum: 1
          x-field-uid: 3
    Pattern.Flow.Ipv4.Tos.Reliability:
      description: |-
        Reliability
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 1
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 1
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Reliability.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Reliability.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Reliability.MetricTag'
          x-field-uid: 7
      x-constants:
        normal: 0
        low: 1
    Pattern.Flow.Ipv4.Tos.Monetary.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 1
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 1
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 1
      x-constants:
        normal: 0
        low: 1
    Pattern.Flow.Ipv4.Tos.Monetary.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 0
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 1
          minimum: 1
          maximum: 1
          x-field-uid: 3
    Pattern.Flow.Ipv4.Tos.Monetary:
      description: |-
        Monetary
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 1
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 1
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Monetary.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Monetary.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Monetary.MetricTag'
          x-field-uid: 7
      x-constants:
        normal: 0
        low: 1
    Pattern.Flow.Ipv4.Tos.Unused.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 1
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 1
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 1
    Pattern.Flow.Ipv4.Tos.Unused.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 0
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 1
          minimum: 1
          maximum: 1
          x-field-uid: 3
    Pattern.Flow.Ipv4.Tos.Unused:
      description: |-
        Unused
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 1
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 1
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Unused.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Unused.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Unused.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Ipv6.Version.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 6
          format: uint32
          maximum: 15
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 15
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 15
    Pattern.Flow.Ipv6.Version.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 3
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 4
          minimum: 1
          maximum: 4
          x-field-uid: 3
    Pattern.Flow.Ipv6.Version:
      description: |-
        Version number
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 6
          format: uint32
          maximum: 15
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 15
          x-field-uid: 3
          default:
          - 6
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ipv6.Version.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ipv6.Version.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Ipv6.Version.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Ipv6.TrafficClass.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 255
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 255
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 255
    Pattern.Flow.Ipv6.TrafficClass.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 7
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 8
          minimum: 1
          maximum: 8
          x-field-uid: 3
    Pattern.Flow.Ipv6.TrafficClass:
      description: |-
        Traffic class
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 255
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 255
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ipv6.TrafficClass.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ipv6.TrafficClass.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Ipv6.TrafficClass.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Ipv6.FlowLabel.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 1048575
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 1048575
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 1048575
    Pattern.Flow.Ipv6.FlowLabel.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 19
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 20
          minimum: 1
          maximum: 20
          x-field-uid: 3
    Pattern.Flow.Ipv6.FlowLabel.Random:
      description: |-
        integer random pattern
      type: object
      properties:
        min:
          description: |-
            The minimum possible value generated by the random value generator.
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 1048575
        max:
          description: |-
            The maximum possible value generated by the random value generator.
          type: integer
          x-field-uid: 2
          default: 1048575
          format: uint32
          maximum: 1048575
        seed:
          description: |-
            The seed value is used to initialize the random number generator to a deterministic state. If the user provides a seed value of 0, the implementation will generate a sequence of non-deterministic random values. For any other seed value, the sequence of random numbers will be generated in a deterministic manner (specific to the implementation).
          type: integer
          default: 1
          format: uint32
          x-field-uid: 3
        count:
          description: |-
            The total number of values to be generated by the random value generator.
          type: integer
          default: 1
          format: uint32
          x-field-uid: 4
    Pattern.Flow.Ipv6.FlowLabel:
      description: |-
        Flow label
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
            random:
              x-field-uid: 6
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
          - random
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 1048575
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 1048575
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ipv6.FlowLabel.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ipv6.FlowLabel.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Ipv6.FlowLabel.MetricTag'
          x-field-uid: 7
        random:
          $ref: '#/components/schemas/Pattern.Flow.Ipv6.FlowLabel.Random'
          x-field-uid: 8
    Pattern.Flow.Ipv6.PayloadLength.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.Ipv6.PayloadLength.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.Ipv6.PayloadLength:
      description: |-
        Payload length
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            auto:
              x-field-uid: 1
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: auto
          x-field-uid: 1
          enum:
          - value
          - values
          - auto
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 0
        auto:
          description: |-
            The OTG implementation can provide a system generated
            value for this property. If the OTG is unable to generate a value
            the default value must be used.
          type: integer
          x-field-uid: 4
          default: 0
          format: uint32
          maximum: 65535
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ipv6.PayloadLength.Counter'
          x-field-uid: 6
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ipv6.PayloadLength.Counter'
          x-field-uid: 7
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Ipv6.PayloadLength.MetricTag'
          x-field-uid: 8
    Pattern.Flow.Ipv6.NextHeader.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 59
          format: uint32
          maximum: 255
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 255
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 255
      x-constants:
        hopopt: 0
        icmp: 1
        igmp: 2
        ggp: 3
        ip_in_ip: 4
        st: 5
        tcp: 6
        cpt: 7
        egp: 8
        igp: 9
        no_next_header: 59
    Pattern.Flow.Ipv6.NextHeader.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 7
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 8
          minimum: 1
          maximum: 8
          x-field-uid: 3
    Pattern.Flow.Ipv6.NextHeader:
      description: |-
        Next header
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            auto:
              x-field-uid: 1
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: auto
          x-field-uid: 1
          enum:
          - value
          - values
          - auto
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 59
          format: uint32
          maximum: 255
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 255
          x-field-uid: 3
          default:
          - 59
        auto:
          description: |-
            The OTG implementation can provide a system generated
            value for this property. If the OTG is unable to generate a value
            the default value must be used.
          type: integer
          x-field-uid: 4
          default: 59
          format: uint32
          maximum: 255
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ipv6.NextHeader.Counter'
          x-field-uid: 6
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ipv6.NextHeader.Counter'
          x-field-uid: 7
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Ipv6.NextHeader.MetricTag'
          x-field-uid: 8
      x-constants:
        hopopt: 0
        icmp: 1
        igmp: 2
        ggp: 3
        ip_in_ip: 4
        st: 5
        tcp: 6
        cpt: 7
        egp: 8
        igp: 9
        no_next_header: 59
    Pattern.Flow.Ipv6.HopLimit.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 64
          format: uint32
          maximum: 255
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 255
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 255
    Pattern.Flow.Ipv6.HopLimit.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 7
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 8
          minimum: 1
          maximum: 8
          x-field-uid: 3
    Pattern.Flow.Ipv6.HopLimit:
      description: |-
        Hop limit
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 64
          format: uint32
          maximum: 255
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 255
          x-field-uid: 3
          default:
          - 64
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ipv6.HopLimit.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ipv6.HopLimit.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Ipv6.HopLimit.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Ipv6.Src.Counter:
      description: |-
        ipv6 counter pattern
      type: object
      properties:
        start:
          type: string
          x-field-uid: 1
          default: ::0
          format: ipv6
        step:
          type: string
          x-field-uid: 2
          default: ::1
          format: ipv6
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
    Pattern.Flow.Ipv6.Src.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 127
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 128
          minimum: 1
          maximum: 128
          x-field-uid: 3
    Pattern.Flow.Ipv6.Src:
      description: |-
        Source address
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
            auto:
              x-field-uid: 1
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
          - auto
        value:
          type: string
          x-field-uid: 2
          default: ::0
          format: ipv6
        values:
          type: array
          items:
            type: string
            format: ipv6
          x-field-uid: 3
          default:
          - ::0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ipv6.Src.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ipv6.Src.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Ipv6.Src.MetricTag'
          x-field-uid: 7
        auto:
          $ref: '#/components/schemas/Flow.Ipv6.Auto'
          x-field-uid: 8
    Pattern.Flow.Ipv6.Dst.Counter:
      description: |-
        ipv6 counter pattern
      type: object
      properties:
        start:
          type: string
          x-field-uid: 1
          default: ::0
          format: ipv6
        step:
          type: string
          x-field-uid: 2
          default: ::1
          format: ipv6
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
    Pattern.Flow.Ipv6.Dst.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 127
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 128
          minimum: 1
          maximum: 128
          x-field-uid: 3
    Pattern.Flow.Ipv6.Dst:
      description: |-
        Destination address
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
            auto:
              x-field-uid: 1
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
          - auto
        value:
          type: string
          x-field-uid: 2
          default: ::0
          format: ipv6
        values:
          type: array
          items:
            type: string
            format: ipv6
          x-field-uid: 3
          default:
          - ::0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ipv6.Dst.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ipv6.Dst.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Ipv6.Dst.MetricTag'
          x-field-uid: 7
        auto:
          $ref: '#/components/schemas/Flow.Ipv6.Auto'
          x-field-uid: 8
    Pattern.Flow.PfcPause.Dst.Counter:
      description: |-
        mac counter pattern
      type: object
      properties:
        start:
          type: string
          x-field-uid: 1
          default: 01:80:c2:00:00:01
          format: mac
        step:
          type: string
          x-field-uid: 2
          default: 00:00:00:00:00:01
          format: mac
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
    Pattern.Flow.PfcPause.Dst.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 47
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 48
          minimum: 1
          maximum: 48
          x-field-uid: 3
    Pattern.Flow.PfcPause.Dst:
      description: |-
        Destination MAC address
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: string
          x-field-uid: 2
          default: 01:80:c2:00:00:01
          format: mac
        values:
          type: array
          items:
            type: string
            format: mac
          x-field-uid: 3
          default:
          - 01:80:c2:00:00:01
        increment:
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.Dst.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.Dst.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.PfcPause.Dst.MetricTag'
          x-field-uid: 7
    Pattern.Flow.PfcPause.Src.Counter:
      description: |-
        mac counter pattern
      type: object
      properties:
        start:
          type: string
          x-field-uid: 1
          default: 00:00:00:00:00:00
          format: mac
        step:
          type: string
          x-field-uid: 2
          default: 00:00:00:00:00:01
          format: mac
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
    Pattern.Flow.PfcPause.Src.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 47
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 48
          minimum: 1
          maximum: 48
          x-field-uid: 3
    Pattern.Flow.PfcPause.Src:
      description: |-
        Source MAC address
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: string
          x-field-uid: 2
          default: 00:00:00:00:00:00
          format: mac
        values:
          type: array
          items:
            type: string
            format: mac
          x-field-uid: 3
          default:
          - 00:00:00:00:00:00
        increment:
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.Src.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.Src.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.PfcPause.Src.MetricTag'
          x-field-uid: 7
    Pattern.Flow.PfcPause.EtherType.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 34824
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
      x-constants:
        x8808: 34824
    Pattern.Flow.PfcPause.EtherType.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.PfcPause.EtherType:
      description: |-
        Ethernet type
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 34824
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 34824
        increment:
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.EtherType.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.EtherType.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.PfcPause.EtherType.MetricTag'
          x-field-uid: 7
      x-constants:
        x8808: 34824
    Pattern.Flow.PfcPause.ControlOpCode.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 257
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.PfcPause.ControlOpCode.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.PfcPause.ControlOpCode:
      description: |-
        Control operation code
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 257
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 257
        increment:
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.ControlOpCode.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.ControlOpCode.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.PfcPause.ControlOpCode.MetricTag'
          x-field-uid: 7
    Pattern.Flow.PfcPause.ClassEnableVector.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.PfcPause.ClassEnableVector.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.PfcPause.ClassEnableVector:
      description: |-
        Destination
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.ClassEnableVector.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.ClassEnableVector.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.PfcPause.ClassEnableVector.MetricTag'
          x-field-uid: 7
    Pattern.Flow.PfcPause.PauseClass0.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.PfcPause.PauseClass0.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.PfcPause.PauseClass0:
      description: |-
        Pause class 0
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass0.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass0.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass0.MetricTag'
          x-field-uid: 7
    Pattern.Flow.PfcPause.PauseClass1.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.PfcPause.PauseClass1.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.PfcPause.PauseClass1:
      description: |-
        Pause class 1
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass1.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass1.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass1.MetricTag'
          x-field-uid: 7
    Pattern.Flow.PfcPause.PauseClass2.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.PfcPause.PauseClass2.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.PfcPause.PauseClass2:
      description: |-
        Pause class 2
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass2.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass2.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass2.MetricTag'
          x-field-uid: 7
    Pattern.Flow.PfcPause.PauseClass3.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.PfcPause.PauseClass3.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.PfcPause.PauseClass3:
      description: |-
        Pause class 3
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass3.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass3.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass3.MetricTag'
          x-field-uid: 7
    Pattern.Flow.PfcPause.PauseClass4.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.PfcPause.PauseClass4.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.PfcPause.PauseClass4:
      description: |-
        Pause class 4
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass4.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass4.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass4.MetricTag'
          x-field-uid: 7
    Pattern.Flow.PfcPause.PauseClass5.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.PfcPause.PauseClass5.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.PfcPause.PauseClass5:
      description: |-
        Pause class 5
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass5.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass5.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass5.MetricTag'
          x-field-uid: 7
    Pattern.Flow.PfcPause.PauseClass6.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.PfcPause.PauseClass6.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.PfcPause.PauseClass6:
      description: |-
        Pause class 6
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass6.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass6.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass6.MetricTag'
          x-field-uid: 7
    Pattern.Flow.PfcPause.PauseClass7.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.PfcPause.PauseClass7.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.PfcPause.PauseClass7:
      description: |-
        Pause class 7
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass7.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass7.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass7.MetricTag'
          x-field-uid: 7
    Pattern.Flow.EthernetPause.Dst.Counter:
      description: |-
        mac counter pattern
      type: object
      properties:
        start:
          type: string
          x-field-uid: 1
          default: 01:80:c2:00:00:01
          format: mac
        step:
          type: string
          x-field-uid: 2
          default: 00:00:00:00:00:01
          format: mac
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
    Pattern.Flow.EthernetPause.Dst.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 47
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 48
          minimum: 1
          maximum: 48
          x-field-uid: 3
    Pattern.Flow.EthernetPause.Dst:
      description: |-
        Destination MAC address
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: string
          x-field-uid: 2
          default: 01:80:c2:00:00:01
          format: mac
        values:
          type: array
          items:
            type: string
            format: mac
          x-field-uid: 3
          default:
          - 01:80:c2:00:00:01
        increment:
          $ref: '#/components/schemas/Pattern.Flow.EthernetPause.Dst.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.EthernetPause.Dst.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.EthernetPause.Dst.MetricTag'
          x-field-uid: 7
    Pattern.Flow.EthernetPause.Src.Counter:
      description: |-
        mac counter pattern
      type: object
      properties:
        start:
          type: string
          x-field-uid: 1
          default: 00:00:00:00:00:00
          format: mac
        step:
          type: string
          x-field-uid: 2
          default: 00:00:00:00:00:01
          format: mac
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
    Pattern.Flow.EthernetPause.Src.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 47
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 48
          minimum: 1
          maximum: 48
          x-field-uid: 3
    Pattern.Flow.EthernetPause.Src:
      description: |-
        Source MAC address
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: string
          x-field-uid: 2
          default: 00:00:00:00:00:00
          format: mac
        values:
          type: array
          items:
            type: string
            format: mac
          x-field-uid: 3
          default:
          - 00:00:00:00:00:00
        increment:
          $ref: '#/components/schemas/Pattern.Flow.EthernetPause.Src.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.EthernetPause.Src.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.EthernetPause.Src.MetricTag'
          x-field-uid: 7
    Pattern.Flow.EthernetPause.EtherType.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 34824
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
      x-constants:
        flow_control: 34824
    Pattern.Flow.EthernetPause.EtherType.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.EthernetPause.EtherType:
      description: |-
        Ethernet type
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 34824
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 34824
        increment:
          $ref: '#/components/schemas/Pattern.Flow.EthernetPause.EtherType.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.EthernetPause.EtherType.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.EthernetPause.EtherType.MetricTag'
          x-field-uid: 7
      x-constants:
        flow_control: 34824
    Pattern.Flow.EthernetPause.ControlOpCode.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 1
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.EthernetPause.ControlOpCode.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.EthernetPause.ControlOpCode:
      description: |-
        Control operation code
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 1
        increment:
          $ref: '#/components/schemas/Pattern.Flow.EthernetPause.ControlOpCode.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.EthernetPause.ControlOpCode.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.EthernetPause.ControlOpCode.MetricTag'
          x-field-uid: 7
    Pattern.Flow.EthernetPause.Time.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.EthernetPause.Time.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.EthernetPause.Time:
      description: |-
        Time
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.EthernetPause.Time.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.EthernetPause.Time.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.EthernetPause.Time.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Tcp.SrcPort.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.Tcp.SrcPort.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.Tcp.SrcPort.Random:
      description: |-
        integer random pattern
      type: object
      properties:
        min:
          description: |-
            The minimum possible value generated by the random value generator.
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 65535
        max:
          description: |-
            The maximum possible value generated by the random value generator.
          type: integer
          x-field-uid: 2
          default: 65535
          format: uint32
          maximum: 65535
        seed:
          description: |-
            The seed value is used to initialize the random number generator to a deterministic state. If the user provides a seed value of 0, the implementation will generate a sequence of non-deterministic random values. For any other seed value, the sequence of random numbers will be generated in a deterministic manner (specific to the implementation).
          type: integer
          default: 1
          format: uint32
          x-field-uid: 3
        count:
          description: |-
            The total number of values to be generated by the random value generator.
          type: integer
          default: 1
          format: uint32
          x-field-uid: 4
    Pattern.Flow.Tcp.SrcPort:
      description: |-
        Source port
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
            random:
              x-field-uid: 6
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
          - random
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Tcp.SrcPort.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Tcp.SrcPort.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Tcp.SrcPort.MetricTag'
          x-field-uid: 7
        random:
          $ref: '#/components/schemas/Pattern.Flow.Tcp.SrcPort.Random'
          x-field-uid: 8
    Pattern.Flow.Tcp.DstPort.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.Tcp.DstPort.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.Tcp.DstPort.Random:
      description: |-
        integer random pattern
      type: object
      properties:
        min:
          description: |-
            The minimum possible value generated by the random value generator.
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 65535
        max:
          description: |-
            The maximum possible value generated by the random value generator.
          type: integer
          x-field-uid: 2
          default: 65535
          format: uint32
          maximum: 65535
        seed:
          description: |-
            The seed value is used to initialize the random number generator to a deterministic state. If the user provides a seed value of 0, the implementation will generate a sequence of non-deterministic random values. For any other seed value, the sequence of random numbers will be generated in a deterministic manner (specific to the implementation).
          type: integer
          default: 1
          format: uint32
          x-field-uid: 3
        count:
          description: |-
            The total number of values to be generated by the random value generator.
          type: integer
          default: 1
          format: uint32
          x-field-uid: 4
    Pattern.Flow.Tcp.DstPort:
      description: |-
        Destination port
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
            random:
              x-field-uid: 6
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
          - random
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Tcp.DstPort.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Tcp.DstPort.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Tcp.DstPort.MetricTag'
          x-field-uid: 7
        random:
          $ref: '#/components/schemas/Pattern.Flow.Tcp.DstPort.Random'
          x-field-uid: 8
    Pattern.Flow.Tcp.SeqNum.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
    Pattern.Flow.Tcp.SeqNum.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 31
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 32
          minimum: 1
          maximum: 32
          x-field-uid: 3
    Pattern.Flow.Tcp.SeqNum:
      description: |-
        Sequence number
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
        values:
          type: array
          items:
            type: integer
            format: uint32
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Tcp.SeqNum.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Tcp.SeqNum.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Tcp.SeqNum.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Tcp.AckNum.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
    Pattern.Flow.Tcp.AckNum.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 31
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 32
          minimum: 1
          maximum: 32
          x-field-uid: 3
    Pattern.Flow.Tcp.AckNum:
      description: |-
        Acknowledgement number
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
        values:
          type: array
          items:
            type: integer
            format: uint32
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Tcp.AckNum.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Tcp.AckNum.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Tcp.AckNum.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Tcp.DataOffset.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 15
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 15
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 15
    Pattern.Flow.Tcp.DataOffset.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 3
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 4
          minimum: 1
          maximum: 4
          x-field-uid: 3
    Pattern.Flow.Tcp.DataOffset:
      description: |-
        The number of 32 bit words in the TCP header. This indicates where the data begins.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 15
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 15
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Tcp.DataOffset.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Tcp.DataOffset.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Tcp.DataOffset.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Tcp.EcnNs.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 1
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 1
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 1
    Pattern.Flow.Tcp.EcnNs.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 0
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 1
          minimum: 1
          maximum: 1
          x-field-uid: 3
    Pattern.Flow.Tcp.EcnNs:
      description: |-
        Explicit congestion notification, concealment protection.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 1
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 1
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Tcp.EcnNs.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Tcp.EcnNs.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Tcp.EcnNs.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Tcp.EcnCwr.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 1
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 1
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 1
    Pattern.Flow.Tcp.EcnCwr.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 0
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 1
          minimum: 1
          maximum: 1
          x-field-uid: 3
    Pattern.Flow.Tcp.EcnCwr:
      description: |-
        Explicit congestion notification, congestion window reduced.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 1
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 1
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Tcp.EcnCwr.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Tcp.EcnCwr.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Tcp.EcnCwr.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Tcp.EcnEcho.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 1
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 1
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 1
    Pattern.Flow.Tcp.EcnEcho.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 0
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 1
          minimum: 1
          maximum: 1
          x-field-uid: 3
    Pattern.Flow.Tcp.EcnEcho:
      description: |-
        Explicit congestion notification, echo. 1 indicates the peer is ecn capable. 0 indicates that a packet with ipv4.ecn = 11 in the ip header was  received during normal transmission.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 1
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 1
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Tcp.EcnEcho.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Tcp.EcnEcho.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Tcp.EcnEcho.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Tcp.CtlUrg.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 1
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 1
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 1
    Pattern.Flow.Tcp.CtlUrg.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 0
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 1
          minimum: 1
          maximum: 1
          x-field-uid: 3
    Pattern.Flow.Tcp.CtlUrg:
      description: |-
        A value of 1 indicates that the urgent pointer field is significant.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 1
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 1
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlUrg.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlUrg.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlUrg.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Tcp.CtlAck.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 1
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 1
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 1
    Pattern.Flow.Tcp.CtlAck.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 0
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 1
          minimum: 1
          maximum: 1
          x-field-uid: 3
    Pattern.Flow.Tcp.CtlAck:
      description: |-
        A value of 1 indicates that the ackknowledgment field is significant.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 1
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 1
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlAck.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlAck.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlAck.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Tcp.CtlPsh.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 1
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 1
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 1
    Pattern.Flow.Tcp.CtlPsh.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 0
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 1
          minimum: 1
          maximum: 1
          x-field-uid: 3
    Pattern.Flow.Tcp.CtlPsh:
      description: "Asks to push the buffered data to the receiving application. "
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 1
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 1
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlPsh.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlPsh.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlPsh.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Tcp.CtlRst.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 1
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 1
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 1
    Pattern.Flow.Tcp.CtlRst.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 0
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 1
          minimum: 1
          maximum: 1
          x-field-uid: 3
    Pattern.Flow.Tcp.CtlRst:
      description: "Reset the connection. "
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 1
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 1
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlRst.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlRst.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlRst.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Tcp.CtlSyn.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 1
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 1
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 1
    Pattern.Flow.Tcp.CtlSyn.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 0
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 1
          minimum: 1
          maximum: 1
          x-field-uid: 3
    Pattern.Flow.Tcp.CtlSyn:
      description: "Synchronize sequenece numbers. "
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 1
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 1
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlSyn.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlSyn.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlSyn.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Tcp.CtlFin.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 1
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 1
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 1
    Pattern.Flow.Tcp.CtlFin.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 0
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 1
          minimum: 1
          maximum: 1
          x-field-uid: 3
    Pattern.Flow.Tcp.CtlFin:
      description: "Last packet from the sender. "
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 1
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 1
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlFin.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlFin.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlFin.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Tcp.Window.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.Tcp.Window.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.Tcp.Window:
      description: |-
        Tcp connection window.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Tcp.Window.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Tcp.Window.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Tcp.Window.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Tcp.Checksum:
      description: |-
        The one's complement of the one's complement sum of all 16 bit words in header and text.  An all-zero value means that no checksum will be transmitted.   While computing the checksum, the checksum field itself is replaced with zeros.
      type: object
      properties:
        choice:
          description: |-
            The type of checksum
          type: string
          x-enum:
            generated:
              x-field-uid: 1
            custom:
              x-field-uid: 2
          default: generated
          x-field-uid: 1
          enum:
          - generated
          - custom
        generated:
          description: |-
            A system generated checksum value
          type: string
          x-enum:
            good:
              x-field-uid: 1
            bad:
              x-field-uid: 2
          default: good
          x-field-uid: 2
          enum:
          - good
          - bad
        custom:
          description: |-
            A custom checksum value
          type: integer
          format: uint32
          maximum: 65535
          x-field-uid: 3
    Pattern.Flow.Udp.SrcPort.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.Udp.SrcPort.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.Udp.SrcPort.Random:
      description: |-
        integer random pattern
      type: object
      properties:
        min:
          description: |-
            The minimum possible value generated by the random value generator.
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 65535
        max:
          description: |-
            The maximum possible value generated by the random value generator.
          type: integer
          x-field-uid: 2
          default: 65535
          format: uint32
          maximum: 65535
        seed:
          description: |-
            The seed value is used to initialize the random number generator to a deterministic state. If the user provides a seed value of 0, the implementation will generate a sequence of non-deterministic random values. For any other seed value, the sequence of random numbers will be generated in a deterministic manner (specific to the implementation).
          type: integer
          default: 1
          format: uint32
          x-field-uid: 3
        count:
          description: |-
            The total number of values to be generated by the random value generator.
          type: integer
          default: 1
          format: uint32
          x-field-uid: 4
    Pattern.Flow.Udp.SrcPort:
      description: |-
        Source port
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
            random:
              x-field-uid: 6
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
          - random
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Udp.SrcPort.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Udp.SrcPort.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Udp.SrcPort.MetricTag'
          x-field-uid: 7
        random:
          $ref: '#/components/schemas/Pattern.Flow.Udp.SrcPort.Random'
          x-field-uid: 8
    Pattern.Flow.Udp.DstPort.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.Udp.DstPort.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.Udp.DstPort.Random:
      description: |-
        integer random pattern
      type: object
      properties:
        min:
          description: |-
            The minimum possible value generated by the random value generator.
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 65535
        max:
          description: |-
            The maximum possible value generated by the random value generator.
          type: integer
          x-field-uid: 2
          default: 65535
          format: uint32
          maximum: 65535
        seed:
          description: |-
            The seed value is used to initialize the random number generator to a deterministic state. If the user provides a seed value of 0, the implementation will generate a sequence of non-deterministic random values. For any other seed value, the sequence of random numbers will be generated in a deterministic manner (specific to the implementation).
          type: integer
          default: 1
          format: uint32
          x-field-uid: 3
        count:
          description: |-
            The total number of values to be generated by the random value generator.
          type: integer
          default: 1
          format: uint32
          x-field-uid: 4
    Pattern.Flow.Udp.DstPort:
      description: |-
        Destination port
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
            random:
              x-field-uid: 6
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
          - random
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Udp.DstPort.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Udp.DstPort.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Udp.DstPort.MetricTag'
          x-field-uid: 7
        random:
          $ref: '#/components/schemas/Pattern.Flow.Udp.DstPort.Random'
          x-field-uid: 8
    Pattern.Flow.Udp.Length.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.Udp.Length.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.Udp.Length:
      description: |-
        Length
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Udp.Length.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Udp.Length.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Udp.Length.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Udp.Checksum:
      description: |-
        UDP checksum
      type: object
      properties:
        choice:
          description: |-
            The type of checksum
          type: string
          x-enum:
            generated:
              x-field-uid: 1
            custom:
              x-field-uid: 2
          default: generated
          x-field-uid: 1
          enum:
          - generated
          - custom
        generated:
          description: |-
            A system generated checksum value
          type: string
          x-enum:
            good:
              x-field-uid: 1
            bad:
              x-field-uid: 2
          default: good
          x-field-uid: 2
          enum:
          - good
          - bad
        custom:
          description: |-
            A custom checksum value
          type: integer
          format: uint32
          maximum: 65535
          x-field-uid: 3
    Pattern.Flow.Gre.ChecksumPresent.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 1
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 1
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 1
    Pattern.Flow.Gre.ChecksumPresent.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 0
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 1
          minimum: 1
          maximum: 1
          x-field-uid: 3
    Pattern.Flow.Gre.ChecksumPresent:
      description: |-
        Checksum present bit
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 1
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 1
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Gre.ChecksumPresent.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Gre.ChecksumPresent.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Gre.ChecksumPresent.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Gre.Reserved0.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 4095
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 4095
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 4095
    Pattern.Flow.Gre.Reserved0.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 11
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 12
          minimum: 1
          maximum: 12
          x-field-uid: 3
    Pattern.Flow.Gre.Reserved0:
      description: |-
        Reserved bits
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 4095
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 4095
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Gre.Reserved0.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Gre.Reserved0.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Gre.Reserved0.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Gre.Version.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 7
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 7
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 7
    Pattern.Flow.Gre.Version.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 2
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 3
          minimum: 1
          maximum: 3
          x-field-uid: 3
    Pattern.Flow.Gre.Version:
      description: |-
        GRE version number
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 7
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 7
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Gre.Version.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Gre.Version.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Gre.Version.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Gre.Protocol.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 2048
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
      x-constants:
        ipv4: 2048
        ipv6: 34525
    Pattern.Flow.Gre.Protocol.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.Gre.Protocol:
      description: |-
        Protocol type of encapsulated payload
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
            auto:
              x-field-uid: 1
          default: auto
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
          - auto
        value:
          type: integer
          x-field-uid: 2
          default: 2048
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 2048
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Gre.Protocol.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Gre.Protocol.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Gre.Protocol.MetricTag'
          x-field-uid: 7
        auto:
          description: |-
            The OTG implementation can provide a system generated
            value for this property. If the OTG is unable to generate a value
            the default value must be used.
          type: integer
          x-field-uid: 8
          default: 2048
          format: uint32
          maximum: 65535
      x-constants:
        ipv4: 2048
        ipv6: 34525
    Pattern.Flow.Gre.Checksum:
      description: |-
        Optional checksum of GRE header and payload. Only present if the checksum_present bit is set.
      type: object
      properties:
        choice:
          description: |-
            The type of checksum
          type: string
          x-enum:
            generated:
              x-field-uid: 1
            custom:
              x-field-uid: 2
          default: generated
          x-field-uid: 1
          enum:
          - generated
          - custom
        generated:
          description: |-
            A system generated checksum value
          type: string
          x-enum:
            good:
              x-field-uid: 1
            bad:
              x-field-uid: 2
          default: good
          x-field-uid: 2
          enum:
          - good
          - bad
        custom:
          description: |-
            A custom checksum value
          type: integer
          format: uint32
          maximum: 65535
          x-field-uid: 3
    Pattern.Flow.Gre.Reserved1.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.Gre.Reserved1.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.Gre.Reserved1:
      description: |-
        Optional reserved field. Only present if the checksum_present bit is set.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Gre.Reserved1.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Gre.Reserved1.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Gre.Reserved1.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Gtpv1.Version.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 1
          format: uint32
          maximum: 7
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 7
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 7
    Pattern.Flow.Gtpv1.Version.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 2
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 3
          minimum: 1
          maximum: 3
          x-field-uid: 3
    Pattern.Flow.Gtpv1.Version:
      description: |-
        GTPv1 version
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 7
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 7
          x-field-uid: 3
          default:
          - 1
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv1.Version.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv1.Version.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Gtpv1.Version.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Gtpv1.ProtocolType.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 1
          format: uint32
          maximum: 1
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 1
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 1
    Pattern.Flow.Gtpv1.ProtocolType.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 0
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 1
          minimum: 1
          maximum: 1
          x-field-uid: 3
    Pattern.Flow.Gtpv1.ProtocolType:
      description: |-
        Protocol type, GTP is 1, GTP' is 0
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 1
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 1
          x-field-uid: 3
          default:
          - 1
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv1.ProtocolType.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv1.ProtocolType.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Gtpv1.ProtocolType.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Gtpv1.Reserved.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 1
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 1
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 1
    Pattern.Flow.Gtpv1.Reserved.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 0
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 1
          minimum: 1
          maximum: 1
          x-field-uid: 3
    Pattern.Flow.Gtpv1.Reserved:
      description: |-
        Reserved field
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 1
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 1
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv1.Reserved.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv1.Reserved.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Gtpv1.Reserved.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Gtpv1.EFlag.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 1
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 1
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 1
    Pattern.Flow.Gtpv1.EFlag.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 0
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 1
          minimum: 1
          maximum: 1
          x-field-uid: 3
    Pattern.Flow.Gtpv1.EFlag:
      description: |-
        Extension header field present
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 1
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 1
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv1.EFlag.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv1.EFlag.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Gtpv1.EFlag.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Gtpv1.SFlag.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 1
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 1
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 1
    Pattern.Flow.Gtpv1.SFlag.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 0
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 1
          minimum: 1
          maximum: 1
          x-field-uid: 3
    Pattern.Flow.Gtpv1.SFlag:
      description: |-
        Sequence number field present
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 1
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 1
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv1.SFlag.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv1.SFlag.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Gtpv1.SFlag.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Gtpv1.PnFlag.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 1
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 1
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 1
    Pattern.Flow.Gtpv1.PnFlag.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 0
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 1
          minimum: 1
          maximum: 1
          x-field-uid: 3
    Pattern.Flow.Gtpv1.PnFlag:
      description: |-
        N-PDU field present
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 1
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 1
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv1.PnFlag.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv1.PnFlag.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Gtpv1.PnFlag.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Gtpv1.MessageType.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 255
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 255
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 255
    Pattern.Flow.Gtpv1.MessageType.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 7
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 8
          minimum: 1
          maximum: 8
          x-field-uid: 3
    Pattern.Flow.Gtpv1.MessageType:
      description: |-
        The type of GTP message Different types of messages are defined in 3GPP TS 29.060 section 7.1
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 255
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 255
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv1.MessageType.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv1.MessageType.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Gtpv1.MessageType.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Gtpv1.MessageLength.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.Gtpv1.MessageLength.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.Gtpv1.MessageLength:
      description: |-
        The length of the payload (the bytes following the mandatory 8-byte GTP header) in bytes that includes any optional fields
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv1.MessageLength.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv1.MessageLength.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Gtpv1.MessageLength.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Gtpv1.Teid.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
    Pattern.Flow.Gtpv1.Teid.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 31
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 32
          minimum: 1
          maximum: 32
          x-field-uid: 3
    Pattern.Flow.Gtpv1.Teid:
      description: |-
        Tunnel endpoint identifier (TEID) used to multiplex connections in the same GTP tunnel
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
        values:
          type: array
          items:
            type: integer
            format: uint32
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv1.Teid.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv1.Teid.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Gtpv1.Teid.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Gtpv1.SquenceNumber.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.Gtpv1.SquenceNumber.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.Gtpv1.SquenceNumber:
      description: |-
        Sequence number. Exists if any of the e_flag, s_flag, or pn_flag bits are on.  Must be interpreted only if the s_flag bit is on.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv1.SquenceNumber.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv1.SquenceNumber.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Gtpv1.SquenceNumber.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Gtpv1.NPduNumber.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 255
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 255
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 255
    Pattern.Flow.Gtpv1.NPduNumber.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 7
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 8
          minimum: 1
          maximum: 8
          x-field-uid: 3
    Pattern.Flow.Gtpv1.NPduNumber:
      description: |-
        N-PDU number. Exists if any of the e_flag, s_flag, or pn_flag bits are on.  Must be interpreted only if the pn_flag bit is on.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 255
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 255
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv1.NPduNumber.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv1.NPduNumber.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Gtpv1.NPduNumber.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Gtpv1.NextExtensionHeaderType.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 255
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 255
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 255
    Pattern.Flow.Gtpv1.NextExtensionHeaderType.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 7
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 8
          minimum: 1
          maximum: 8
          x-field-uid: 3
    Pattern.Flow.Gtpv1.NextExtensionHeaderType:
      description: |-
        Next extension header. Exists if any of the e_flag, s_flag, or pn_flag bits are on.  Must be interpreted only if the e_flag bit is on.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 255
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 255
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv1.NextExtensionHeaderType.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv1.NextExtensionHeaderType.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Gtpv1.NextExtensionHeaderType.MetricTag'
          x-field-uid: 7
    Pattern.Flow.GtpExtension.ExtensionLength.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 255
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 255
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 255
    Pattern.Flow.GtpExtension.ExtensionLength.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 7
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 8
          minimum: 1
          maximum: 8
          x-field-uid: 3
    Pattern.Flow.GtpExtension.ExtensionLength:
      description: |-
        This field states the length of this extension header,  including the length, the contents, and the next extension header field, in 4-octet units, so the length of the extension must  always be a multiple of 4.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 255
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 255
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.GtpExtension.ExtensionLength.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.GtpExtension.ExtensionLength.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.GtpExtension.ExtensionLength.MetricTag'
          x-field-uid: 7
    Pattern.Flow.GtpExtension.Contents.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint64
          maximum: 281474976710655
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint64
          maximum: 281474976710655
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint64
          maximum: 281474976710655
    Pattern.Flow.GtpExtension.Contents.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint64
          default: 0
          maximum: 47
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint64
          default: 48
          minimum: 1
          maximum: 48
          x-field-uid: 3
    Pattern.Flow.GtpExtension.Contents:
      description: |-
        The extension header contents
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint64
          maximum: 281474976710655
        values:
          type: array
          items:
            type: integer
            format: uint64
            maximum: 281474976710655
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.GtpExtension.Contents.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.GtpExtension.Contents.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.GtpExtension.Contents.MetricTag'
          x-field-uid: 7
    Pattern.Flow.GtpExtension.NextExtensionHeader.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 255
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 255
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 255
    Pattern.Flow.GtpExtension.NextExtensionHeader.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 7
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 8
          minimum: 1
          maximum: 8
          x-field-uid: 3
    Pattern.Flow.GtpExtension.NextExtensionHeader:
      description: |-
        It states the type of the next extension, or 0 if no next  extension exists.  This permits chaining several next extension headers.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 255
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 255
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.GtpExtension.NextExtensionHeader.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.GtpExtension.NextExtensionHeader.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.GtpExtension.NextExtensionHeader.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Gtpv2.Version.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 2
          format: uint32
          maximum: 7
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 7
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 7
    Pattern.Flow.Gtpv2.Version.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 2
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 3
          minimum: 1
          maximum: 3
          x-field-uid: 3
    Pattern.Flow.Gtpv2.Version:
      description: |-
        Version number
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 2
          format: uint32
          maximum: 7
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 7
          x-field-uid: 3
          default:
          - 2
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv2.Version.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv2.Version.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Gtpv2.Version.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Gtpv2.PiggybackingFlag.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 1
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 1
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 1
    Pattern.Flow.Gtpv2.PiggybackingFlag.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 0
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 1
          minimum: 1
          maximum: 1
          x-field-uid: 3
    Pattern.Flow.Gtpv2.PiggybackingFlag:
      description: |-
        If piggybacking_flag is set to 1 then another GTP-C message with its own header shall be present at the end of the current message
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 1
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 1
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv2.PiggybackingFlag.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv2.PiggybackingFlag.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Gtpv2.PiggybackingFlag.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Gtpv2.TeidFlag.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 1
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 1
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 1
    Pattern.Flow.Gtpv2.TeidFlag.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 0
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 1
          minimum: 1
          maximum: 1
          x-field-uid: 3
    Pattern.Flow.Gtpv2.TeidFlag:
      description: |-
        If teid_flag is set to 1 then the TEID field will be present  between the message length and the sequence number. All messages except Echo and Echo reply require TEID to be present
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 1
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 1
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv2.TeidFlag.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv2.TeidFlag.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Gtpv2.TeidFlag.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Gtpv2.Spare1.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 7
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 7
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 7
    Pattern.Flow.Gtpv2.Spare1.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 2
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 3
          minimum: 1
          maximum: 3
          x-field-uid: 3
    Pattern.Flow.Gtpv2.Spare1:
      description: |-
        A 3-bit reserved field (must be 0).
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 7
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 7
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv2.Spare1.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv2.Spare1.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Gtpv2.Spare1.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Gtpv2.MessageType.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 255
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 255
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 255
    Pattern.Flow.Gtpv2.MessageType.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 7
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 8
          minimum: 1
          maximum: 8
          x-field-uid: 3
    Pattern.Flow.Gtpv2.MessageType:
      description: |-
        An 8-bit field that indicates the type of GTP message. Different types of messages are defined in 3GPP TS 29.060 section 7.1
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 255
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 255
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv2.MessageType.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv2.MessageType.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Gtpv2.MessageType.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Gtpv2.MessageLength.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.Gtpv2.MessageLength.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.Gtpv2.MessageLength:
      description: |-
        A 16-bit field that indicates the length of the payload in bytes, excluding the mandatory GTP-c header (first 4 bytes). Includes the TEID and sequence_number if they are present.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv2.MessageLength.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv2.MessageLength.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Gtpv2.MessageLength.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Gtpv2.Teid.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
    Pattern.Flow.Gtpv2.Teid.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 31
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 32
          minimum: 1
          maximum: 32
          x-field-uid: 3
    Pattern.Flow.Gtpv2.Teid:
      description: |-
        Tunnel endpoint identifier. A 32-bit (4-octet) field used to multiplex different connections in the same GTP tunnel. Is present only if the teid_flag is set.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
        values:
          type: array
          items:
            type: integer
            format: uint32
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv2.Teid.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv2.Teid.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Gtpv2.Teid.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Gtpv2.SequenceNumber.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 16777215
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 16777215
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 16777215
    Pattern.Flow.Gtpv2.SequenceNumber.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 23
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 24
          minimum: 1
          maximum: 24
          x-field-uid: 3
    Pattern.Flow.Gtpv2.SequenceNumber:
      description: |-
        The sequence number
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 16777215
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 16777215
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv2.SequenceNumber.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv2.SequenceNumber.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Gtpv2.SequenceNumber.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Gtpv2.Spare2.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 255
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 255
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 255
    Pattern.Flow.Gtpv2.Spare2.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 7
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 8
          minimum: 1
          maximum: 8
          x-field-uid: 3
    Pattern.Flow.Gtpv2.Spare2:
      description: |-
        Reserved field
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 255
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 255
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv2.Spare2.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Gtpv2.Spare2.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Gtpv2.Spare2.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Arp.HardwareType.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 1
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
      x-constants:
        ethernet: 1
    Pattern.Flow.Arp.HardwareType.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.Arp.HardwareType:
      description: |-
        Network link protocol type
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 1
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Arp.HardwareType.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Arp.HardwareType.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Arp.HardwareType.MetricTag'
          x-field-uid: 7
      x-constants:
        ethernet: 1
    Pattern.Flow.Arp.ProtocolType.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 2048
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
      x-constants:
        ipv4: 2048
        ipv6: 34525
    Pattern.Flow.Arp.ProtocolType.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.Arp.ProtocolType:
      description: |-
        The internetwork protocol for which the ARP request is intended
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 2048
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 2048
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Arp.ProtocolType.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Arp.ProtocolType.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Arp.ProtocolType.MetricTag'
          x-field-uid: 7
      x-constants:
        ipv4: 2048
        ipv6: 34525
    Pattern.Flow.Arp.HardwareLength.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 6
          format: uint32
          maximum: 255
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 255
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 255
    Pattern.Flow.Arp.HardwareLength.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 7
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 8
          minimum: 1
          maximum: 8
          x-field-uid: 3
    Pattern.Flow.Arp.HardwareLength:
      description: |-
        Length (in octets) of a hardware address
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 6
          format: uint32
          maximum: 255
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 255
          x-field-uid: 3
          default:
          - 6
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Arp.HardwareLength.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Arp.HardwareLength.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Arp.HardwareLength.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Arp.ProtocolLength.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 4
          format: uint32
          maximum: 255
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 255
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 255
    Pattern.Flow.Arp.ProtocolLength.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 7
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 8
          minimum: 1
          maximum: 8
          x-field-uid: 3
    Pattern.Flow.Arp.ProtocolLength:
      description: |-
        Length (in octets) of internetwork addresses
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 4
          format: uint32
          maximum: 255
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 255
          x-field-uid: 3
          default:
          - 4
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Arp.ProtocolLength.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Arp.ProtocolLength.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Arp.ProtocolLength.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Arp.Operation.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 1
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
      x-constants:
        request: 1
        reply: 2
    Pattern.Flow.Arp.Operation.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.Arp.Operation:
      description: |-
        The operation that the sender is performing
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 1
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Arp.Operation.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Arp.Operation.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Arp.Operation.MetricTag'
          x-field-uid: 7
      x-constants:
        request: 1
        reply: 2
    Pattern.Flow.Arp.SenderHardwareAddr.Counter:
      description: |-
        mac counter pattern
      type: object
      properties:
        start:
          type: string
          x-field-uid: 1
          default: 00:00:00:00:00:00
          format: mac
        step:
          type: string
          x-field-uid: 2
          default: 00:00:00:00:00:01
          format: mac
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
    Pattern.Flow.Arp.SenderHardwareAddr.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 47
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 48
          minimum: 1
          maximum: 48
          x-field-uid: 3
    Pattern.Flow.Arp.SenderHardwareAddr:
      description: |-
        Media address of the sender
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: string
          x-field-uid: 2
          default: 00:00:00:00:00:00
          format: mac
        values:
          type: array
          items:
            type: string
            format: mac
          x-field-uid: 3
          default:
          - 00:00:00:00:00:00
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Arp.SenderHardwareAddr.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Arp.SenderHardwareAddr.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Arp.SenderHardwareAddr.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Arp.SenderProtocolAddr.Counter:
      description: |-
        ipv4 counter pattern
      type: object
      properties:
        start:
          type: string
          x-field-uid: 1
          default: 0.0.0.0
          format: ipv4
        step:
          type: string
          x-field-uid: 2
          default: 0.0.0.1
          format: ipv4
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
    Pattern.Flow.Arp.SenderProtocolAddr.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 31
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 32
          minimum: 1
          maximum: 32
          x-field-uid: 3
    Pattern.Flow.Arp.SenderProtocolAddr:
      description: |-
        Internetwork address of the sender
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: string
          x-field-uid: 2
          default: 0.0.0.0
          format: ipv4
        values:
          type: array
          items:
            type: string
            format: ipv4
          x-field-uid: 3
          default:
          - 0.0.0.0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Arp.SenderProtocolAddr.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Arp.SenderProtocolAddr.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Arp.SenderProtocolAddr.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Arp.TargetHardwareAddr.Counter:
      description: |-
        mac counter pattern
      type: object
      properties:
        start:
          type: string
          x-field-uid: 1
          default: 00:00:00:00:00:00
          format: mac
        step:
          type: string
          x-field-uid: 2
          default: 00:00:00:00:00:01
          format: mac
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
    Pattern.Flow.Arp.TargetHardwareAddr.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 47
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 48
          minimum: 1
          maximum: 48
          x-field-uid: 3
    Pattern.Flow.Arp.TargetHardwareAddr:
      description: |-
        Media address of the target
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: string
          x-field-uid: 2
          default: 00:00:00:00:00:00
          format: mac
        values:
          type: array
          items:
            type: string
            format: mac
          x-field-uid: 3
          default:
          - 00:00:00:00:00:00
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Arp.TargetHardwareAddr.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Arp.TargetHardwareAddr.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Arp.TargetHardwareAddr.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Arp.TargetProtocolAddr.Counter:
      description: |-
        ipv4 counter pattern
      type: object
      properties:
        start:
          type: string
          x-field-uid: 1
          default: 0.0.0.0
          format: ipv4
        step:
          type: string
          x-field-uid: 2
          default: 0.0.0.1
          format: ipv4
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
    Pattern.Flow.Arp.TargetProtocolAddr.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 31
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 32
          minimum: 1
          maximum: 32
          x-field-uid: 3
    Pattern.Flow.Arp.TargetProtocolAddr:
      description: |-
        Internetwork address of the target
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: string
          x-field-uid: 2
          default: 0.0.0.0
          format: ipv4
        values:
          type: array
          items:
            type: string
            format: ipv4
          x-field-uid: 3
          default:
          - 0.0.0.0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Arp.TargetProtocolAddr.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Arp.TargetProtocolAddr.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Arp.TargetProtocolAddr.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Icmp.Echo.Type.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 8
          format: uint32
          maximum: 255
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 255
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 255
      x-constants:
        reply: 0
        request: 8
    Pattern.Flow.Icmp.Echo.Type.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 7
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 8
          minimum: 1
          maximum: 8
          x-field-uid: 3
    Pattern.Flow.Icmp.Echo.Type:
      description: |-
        The type of ICMP echo packet
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 8
          format: uint32
          maximum: 255
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 255
          x-field-uid: 3
          default:
          - 8
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.Type.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.Type.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.Type.MetricTag'
          x-field-uid: 7
      x-constants:
        reply: 0
        request: 8
    Pattern.Flow.Icmp.Echo.Code.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 255
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 255
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 255
    Pattern.Flow.Icmp.Echo.Code.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 7
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 8
          minimum: 1
          maximum: 8
          x-field-uid: 3
    Pattern.Flow.Icmp.Echo.Code:
      description: |-
        The ICMP subtype.  The default code for ICMP echo request and reply is 0.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 255
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 255
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.Code.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.Code.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.Code.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Icmp.Echo.Checksum:
      description: |-
        ICMP checksum
      type: object
      properties:
        choice:
          description: |-
            The type of checksum
          type: string
          x-enum:
            generated:
              x-field-uid: 1
            custom:
              x-field-uid: 2
          default: generated
          x-field-uid: 1
          enum:
          - generated
          - custom
        generated:
          description: |-
            A system generated checksum value
          type: string
          x-enum:
            good:
              x-field-uid: 1
            bad:
              x-field-uid: 2
          default: good
          x-field-uid: 2
          enum:
          - good
          - bad
        custom:
          description: |-
            A custom checksum value
          type: integer
          format: uint32
          maximum: 65535
          x-field-uid: 3
    Pattern.Flow.Icmp.Echo.Identifier.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.Icmp.Echo.Identifier.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.Icmp.Echo.Identifier:
      description: |-
        ICMP identifier
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.Identifier.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.Identifier.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.Identifier.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Icmp.Echo.SequenceNumber.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.Icmp.Echo.SequenceNumber.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.Icmp.Echo.SequenceNumber:
      description: |-
        ICMP sequence number
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.SequenceNumber.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.SequenceNumber.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.SequenceNumber.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Icmp.Common.Checksum:
      description: |-
        ICMP checksum
      type: object
      properties:
        choice:
          description: |-
            The type of checksum
          type: string
          x-enum:
            generated:
              x-field-uid: 1
            custom:
              x-field-uid: 2
          default: generated
          x-field-uid: 1
          enum:
          - generated
          - custom
        generated:
          description: |-
            A system generated checksum value
          type: string
          x-enum:
            good:
              x-field-uid: 1
            bad:
              x-field-uid: 2
          default: good
          x-field-uid: 2
          enum:
          - good
          - bad
        custom:
          description: |-
            A custom checksum value
          type: integer
          format: uint32
          maximum: 65535
          x-field-uid: 3
    Pattern.Flow.Icmp.NextFields.Identifier.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.Icmp.NextFields.Identifier.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.Icmp.NextFields.Identifier:
      description: |-
        ICMP identifier
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Icmp.NextFields.Identifier.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Icmp.NextFields.Identifier.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Icmp.NextFields.Identifier.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Icmp.NextFields.SequenceNumber.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.Icmp.NextFields.SequenceNumber.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.Icmp.NextFields.SequenceNumber:
      description: |-
        ICMP sequence number
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Icmp.NextFields.SequenceNumber.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Icmp.NextFields.SequenceNumber.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Icmp.NextFields.SequenceNumber.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Icmpv6.Echo.Type.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 128
          format: uint32
          maximum: 255
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 255
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 255
      x-constants:
        request: 128
        reply: 129
    Pattern.Flow.Icmpv6.Echo.Type.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 7
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 8
          minimum: 1
          maximum: 8
          x-field-uid: 3
    Pattern.Flow.Icmpv6.Echo.Type:
      description: |-
        ICMPv6 echo type
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 128
          format: uint32
          maximum: 255
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 255
          x-field-uid: 3
          default:
          - 128
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.Type.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.Type.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.Type.MetricTag'
          x-field-uid: 7
      x-constants:
        request: 128
        reply: 129
    Pattern.Flow.Icmpv6.Echo.Code.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 255
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 255
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 255
    Pattern.Flow.Icmpv6.Echo.Code.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 7
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 8
          minimum: 1
          maximum: 8
          x-field-uid: 3
    Pattern.Flow.Icmpv6.Echo.Code:
      description: |-
        ICMPv6 echo sub type
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 255
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 255
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.Code.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.Code.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.Code.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Icmpv6.Echo.Identifier.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.Icmpv6.Echo.Identifier.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.Icmpv6.Echo.Identifier:
      description: |-
        ICMPv6 echo identifier
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.Identifier.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.Identifier.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.Identifier.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Icmpv6.Echo.SequenceNumber.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.Icmpv6.Echo.SequenceNumber.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.Icmpv6.Echo.SequenceNumber:
      description: |-
        ICMPv6 echo sequence number
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.SequenceNumber.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.SequenceNumber.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.SequenceNumber.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Icmpv6.Echo.Checksum:
      description: |-
        ICMPv6 checksum
      type: object
      properties:
        choice:
          description: |-
            The type of checksum
          type: string
          x-enum:
            generated:
              x-field-uid: 1
            custom:
              x-field-uid: 2
          default: generated
          x-field-uid: 1
          enum:
          - generated
          - custom
        generated:
          description: |-
            A system generated checksum value
          type: string
          x-enum:
            good:
              x-field-uid: 1
            bad:
              x-field-uid: 2
          default: good
          x-field-uid: 2
          enum:
          - good
          - bad
        custom:
          description: |-
            A custom checksum value
          type: integer
          format: uint32
          maximum: 65535
          x-field-uid: 3
    Pattern.Flow.Icmpv6.Common.Checksum:
      description: |-
        ICMPv6 checksum
      type: object
      properties:
        choice:
          description: |-
            The type of checksum
          type: string
          x-enum:
            generated:
              x-field-uid: 1
            custom:
              x-field-uid: 2
          default: generated
          x-field-uid: 1
          enum:
          - generated
          - custom
        generated:
          description: |-
            A system generated checksum value
          type: string
          x-enum:
            good:
              x-field-uid: 1
            bad:
              x-field-uid: 2
          default: good
          x-field-uid: 2
          enum:
          - good
          - bad
        custom:
          description: |-
            A custom checksum value
          type: integer
          format: uint32
          maximum: 65535
          x-field-uid: 3
    Pattern.Flow.Ppp.Address.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 255
          format: uint32
          maximum: 255
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 255
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 255
      x-constants:
        standard_address: 255
    Pattern.Flow.Ppp.Address.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 7
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 8
          minimum: 1
          maximum: 8
          x-field-uid: 3
    Pattern.Flow.Ppp.Address:
      description: |-
        PPP address
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 255
          format: uint32
          maximum: 255
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 255
          x-field-uid: 3
          default:
          - 255
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ppp.Address.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ppp.Address.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Ppp.Address.MetricTag'
          x-field-uid: 7
      x-constants:
        standard_address: 255
    Pattern.Flow.Ppp.Control.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 3
          format: uint32
          maximum: 255
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 255
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 255
      x-constants:
        unnumbered_data: 3
    Pattern.Flow.Ppp.Control.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 7
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 8
          minimum: 1
          maximum: 8
          x-field-uid: 3
    Pattern.Flow.Ppp.Control:
      description: |-
        PPP control
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 3
          format: uint32
          maximum: 255
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 255
          x-field-uid: 3
          default:
          - 3
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ppp.Control.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ppp.Control.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Ppp.Control.MetricTag'
          x-field-uid: 7
      x-constants:
        unnumbered_data: 3
    Pattern.Flow.Ppp.ProtocolType.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 33
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.Ppp.ProtocolType.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 15
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 16
          minimum: 1
          maximum: 16
          x-field-uid: 3
    Pattern.Flow.Ppp.ProtocolType:
      description: |-
        PPP protocol type
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            auto:
              x-field-uid: 1
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: auto
          x-field-uid: 1
          enum:
          - value
          - values
          - auto
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 33
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 33
        auto:
          description: |-
            The OTG implementation can provide a system generated
            value for this property. If the OTG is unable to generate a value
            the default value must be used.
          type: integer
          x-field-uid: 4
          default: 33
          format: uint32
          maximum: 65535
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Ppp.ProtocolType.Counter'
          x-field-uid: 6
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Ppp.ProtocolType.Counter'
          x-field-uid: 7
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Ppp.ProtocolType.MetricTag'
          x-field-uid: 8
    Pattern.Flow.Igmpv1.Version.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 1
          format: uint32
          maximum: 15
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 15
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 15
    Pattern.Flow.Igmpv1.Version.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 3
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 4
          minimum: 1
          maximum: 4
          x-field-uid: 3
    Pattern.Flow.Igmpv1.Version:
      description: |-
        Version number
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 15
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 15
          x-field-uid: 3
          default:
          - 1
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Igmpv1.Version.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Igmpv1.Version.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Igmpv1.Version.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Igmpv1.Type.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 1
          format: uint32
          maximum: 15
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 15
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 15
      x-constants:
        query: 1
        report: 2
    Pattern.Flow.Igmpv1.Type.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 3
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 4
          minimum: 1
          maximum: 4
          x-field-uid: 3
    Pattern.Flow.Igmpv1.Type:
      description: |-
        Type of message
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 15
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 15
          x-field-uid: 3
          default:
          - 1
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Igmpv1.Type.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Igmpv1.Type.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Igmpv1.Type.MetricTag'
          x-field-uid: 7
      x-constants:
        query: 1
        report: 2
    Pattern.Flow.Igmpv1.Unused.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 255
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 255
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 255
    Pattern.Flow.Igmpv1.Unused.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 7
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 8
          minimum: 1
          maximum: 8
          x-field-uid: 3
    Pattern.Flow.Igmpv1.Unused:
      description: |-
        Unused
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 255
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 255
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Igmpv1.Unused.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Igmpv1.Unused.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Igmpv1.Unused.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Igmpv1.Checksum:
      description: |-
        Checksum
      type: object
      properties:
        choice:
          description: |-
            The type of checksum
          type: string
          x-enum:
            generated:
              x-field-uid: 1
            custom:
              x-field-uid: 2
          default: generated
          x-field-uid: 1
          enum:
          - generated
          - custom
        generated:
          description: |-
            A system generated checksum value
          type: string
          x-enum:
            good:
              x-field-uid: 1
            bad:
              x-field-uid: 2
          default: good
          x-field-uid: 2
          enum:
          - good
          - bad
        custom:
          description: |-
            A custom checksum value
          type: integer
          format: uint32
          maximum: 65535
          x-field-uid: 3
    Pattern.Flow.Igmpv1.GroupAddress.Counter:
      description: |-
        ipv4 counter pattern
      type: object
      properties:
        start:
          type: string
          x-field-uid: 1
          default: 0.0.0.0
          format: ipv4
        step:
          type: string
          x-field-uid: 2
          default: 0.0.0.1
          format: ipv4
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
    Pattern.Flow.Igmpv1.GroupAddress.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 31
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 32
          minimum: 1
          maximum: 32
          x-field-uid: 3
    Pattern.Flow.Igmpv1.GroupAddress:
      description: |-
        Group address
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: string
          x-field-uid: 2
          default: 0.0.0.0
          format: ipv4
        values:
          type: array
          items:
            type: string
            format: ipv4
          x-field-uid: 3
          default:
          - 0.0.0.0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Igmpv1.GroupAddress.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Igmpv1.GroupAddress.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Igmpv1.GroupAddress.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Mpls.Label.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 16
          format: uint32
          maximum: 1048575
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 1048575
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 1048575
    Pattern.Flow.Mpls.Label.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 19
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 20
          minimum: 1
          maximum: 20
          x-field-uid: 3
    Pattern.Flow.Mpls.Label:
      description: |-
        Label of routers
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            auto:
              x-field-uid: 1
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: auto
          x-field-uid: 1
          enum:
          - value
          - values
          - auto
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 16
          format: uint32
          maximum: 1048575
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 1048575
          x-field-uid: 3
          default:
          - 16
        auto:
          description: |-
            The OTG implementation can provide a system generated
            value for this property. If the OTG is unable to generate a value
            the default value must be used.
          type: integer
          x-field-uid: 4
          default: 16
          format: uint32
          maximum: 1048575
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Mpls.Label.Counter'
          x-field-uid: 6
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Mpls.Label.Counter'
          x-field-uid: 7
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Mpls.Label.MetricTag'
          x-field-uid: 8
    Pattern.Flow.Mpls.TrafficClass.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 7
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 7
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 7
    Pattern.Flow.Mpls.TrafficClass.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 2
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 3
          minimum: 1
          maximum: 3
          x-field-uid: 3
    Pattern.Flow.Mpls.TrafficClass:
      description: |-
        Traffic class
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 7
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 7
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Mpls.TrafficClass.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Mpls.TrafficClass.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Mpls.TrafficClass.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Mpls.BottomOfStack.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 1
          format: uint32
          maximum: 1
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 1
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 1
    Pattern.Flow.Mpls.BottomOfStack.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 0
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 1
          minimum: 1
          maximum: 1
          x-field-uid: 3
    Pattern.Flow.Mpls.BottomOfStack:
      description: |-
        Bottom of stack
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            auto:
              x-field-uid: 1
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: auto
          x-field-uid: 1
          enum:
          - value
          - values
          - auto
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 1
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 1
          x-field-uid: 3
          default:
          - 1
        auto:
          description: |-
            The OTG implementation can provide a system generated
            value for this property. If the OTG is unable to generate a value
            the default value must be used.
          type: integer
          x-field-uid: 4
          default: 1
          format: uint32
          maximum: 1
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Mpls.BottomOfStack.Counter'
          x-field-uid: 6
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Mpls.BottomOfStack.Counter'
          x-field-uid: 7
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Mpls.BottomOfStack.MetricTag'
          x-field-uid: 8
    Pattern.Flow.Mpls.TimeToLive.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 64
          format: uint32
          maximum: 255
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 255
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 255
    Pattern.Flow.Mpls.TimeToLive.MetricTag:
      description: |-
        Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
      type: object
      required:
      - name
      properties:
        name:
          description: |-
            Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field
          type: string
          pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$
          x-field-uid: 1
        offset:
          description: |-
            Offset in bits relative to start of corresponding header field
          type: integer
          format: uint32
          default: 0
          maximum: 7
          x-field-uid: 2
        length:
          description: |-
            Number of bits to track for metrics starting from configured offset of corresponding header field
          type: integer
          format: uint32
          default: 8
          minimum: 1
          maximum: 8
          x-field-uid: 3
    Pattern.Flow.Mpls.TimeToLive:
      description: |-
        Time to live
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 64
          format: uint32
          maximum: 255
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 255
          x-field-uid: 3
          default:
          - 64
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Mpls.TimeToLive.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Mpls.TimeToLive.Counter'
          x-field-uid: 6
        metric_tags:
          description: |-
            One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics.
          type: array
          items:
            $ref: '#/components/schemas/Pattern.Flow.Mpls.TimeToLive.MetricTag'
          x-field-uid: 7
    Pattern.Flow.Snmpv2c.Version.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 1
          format: uint32
          maximum: 255
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 255
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 255
    Pattern.Flow.Snmpv2c.Version:
      description: |-
        Version
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 255
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 255
          x-field-uid: 3
          default:
          - 1
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.Version.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.Version.Counter'
          x-field-uid: 6
    Pattern.Flow.Snmpv2c.PDU.RequestId.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: int32
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: int32
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: int32
    Pattern.Flow.Snmpv2c.PDU.RequestId:
      description: "Identifies a particular SNMP request. \nThis index is echoed back\
        \ in the response from the SNMP agent, \nallowing the SNMP manager to match\
        \ an incoming response to the appropriate request.\n\n- Encoding of this field\
        \ follows ASN.1 X.690(section 8.3) specification.\n  Refer: http://www.itu.int/ITU-T/asn1/"
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: int32
        values:
          type: array
          items:
            type: integer
            format: int32
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.PDU.RequestId.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.PDU.RequestId.Counter'
          x-field-uid: 6
    Pattern.Flow.Snmpv2c.PDU.ErrorIndex.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
    Pattern.Flow.Snmpv2c.PDU.ErrorIndex:
      description: |-
        When Error Status is non-zero,  this field contains a pointer that specifies which object generated the error.  Always zero in a request.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
        values:
          type: array
          items:
            type: integer
            format: uint32
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.PDU.ErrorIndex.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.PDU.ErrorIndex.Counter'
          x-field-uid: 6
    Pattern.Flow.Snmpv2c.BulkPDU.RequestId.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: int32
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: int32
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: int32
    Pattern.Flow.Snmpv2c.BulkPDU.RequestId:
      description: "Identifies a particular SNMP request. \nThis index is echoed back\
        \ in the response from the SNMP agent, \nallowing the SNMP manager to match\
        \ an incoming response to the appropriate request.\n\n- Encoding of this field\
        \ follows ASN.1 X.690(section 8.3) specification.\n  Refer: http://www.itu.int/ITU-T/asn1/"
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: int32
        values:
          type: array
          items:
            type: integer
            format: int32
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.BulkPDU.RequestId.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.BulkPDU.RequestId.Counter'
          x-field-uid: 6
    Pattern.Flow.Snmpv2c.BulkPDU.NonRepeaters:
      description: |-
        One variable binding in the Response-PDU is requested for the first non_repeaters variable bindings in the GetBulkRequest.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
        values:
          type: array
          items:
            type: integer
            format: uint32
          x-field-uid: 3
          default:
          - 0
    Pattern.Flow.Snmpv2c.BulkPDU.MaxRepetitions.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
    Pattern.Flow.Snmpv2c.BulkPDU.MaxRepetitions:
      description: |-
        A maximum of max_repetitions variable bindings are requested in the Response-PDU for each of the remaining variable bindings in the GetBulkRequest after the non_repeaters variable bindings.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
        values:
          type: array
          items:
            type: integer
            format: uint32
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.BulkPDU.MaxRepetitions.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.BulkPDU.MaxRepetitions.Counter'
          x-field-uid: 6
    Pattern.Flow.Snmpv2c.VariableBindingValue.IntegerValue.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: int32
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: int32
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: int32
    Pattern.Flow.Snmpv2c.VariableBindingValue.IntegerValue:
      description: |-
        Integer value returned for the requested OID.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: int32
        values:
          type: array
          items:
            type: integer
            format: int32
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.VariableBindingValue.IntegerValue.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.VariableBindingValue.IntegerValue.Counter'
          x-field-uid: 6
    Pattern.Flow.Snmpv2c.VariableBindingValue.IpAddressValue.Counter:
      description: |-
        ipv4 counter pattern
      type: object
      properties:
        start:
          type: string
          x-field-uid: 1
          default: 0.0.0.0
          format: ipv4
        step:
          type: string
          x-field-uid: 2
          default: 0.0.0.1
          format: ipv4
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
    Pattern.Flow.Snmpv2c.VariableBindingValue.IpAddressValue:
      description: |-
        IPv4 address returned for the requested OID.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: string
          x-field-uid: 2
          default: 0.0.0.0
          format: ipv4
        values:
          type: array
          items:
            type: string
            format: ipv4
          x-field-uid: 3
          default:
          - 0.0.0.0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.VariableBindingValue.IpAddressValue.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.VariableBindingValue.IpAddressValue.Counter'
          x-field-uid: 6
    Pattern.Flow.Snmpv2c.VariableBindingValue.CounterValue.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
    Pattern.Flow.Snmpv2c.VariableBindingValue.CounterValue:
      description: |-
        Counter returned for the requested OID.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
        values:
          type: array
          items:
            type: integer
            format: uint32
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.VariableBindingValue.CounterValue.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.VariableBindingValue.CounterValue.Counter'
          x-field-uid: 6
    Pattern.Flow.Snmpv2c.VariableBindingValue.TimeticksValue.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
    Pattern.Flow.Snmpv2c.VariableBindingValue.TimeticksValue:
      description: |-
        Timeticks returned for the requested OID.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
        values:
          type: array
          items:
            type: integer
            format: uint32
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.VariableBindingValue.TimeticksValue.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.VariableBindingValue.TimeticksValue.Counter'
          x-field-uid: 6
    Pattern.Flow.Snmpv2c.VariableBindingValue.BigCounterValue.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint64
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint64
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint64
    Pattern.Flow.Snmpv2c.VariableBindingValue.BigCounterValue:
      description: |-
        Big counter returned for the requested OID.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint64
        values:
          type: array
          items:
            type: integer
            format: uint64
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.VariableBindingValue.BigCounterValue.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.VariableBindingValue.BigCounterValue.Counter'
          x-field-uid: 6
    Pattern.Flow.Snmpv2c.VariableBindingValue.UnsignedIntegerValue.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
    Pattern.Flow.Snmpv2c.VariableBindingValue.UnsignedIntegerValue:
      description: |-
        Unsigned integer value returned for the requested OID.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
        values:
          type: array
          items:
            type: integer
            format: uint32
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.VariableBindingValue.UnsignedIntegerValue.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.VariableBindingValue.UnsignedIntegerValue.Counter'
          x-field-uid: 6
    Pattern.Flow.Snmpv2c.Common.RequestId.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: int32
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: int32
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: int32
    Pattern.Flow.Snmpv2c.Common.RequestId:
      description: "Identifies a particular SNMP request. \nThis index is echoed back\
        \ in the response from the SNMP agent, \nallowing the SNMP manager to match\
        \ an incoming response to the appropriate request.\n\n- Encoding of this field\
        \ follows ASN.1 X.690(section 8.3) specification.\n  Refer: http://www.itu.int/ITU-T/asn1/"
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: int32
        values:
          type: array
          items:
            type: integer
            format: int32
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.Common.RequestId.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.Common.RequestId.Counter'
          x-field-uid: 6
    Pattern.Flow.Rsvp.RsvpChecksum:
      description: |-
        The one's complement of the one's complement sum of the message, with the checksum field replaced by zero for the purpose of computing the checksum.   An all-zero value means that no checksum was transmitted.
      type: object
      properties:
        choice:
          description: |-
            The type of checksum
          type: string
          x-enum:
            generated:
              x-field-uid: 1
            custom:
              x-field-uid: 2
          default: generated
          x-field-uid: 1
          enum:
          - generated
          - custom
        generated:
          description: |-
            A system generated checksum value
          type: string
          x-enum:
            good:
              x-field-uid: 1
            bad:
              x-field-uid: 2
          default: good
          x-field-uid: 2
          enum:
          - good
          - bad
        custom:
          description: |-
            A custom checksum value
          type: integer
          format: uint32
          maximum: 65535
          x-field-uid: 3
    Pattern.Flow.Rsvp.TimeToLive.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 64
          format: uint32
          maximum: 255
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 255
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 255
    Pattern.Flow.Rsvp.TimeToLive:
      description: |-
        The IP time-to-live(TTL) value with which the message was sent.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 64
          format: uint32
          maximum: 255
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 255
          x-field-uid: 3
          default:
          - 64
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Rsvp.TimeToLive.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Rsvp.TimeToLive.Counter'
          x-field-uid: 6
    Pattern.Flow.Rsvp.Reserved.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 255
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 255
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 255
    Pattern.Flow.Rsvp.Reserved:
      description: "Reserved "
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 255
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 255
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.Rsvp.Reserved.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.Rsvp.Reserved.Counter'
          x-field-uid: 6
    Pattern.Flow.RSVP.PathSessionLspTunnelIpv4.Ipv4TunnelEndPointAddress.Counter:
      description: |-
        ipv4 counter pattern
      type: object
      properties:
        start:
          type: string
          x-field-uid: 1
          default: 0.0.0.0
          format: ipv4
        step:
          type: string
          x-field-uid: 2
          default: 0.0.0.1
          format: ipv4
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
    Pattern.Flow.RSVP.PathSessionLspTunnelIpv4.Ipv4TunnelEndPointAddress:
      description: |-
        IPv4 address of the egress node for the tunnel.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: string
          x-field-uid: 2
          default: 0.0.0.0
          format: ipv4
        values:
          type: array
          items:
            type: string
            format: ipv4
          x-field-uid: 3
          default:
          - 0.0.0.0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSessionLspTunnelIpv4.Ipv4TunnelEndPointAddress.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSessionLspTunnelIpv4.Ipv4TunnelEndPointAddress.Counter'
          x-field-uid: 6
    Pattern.Flow.RSVP.PathSessionLspTunnelIpv4.Reserved.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.RSVP.PathSessionLspTunnelIpv4.Reserved:
      description: |-
        Reserved field, MUST be zero.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSessionLspTunnelIpv4.Reserved.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSessionLspTunnelIpv4.Reserved.Counter'
          x-field-uid: 6
    Pattern.Flow.RSVP.PathSessionLspTunnelIpv4.TunnelId.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 1
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.RSVP.PathSessionLspTunnelIpv4.TunnelId:
      description: |-
        A 16-bit identifier used in the SESSION that remains constant over the life of the tunnel.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 1
        increment:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSessionLspTunnelIpv4.TunnelId.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSessionLspTunnelIpv4.TunnelId.Counter'
          x-field-uid: 6
    Pattern.Flow.RSVP.PathSessionExtTunnelId.AsInteger.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
    Pattern.Flow.RSVP.PathSessionExtTunnelId.AsInteger:
      description: |-
        TBD
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
        values:
          type: array
          items:
            type: integer
            format: uint32
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSessionExtTunnelId.AsInteger.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSessionExtTunnelId.AsInteger.Counter'
          x-field-uid: 6
    Pattern.Flow.RSVP.PathSessionExtTunnelId.AsIpv4.Counter:
      description: |-
        ipv4 counter pattern
      type: object
      properties:
        start:
          type: string
          x-field-uid: 1
          default: 0.0.0.0
          format: ipv4
        step:
          type: string
          x-field-uid: 2
          default: 0.0.0.1
          format: ipv4
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
    Pattern.Flow.RSVP.PathSessionExtTunnelId.AsIpv4:
      description: |-
        IPv4 address of the ingress endpoint for the tunnel.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: string
          x-field-uid: 2
          default: 0.0.0.0
          format: ipv4
        values:
          type: array
          items:
            type: string
            format: ipv4
          x-field-uid: 3
          default:
          - 0.0.0.0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSessionExtTunnelId.AsIpv4.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSessionExtTunnelId.AsIpv4.Counter'
          x-field-uid: 6
    Pattern.Flow.RSVP.PathRsvpHopIpv4.Ipv4Address.Counter:
      description: |-
        ipv4 counter pattern
      type: object
      properties:
        start:
          type: string
          x-field-uid: 1
          default: 0.0.0.0
          format: ipv4
        step:
          type: string
          x-field-uid: 2
          default: 0.0.0.1
          format: ipv4
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
    Pattern.Flow.RSVP.PathRsvpHopIpv4.Ipv4Address:
      description: |-
        The IPv4 address of the interface through which the last RSVP-knowledgeable hop forwarded this message.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: string
          x-field-uid: 2
          default: 0.0.0.0
          format: ipv4
        values:
          type: array
          items:
            type: string
            format: ipv4
          x-field-uid: 3
          default:
          - 0.0.0.0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathRsvpHopIpv4.Ipv4Address.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathRsvpHopIpv4.Ipv4Address.Counter'
          x-field-uid: 6
    Pattern.Flow.RSVP.PathRsvpHopIpv4.LogicalInterfaceHandle.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
    Pattern.Flow.RSVP.PathRsvpHopIpv4.LogicalInterfaceHandle:
      description: |-
        Logical Interface Handle (LIH) is used to distinguish logical outgoing interfaces. A node receiving an LIH in a Path message saves its value and returns it in the HOP objects of subsequent Resv messages sent to the node that originated the LIH. The LIH should be identically zero if there is no logical interface handle.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
        values:
          type: array
          items:
            type: integer
            format: uint32
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathRsvpHopIpv4.LogicalInterfaceHandle.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathRsvpHopIpv4.LogicalInterfaceHandle.Counter'
          x-field-uid: 6
    Pattern.Flow.RSVP.PathTimeValuesType1.RefreshPeriodR.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 30000
          format: uint32
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
    Pattern.Flow.RSVP.PathTimeValuesType1.RefreshPeriodR:
      description: |-
        The refresh timeout period R used to generate this message;in milliseconds.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 30000
          format: uint32
        values:
          type: array
          items:
            type: integer
            format: uint32
          x-field-uid: 3
          default:
          - 30000
        increment:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathTimeValuesType1.RefreshPeriodR.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathTimeValuesType1.RefreshPeriodR.Counter'
          x-field-uid: 6
    Pattern.Flow.RSVP.PathExplicitRouteType1Ipv4Prefix.LBit.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 1
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 1
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 1
    Pattern.Flow.RSVP.PathExplicitRouteType1Ipv4Prefix.LBit:
      description: |-
        The L bit is an attribute of the subobject. The L bit is set if the subobject represents a loose hop in the explicit route. If the bit is not set, the subobject represents a strict hop in the explicit route.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 1
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 1
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathExplicitRouteType1Ipv4Prefix.LBit.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathExplicitRouteType1Ipv4Prefix.LBit.Counter'
          x-field-uid: 6
    Pattern.Flow.RSVP.PathExplicitRouteType1Ipv4Prefix.Ipv4Address.Counter:
      description: |-
        ipv4 counter pattern
      type: object
      properties:
        start:
          type: string
          x-field-uid: 1
          default: 0.0.0.0
          format: ipv4
        step:
          type: string
          x-field-uid: 2
          default: 0.0.0.1
          format: ipv4
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
    Pattern.Flow.RSVP.PathExplicitRouteType1Ipv4Prefix.Ipv4Address:
      description: |-
        This IPv4 address is treated as a prefix based on the prefix length value below.  Bits beyond the prefix are ignored on receipt and SHOULD be set to zero on transmission.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: string
          x-field-uid: 2
          default: 0.0.0.0
          format: ipv4
        values:
          type: array
          items:
            type: string
            format: ipv4
          x-field-uid: 3
          default:
          - 0.0.0.0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathExplicitRouteType1Ipv4Prefix.Ipv4Address.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathExplicitRouteType1Ipv4Prefix.Ipv4Address.Counter'
          x-field-uid: 6
    Pattern.Flow.RSVP.PathExplicitRouteType1ASNumber.LBit.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 1
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 1
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 1
    Pattern.Flow.RSVP.PathExplicitRouteType1ASNumber.LBit:
      description: |-
        The L bit is an attribute of the subobject. The L bit is set if the subobject represents a loose hop in the explicit route. If the bit is not set, the subobject represents a strict hop in the explicit route.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 1
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 1
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathExplicitRouteType1ASNumber.LBit.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathExplicitRouteType1ASNumber.LBit.Counter'
          x-field-uid: 6
    Pattern.Flow.RSVP.PathLabelRequestWithoutLabelRange.Reserved.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.RSVP.PathLabelRequestWithoutLabelRange.Reserved:
      description: "This field is reserved.   It MUST be set to zero on transmission\
        \ and MUST be ignored on receipt.              "
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathLabelRequestWithoutLabelRange.Reserved.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathLabelRequestWithoutLabelRange.Reserved.Counter'
          x-field-uid: 6
    Pattern.Flow.RSVP.PathLabelRequestWithoutLabelRange.L3pid.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 2048
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.RSVP.PathLabelRequestWithoutLabelRange.L3pid:
      description: "An identifier of the layer 3 protocol using this path.  Standard\
        \ Ethertype values are used e.g. The default value of 2048 ( 0x0800 ) represents\
        \ Ethertype for IPv4.          "
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 2048
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 2048
        increment:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathLabelRequestWithoutLabelRange.L3pid.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathLabelRequestWithoutLabelRange.L3pid.Counter'
          x-field-uid: 6
    Pattern.Flow.RSVP.PathSenderTemplateLspTunnelIpv4.Ipv4TunnelSenderAddress.Counter:
      description: |-
        ipv4 counter pattern
      type: object
      properties:
        start:
          type: string
          x-field-uid: 1
          default: 0.0.0.0
          format: ipv4
        step:
          type: string
          x-field-uid: 2
          default: 0.0.0.1
          format: ipv4
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
    Pattern.Flow.RSVP.PathSenderTemplateLspTunnelIpv4.Ipv4TunnelSenderAddress:
      description: |-
        IPv4 address for a sender node.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: string
          x-field-uid: 2
          default: 0.0.0.0
          format: ipv4
        values:
          type: array
          items:
            type: string
            format: ipv4
          x-field-uid: 3
          default:
          - 0.0.0.0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTemplateLspTunnelIpv4.Ipv4TunnelSenderAddress.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTemplateLspTunnelIpv4.Ipv4TunnelSenderAddress.Counter'
          x-field-uid: 6
    Pattern.Flow.RSVP.PathSenderTemplateLspTunnelIpv4.Reserved.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.RSVP.PathSenderTemplateLspTunnelIpv4.Reserved:
      description: |-
        Reserved field, MUST be zero.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTemplateLspTunnelIpv4.Reserved.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTemplateLspTunnelIpv4.Reserved.Counter'
          x-field-uid: 6
    Pattern.Flow.RSVP.PathSenderTemplateLspTunnelIpv4.LspId.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 1
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.RSVP.PathSenderTemplateLspTunnelIpv4.LspId:
      description: |-
        A 16-bit identifier used in the SENDER_TEMPLATE that can be changed to allow a sender to share resources with itself.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 1
        increment:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTemplateLspTunnelIpv4.LspId.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTemplateLspTunnelIpv4.LspId.Counter'
          x-field-uid: 6
    Pattern.Flow.RSVP.PathSenderTspecIntServ.Version.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 15
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 15
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 15
    Pattern.Flow.RSVP.PathSenderTspecIntServ.Version:
      description: |-
        Message format version number.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 15
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 15
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTspecIntServ.Version.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTspecIntServ.Version.Counter'
          x-field-uid: 6
    Pattern.Flow.RSVP.PathSenderTspecIntServ.Reserved1.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 4095
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 4095
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 4095
    Pattern.Flow.RSVP.PathSenderTspecIntServ.Reserved1:
      description: |-
        Reserved.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 4095
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 4095
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTspecIntServ.Reserved1.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTspecIntServ.Reserved1.Counter'
          x-field-uid: 6
    Pattern.Flow.RSVP.PathSenderTspecIntServ.OverallLength.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 7
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.RSVP.PathSenderTspecIntServ.OverallLength:
      description: |-
        Overall length (7 words not including header).
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 7
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 7
        increment:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTspecIntServ.OverallLength.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTspecIntServ.OverallLength.Counter'
          x-field-uid: 6
    Pattern.Flow.RSVP.PathSenderTspecIntServ.ServiceHeader.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 1
          format: uint32
          maximum: 255
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 255
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 255
    Pattern.Flow.RSVP.PathSenderTspecIntServ.ServiceHeader:
      description: |-
        Service header, service number - '1' (Generic information) if in a PATH message.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 255
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 255
          x-field-uid: 3
          default:
          - 1
        increment:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTspecIntServ.ServiceHeader.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTspecIntServ.ServiceHeader.Counter'
          x-field-uid: 6
    Pattern.Flow.RSVP.PathSenderTspecIntServ.ZeroBit.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 1
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 1
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 1
    Pattern.Flow.RSVP.PathSenderTspecIntServ.ZeroBit:
      description: |-
        MUST be 0.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 1
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 1
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTspecIntServ.ZeroBit.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTspecIntServ.ZeroBit.Counter'
          x-field-uid: 6
    Pattern.Flow.RSVP.PathSenderTspecIntServ.Reserved2.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 127
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 127
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 127
    Pattern.Flow.RSVP.PathSenderTspecIntServ.Reserved2:
      description: |-
        Reserved.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 127
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 127
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTspecIntServ.Reserved2.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTspecIntServ.Reserved2.Counter'
          x-field-uid: 6
    Pattern.Flow.RSVP.PathSenderTspecIntServ.LengthOfServiceData.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 6
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.RSVP.PathSenderTspecIntServ.LengthOfServiceData:
      description: |-
        Length of service data, 6 words not including per-service header.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 6
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 6
        increment:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTspecIntServ.LengthOfServiceData.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTspecIntServ.LengthOfServiceData.Counter'
          x-field-uid: 6
    Pattern.Flow.RSVP.PathSenderTspecIntServ.ParameterIdTokenBucketTspec.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 127
          format: uint32
          maximum: 255
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 255
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 255
    Pattern.Flow.RSVP.PathSenderTspecIntServ.ParameterIdTokenBucketTspec:
      description: |-
        Parameter ID, parameter 127 (Token Bucket TSpec)
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 127
          format: uint32
          maximum: 255
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 255
          x-field-uid: 3
          default:
          - 127
        increment:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTspecIntServ.ParameterIdTokenBucketTspec.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTspecIntServ.ParameterIdTokenBucketTspec.Counter'
          x-field-uid: 6
    Pattern.Flow.RSVP.PathSenderTspecIntServ.Parameter127Flag.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 255
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 255
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 255
    Pattern.Flow.RSVP.PathSenderTspecIntServ.Parameter127Flag:
      description: |-
        Parameter 127 flags (none set)
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 255
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 255
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTspecIntServ.Parameter127Flag.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTspecIntServ.Parameter127Flag.Counter'
          x-field-uid: 6
    Pattern.Flow.RSVP.PathSenderTspecIntServ.Parameter127Length.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 5
          format: uint32
          maximum: 65535
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 65535
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 65535
    Pattern.Flow.RSVP.PathSenderTspecIntServ.Parameter127Length:
      description: |-
        Parameter 127 length, 5 words not including per-service header
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 5
          format: uint32
          maximum: 65535
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 65535
          x-field-uid: 3
          default:
          - 5
        increment:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTspecIntServ.Parameter127Length.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTspecIntServ.Parameter127Length.Counter'
          x-field-uid: 6
    Pattern.Flow.RSVP.PathSenderTspecIntServ.MinimumPolicedUnit.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
    Pattern.Flow.RSVP.PathSenderTspecIntServ.MinimumPolicedUnit:
      description: |-
        The minimum policed unit parameter should generally be set equal to the size of the smallest packet generated by the application.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
        values:
          type: array
          items:
            type: integer
            format: uint32
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTspecIntServ.MinimumPolicedUnit.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTspecIntServ.MinimumPolicedUnit.Counter'
          x-field-uid: 6
    Pattern.Flow.RSVP.PathSenderTspecIntServ.MaximumPacketSize.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
    Pattern.Flow.RSVP.PathSenderTspecIntServ.MaximumPacketSize:
      description: |-
        The maximum packet size parameter should be set to the size of the largest packet the application might wish to generate. This value must, by definition, be equal to or larger than the value of The minimum policed unit.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
        values:
          type: array
          items:
            type: integer
            format: uint32
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTspecIntServ.MaximumPacketSize.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathSenderTspecIntServ.MaximumPacketSize.Counter'
          x-field-uid: 6
    Pattern.Flow.RSVP.PathRecordRouteType1Ipv4Address.Ipv4Address.Counter:
      description: |-
        ipv4 counter pattern
      type: object
      properties:
        start:
          type: string
          x-field-uid: 1
          default: 0.0.0.0
          format: ipv4
        step:
          type: string
          x-field-uid: 2
          default: 0.0.0.1
          format: ipv4
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
    Pattern.Flow.RSVP.PathRecordRouteType1Ipv4Address.Ipv4Address:
      description: |-
        A 32-bit unicast, host address.  Any network-reachable interface address is allowed here. Illegal addresses, such as certain loopback addresses, SHOULD NOT be used.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: string
          x-field-uid: 2
          default: 0.0.0.0
          format: ipv4
        values:
          type: array
          items:
            type: string
            format: ipv4
          x-field-uid: 3
          default:
          - 0.0.0.0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathRecordRouteType1Ipv4Address.Ipv4Address.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathRecordRouteType1Ipv4Address.Ipv4Address.Counter'
          x-field-uid: 6
    Pattern.Flow.RSVP.PathRecordRouteType1Ipv4Address.PrefixLength.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 32
          format: uint32
          maximum: 255
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 255
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 255
    Pattern.Flow.RSVP.PathRecordRouteType1Ipv4Address.PrefixLength:
      description: |-
        Prefix-length of IPv4 address.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 32
          format: uint32
          maximum: 255
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 255
          x-field-uid: 3
          default:
          - 32
        increment:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathRecordRouteType1Ipv4Address.PrefixLength.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathRecordRouteType1Ipv4Address.PrefixLength.Counter'
          x-field-uid: 6
    Pattern.Flow.RSVP.PathRecordRouteType1Label.Flags:
      description: |-
        0x01 = Global label. This flag indicates that the label will be understood if received on any interface.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
        value:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 255
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 255
          x-field-uid: 3
          default:
          - 1
    Pattern.Flow.RSVP.PathRecordRouteType1Label.CType:
      description: |-
        The C-Type of the included Label Object. Copied from the Label object.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
        value:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 255
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 255
          x-field-uid: 3
          default:
          - 1
    Pattern.Flow.RSVP.PathObjectsCustom.Type.Counter:
      description: |-
        integer counter pattern
      type: object
      properties:
        start:
          type: integer
          x-field-uid: 1
          default: 0
          format: uint32
          maximum: 255
        step:
          type: integer
          x-field-uid: 2
          default: 1
          format: uint32
          maximum: 255
        count:
          type: integer
          x-field-uid: 3
          default: 1
          format: uint32
          maximum: 255
    Pattern.Flow.RSVP.PathObjectsCustom.Type:
      description: |-
        User defined object type.
      type: object
      properties:
        choice:
          type: string
          x-enum:
            value:
              x-field-uid: 2
            values:
              x-field-uid: 3
            increment:
              x-field-uid: 4
            decrement:
              x-field-uid: 5
          default: value
          x-field-uid: 1
          enum:
          - value
          - values
          - increment
          - decrement
        value:
          type: integer
          x-field-uid: 2
          default: 0
          format: uint32
          maximum: 255
        values:
          type: array
          items:
            type: integer
            format: uint32
            maximum: 255
          x-field-uid: 3
          default:
          - 0
        increment:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathObjectsCustom.Type.Counter'
          x-field-uid: 5
        decrement:
          $ref: '#/components/schemas/Pattern.Flow.RSVP.PathObjectsCustom.Type.Counter'
          x-field-uid: 6
    Version:
      description: |-
        Version details
      type: object
      properties:
        api_spec_version:
          description: |-
            Version of API specification
          type: string
          default: ''
          x-field-uid: 1
        sdk_version:
          description: |-
            Version of SDK generated from API specification
          type: string
          default: ''
          x-field-uid: 2
        app_version:
          description: |-
            Version of application consuming or serving the API
          type: string
          default: ''
          x-field-uid: 3
