openapi: 3.0.0
info:
  title: DriveNets Network Cloud+ API
  description: >-
    API definitions for programmatic access to DriveNets Network Cloud+. The API calls are modelled after, and reflected in the Self-Service Portal User Interface.


    You receive your username and password from DriveNets. The credentials for the API and the SSP are the same. When you first sign up with the SSP, a POST API request (/auth/login) is sent with the following payload:

        {"username":"user@company.com","password":"mypass"}

    Where “user@company.com” and “mypass” are the email address and password you provided during sign up.


    The API call returns a token value. This is the authorization token for your account. This token is sent in the header of all API requests, as follows:

        Authorization: Bearer <token-value>

    The REST API enables you to interact with the DriveNets Network Cloud+ systems to provision services for your customers from your server-side applications.

    ### Base URL

    All APIs are served over HTTPS and all the URLs referenced in the API documentation have the following base:

        https://:domain/network-cloud/v1/:resource/

    Where:

      - domain - refers to the ISP Orchestration Gateway (e.g., portal.drivenets.net)

      - resource - refers to the resource on which the API call is made. A resource can be:

        - services

        - config

        - function

        - policy

      - version - refers to the API version.
  contact: {}
  version: '1.0'
servers:
- url: https://portal.drivenets.net
  variables: {}
paths:
  /network-cloud/login:
    post:
      tags:
      - Log in
      summary: AppController_login
      description: Use the credentials provided to log into the Self Service Portal.
      operationId: AppController_login
      parameters:
      - name: x-trace-id
        in: header
        description: An optional troubleshooting header that tracks a request to /from your API. It references multiple APIs in a configuration sequence. The ID transfers the request in the response body to enable you to view if any changes have occurred. You can only use hyphens and alphanumeric characters, for example -, a-z, A-Z, and 0-9.
        style: simple
        schema: {}
      - name: x-request-id
        in: header
        description: An optional troubleshooting header. A unique ID is passed to the server in the API call. The server includes that ID in every log created. It enables the server operator to easily search for a specific request in the log information using the unique ID instead of cross referencing timestamps and IP addresses when troubleshooting. You can only use hyphen and alphanumeric characters, for example  -, a-z, A-Z, and 0-9.
        style: simple
        schema: {}
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserLoginDTO'
        required: true
      responses:
        '200':
          description: Success
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessToken'
        '401':
          description: Unauthorized
          headers: {}
          content: {}
      deprecated: false
  /refresh-token:
    get:
      tags:
      - Log in
      summary: AppController_refreshToken
      description: Sends a request to Network Cloud+ to generate a new access token.
      operationId: AppController_refreshToken
      parameters:
      - name: x-trace-id
        in: header
        description: An optional troubleshooting header that tracks a request to /from your API. It references multiple APIs in a configuration sequence. The ID transfers the request in the response body to enable you to view if any changes have occurred. You can only use hyphens and alphanumeric characters, for example -, a-z, A-Z, and 0-9.
        style: simple
        schema: {}
      - name: x-request-id
        in: header
        description: An optional troubleshooting header. A unique ID is passed to the server in the API call. The server includes that ID in every log created. It enables the server operator to easily search for a specific request in the log information using the unique ID instead of cross referencing timestamps and IP addresses when troubleshooting. You can only use hyphen and alphanumeric characters, for example  -, a-z, A-Z, and 0-9.
        style: simple
        schema: {}
      responses:
        '200':
          description: Success
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RefreshedToken'
        '401':
          description: Access token is missing or invalid
          headers: {}
          content: {}
      deprecated: false
      security:
      - bearer: []
  /locations:
    get:
      tags:
      - Point of Presence (PoP) Services
      summary: getLocations
      description: Retrieve a list of all PoPs and the services available at each location.
      operationId: getLocations
      parameters:
      - name: x-trace-id
        in: header
        description: An optional troubleshooting header that tracks a request to /from your API. It references multiple APIs in a configuration sequence. The ID transfers the request in the response body to enable you to view if any changes have occurred. You can only use hyphens and alphanumeric characters, for example -, a-z, A-Z, and 0-9.
        style: simple
        schema: {}
      - name: x-request-id
        in: header
        description: An optional troubleshooting header. A unique ID is passed to the server in the API call. The server includes that ID in every log created. It enables the server operator to easily search for a specific request in the log information using the unique ID instead of cross referencing timestamps and IP addresses when troubleshooting. You can only use hyphen and alphanumeric characters, for example  -, a-z, A-Z, and 0-9.
        style: simple
        schema: {}
      - name: version
        in: path
        description: The API version.
        required: true
        style: simple
        schema:
          allOf:
          - $ref: '#/components/schemas/version'
          - description: The API version.
            example: v1
      responses:
        '200':
          description: Services per location
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ServicesPerLocationResponse'
                description: ''
        '401':
          description: Access token is missing or invalid
          headers: {}
          content: {}
        '403':
          description: Service information error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Service not found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          headers: {}
          content: {}
      deprecated: false
  /locations/{location}:
    get:
      tags:
      - Point of Presence (PoP) Services
      summary: getLocation
      description: Retrieve a list of the services available at a specific POP location.
      operationId: getLocation
      parameters:
      - name: x-trace-id
        in: header
        description: An optional troubleshooting header that tracks a request to /from your API. It references multiple APIs in a configuration sequence. The ID transfers the request in the response body to enable you to view if any changes have occurred. You can only use hyphens and alphanumeric characters, for example -, a-z, A-Z, and 0-9.
        style: simple
        schema: {}
      - name: x-request-id
        in: header
        description: An optional troubleshooting header. A unique ID is passed to the server in the API call. The server includes that ID in every log created. It enables the server operator to easily search for a specific request in the log information using the unique ID instead of cross referencing timestamps and IP addresses when troubleshooting. You can only use hyphen and alphanumeric characters, for example  -, a-z, A-Z, and 0-9.
        style: simple
        schema: {}
      - name: location
        in: path
        description: ''
        required: true
        style: simple
        schema: {}
      - name: version
        in: path
        description: The API version.
        required: true
        style: simple
        schema:
          allOf:
          - $ref: '#/components/schemas/version'
          - description: The API version.
            example: v1
      responses:
        '200':
          description: Services per location information
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ServicesPerLocationResponse'
                description: ''
        '401':
          description: Access token is missing or invalid
          headers: {}
          content: {}
        '403':
          description: Service information error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Service not found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          headers: {}
          content: {}
      deprecated: false
  /:
    post:
      tags:
      - Services
      summary: postServiceItem
      description: >-
        The services you can add:


        - **Equinix Connect** - Creates a connection between Network Cloud+ and the customer's CPE in the Equinix network.


        - **Internet Gateway** - Connects a customer to the internet.


        - **Internet Service Provider** - Connects the internet gateway to an ISP.


        Combining one or more atomic services and then adding a policy create a solution. For example, the four atomic services above and several policies form the Internet Connect solution.


        The response includes a unique service ID named 'ID' that references the specific service and its customer. You must save this ID to modify or delete a service.
      operationId: postServiceItem
      parameters:
      - name: x-trace-id
        in: header
        description: An optional troubleshooting header that tracks a request to /from your API. It references multiple APIs in a configuration sequence. The ID transfers the request in the response body to enable you to view if any changes have occurred. You can only use hyphens and alphanumeric characters, for example -, a-z, A-Z, and 0-9.
        style: simple
        schema: {}
      - name: x-request-id
        in: header
        description: An optional troubleshooting header. A unique ID is passed to the server in the API call. The server includes that ID in every log created. It enables the server operator to easily search for a specific request in the log information using the unique ID instead of cross referencing timestamps and IP addresses when troubleshooting. You can only use hyphen and alphanumeric characters, for example  -, a-z, A-Z, and 0-9.
        style: simple
        schema: {}
      - name: x-account-id
        in: header
        description: A unique ID issued by the Service Provider to identify a customer. You can only use hyphen and alphanumeric characters, for example -, a-z, A-Z, and 0-9.
        style: simple
        schema: {}
      - name: version
        in: path
        description: The API version.
        required: true
        style: simple
        schema:
          allOf:
          - $ref: '#/components/schemas/version'
          - description: The API version.
            example: v1
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateServiceBodyRequest'
        required: true
      responses:
        '202':
          description: Service configuration received successfully, config initiated
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceBodyResponse'
        '400':
          description: Failed to add service
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Access token is missing or invalid
          headers: {}
          content: {}
        '500':
          description: Internal server error
          headers: {}
          content: {}
      deprecated: false
  /{businessSid}:
    put:
      tags:
      - Services
      summary: putServiceItem
      description: ''
      operationId: putServiceItem
      parameters:
      - name: x-trace-id
        in: header
        description: An optional troubleshooting header that tracks a request to /from your API. It references multiple APIs in a configuration sequence. The ID transfers the request in the response body to enable you to view if any changes have occurred. You can only use hyphens and alphanumeric characters, for example -, a-z, A-Z, and 0-9.
        style: simple
        schema: {}
      - name: x-request-id
        in: header
        description: An optional troubleshooting header. A unique ID is passed to the server in the API call. The server includes that ID in every log created. It enables the server operator to easily search for a specific request in the log information using the unique ID instead of cross referencing timestamps and IP addresses when troubleshooting. You can only use hyphen and alphanumeric characters, for example  -, a-z, A-Z, and 0-9.
        style: simple
        schema: {}
      - name: x-account-id
        in: header
        description: A unique ID issued by the Service Provider to identify a customer. You can only use hyphen and alphanumeric characters, for example -, a-z, A-Z, and 0-9.
        style: simple
        schema: {}
      - name: businessSid
        in: path
        description: Unique ID provided by the Service Provider to identify a solution, which is a collection of several atomic services. When forming a solution, use the same BusinessSID.
        required: true
        style: simple
        schema: {}
      - name: version
        in: path
        description: The API version.
        required: true
        style: simple
        schema:
          allOf:
          - $ref: '#/components/schemas/version'
          - description: The API version.
            example: v1
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ServiceBodyRequest'
        required: true
      responses:
        '202':
          description: Service configuration received successfully, config initiated
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceBodyResponse'
        '204':
          description: Service already configured
          headers: {}
          content: {}
        '400':
          description: Failed to configure service
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Access token is missing or invalid
          headers: {}
          content: {}
        '423':
          description: Service is locked. configuration in progress
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceBusyResponse'
        '500':
          description: Internal server error
          headers: {}
          content: {}
      deprecated: false
    delete:
      tags:
      - Services
      summary: deleteServiceItem
      description: Delete all services that form the business service ID.
      operationId: deleteServiceItem
      parameters:
      - name: x-trace-id
        in: header
        description: An optional troubleshooting header that tracks a request to /from your API. It references multiple APIs in a configuration sequence. The ID transfers the request in the response body to enable you to view if any changes have occurred. You can only use hyphens and alphanumeric characters, for example -, a-z, A-Z, and 0-9.
        style: simple
        schema: {}
      - name: x-request-id
        in: header
        description: An optional troubleshooting header. A unique ID is passed to the server in the API call. The server includes that ID in every log created. It enables the server operator to easily search for a specific request in the log information using the unique ID instead of cross referencing timestamps and IP addresses when troubleshooting. You can only use hyphen and alphanumeric characters, for example  -, a-z, A-Z, and 0-9.
        style: simple
        schema: {}
      - name: x-account-id
        in: header
        description: A unique ID issued by the Service Provider to identify a customer. You can only use hyphen and alphanumeric characters, for example -, a-z, A-Z, and 0-9.
        style: simple
        schema: {}
      - name: businessSid
        in: path
        description: Unique ID provided by the Service Provider to identify a solution, which is a collection of several atomic services. When forming a solution, use the same BusinessSID.
        required: true
        style: simple
        schema: {}
      - name: version
        in: path
        description: The API version.
        required: true
        style: simple
        schema:
          allOf:
          - $ref: '#/components/schemas/version'
          - description: The API version.
            example: v1
      responses:
        '200':
          description: Service deleted successfully
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteServiceResponse'
        '401':
          description: Access token is missing or invalid
          headers: {}
          content: {}
        '403':
          description: Failed to delete service
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Service not found
          headers: {}
          content: {}
        '500':
          description: Internal server error
          headers: {}
          content: {}
      deprecated: false
    get:
      tags:
      - Services
      summary: getServiceItem
      description: ''
      operationId: getServiceItem
      parameters:
      - name: businessSid
        in: path
        description: Unique ID provided by the Service Provider to identify a solution, which is a collection of several atomic services. When forming a solution, use the same BusinessSID.
        required: true
        style: simple
        schema: {}
      - name: version
        in: path
        description: The API version.
        required: true
        style: simple
        schema:
          allOf:
          - $ref: '#/components/schemas/version'
          - description: The API version.
            example: v1
      responses:
        '200':
          description: Service information
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceBodyRequest'
        '401':
          description: Access token is missing or invalid
          headers: {}
          content: {}
        '403':
          description: 'Error: Service info'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Service not found
          headers: {}
          content: {}
        '500':
          description: Internal server error
          headers: {}
          content: {}
      deprecated: false
  /{businessSid}/state:
    get:
      tags:
      - Service State
      summary: getServiceItemState
      description: Get the operational state of a particular business service ID.
      operationId: getServiceItemState
      parameters:
      - name: businessSid
        in: path
        description: Unique ID provided by the Service Provider to identify a solution, which is a collection of several atomic services. When forming a solution, use the same BusinessSID.
        required: true
        style: simple
        schema: {}
      - name: version
        in: path
        description: The API version.
        required: true
        style: simple
        schema:
          allOf:
          - $ref: '#/components/schemas/version'
          - description: The API version.
            example: v1
      responses:
        '200':
          description: Service state
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetServiceStateResponse'
        '401':
          description: Access token is missing or invalid
          headers: {}
          content: {}
        '403':
          description: Service state error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Service not found
          headers: {}
          content: {}
        '500':
          description: Internal server error
          headers: {}
          content: {}
      deprecated: false
  /{businessSid}/monitoring:
    get:
      tags:
      - Service State
      summary: getServiceMonitoring
      description: ''
      operationId: getServiceMonitoring
      parameters:
      - name: businessSid
        in: path
        description: Unique ID provided by the Service Provider to identify a solution, which is a collection of several atomic services. When forming a solution, use the same BusinessSID.
        required: true
        style: simple
        schema: {}
      - name: version
        in: path
        description: The API version.
        required: true
        style: simple
        schema:
          allOf:
          - $ref: '#/components/schemas/version'
          - description: The API version.
            example: v1
      responses:
        '200':
          description: Service monitoring data
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetServiceMonitoringResponse'
        '401':
          description: Access token is missing or invalid
          headers: {}
          content: {}
        '403':
          description: Service state error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Service not found
          headers: {}
          content: {}
        '500':
          description: Internal server error
          headers: {}
          content: {}
      deprecated: false
  /serviceNode/command:
    post:
      tags:
      - Show Command
      summary: showCommand
      description: Show commands display information about the system and system configuration, useful for troubleshooting. Information about the show commands can be found in DriveNets Documentation portal.
      operationId: showCommand
      parameters:
      - name: version
        in: path
        description: The API version.
        required: true
        style: simple
        schema:
          allOf:
          - $ref: '#/components/schemas/version'
          - description: The API version.
            example: v1
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ShowCommandBodyRequest'
        required: true
      responses:
        '200':
          description: Show command response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommandResponse'
        '400':
          description: Show command response failed
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Access token is missing or invalid
          headers: {}
          content: {}
        '500':
          description: Internal server error
          headers: {}
          content: {}
      deprecated: false
components:
  schemas:
    IPv4_Address:
      title: IPv4_Address
      type: object
      properties:
        ipv4Address:
          type: string
          description: An IP v4 address.
        ipv4Prefix:
          type: integer
          description: The prefix of the address (CIDR).
          format: int32
    IPv6_Address:
      title: IPv6_Address
      type: object
      properties:
        ipv6Address:
          type: string
          description: An IP v6 address.
        ipv6Prefix:
          type: integer
          description: The prefix of the address (CIDR)
          format: int32
    Provider_Aggregated_Address:
      title: Provider_Aggregated_Address
      type: object
      properties:
        ipv4AggregatedAddress:
          $ref: '#/components/schemas/Ipv4AggregatedAddress'
        ipv6AggregatedAddress:
          $ref: '#/components/schemas/Ipv6AggregatedAddress'
      description: Private IP addresses provided from DriveNets' IP address pool. The subnet allocated is the same for all connections.
    IG_Provider_Independent_Address:
      title: IG_Provider_Independent_Address
      type: object
      properties:
        ipv4IndependentAddress:
          $ref: '#/components/schemas/IPv4_Address'
        ipv6IndependentAddress:
          $ref: '#/components/schemas/IPv6_Address'
      description: Public or private IP addresses provided by the customer. Two sets of addresses must be created for redundancy.
    IG_Provider_Aggregated_Address:
      title: IG_Provider_Aggregated_Address
      type: object
      properties:
        ipv4AggregatedAddress:
          $ref: '#/components/schemas/Ipv4AggregatedAddress1'
        ipv6AggregatedAddress:
          $ref: '#/components/schemas/Ipv6AggregatedAddress1'
      description: Private IP addresses provided from DriveNets' IP address pool. The subnet allocated is the same for all connections.
    L3VpnParams:
      title: L3VpnParams
      type: object
      properties:
        rt:
          type: string
    FunctionParams:
      title: FunctionParams
      type: object
      properties:
        location:
          type: string
        direction:
          $ref: '#/components/schemas/FunctionDirection'
        functionOrder:
          maximum: 1
          minimum: 1
          type: integer
          format: int32
          default: 1
        params:
          oneOf:
          - $ref: '#/components/schemas/NatParams'
    CreateServiceBodyRequest:
      title: CreateServiceBodyRequest
      required:
      - businessSid
      - atomicServices
      type: object
      properties:
        businessSid:
          type: string
          description: Unique ID provided by the Service Provider to identify a solution, which is a collection of several atomic services. When forming a solution, use the same BusinessSID.
          example: 34314231-3425423-123f23-23a2g42
        businessSidDescription:
          type: string
          description: Business id description
          example: vADI service of Pepsi
        atomicServices:
          type: array
          items:
            $ref: '#/components/schemas/AtomicService'
          description: Entries for atomic services
        policies:
          type: array
          items:
            $ref: '#/components/schemas/Policy'
          description: Entries for policies
    ServiceBodyRequest:
      title: ServiceBodyRequest
      type: object
      properties:
        businessSidDescription:
          type: string
          description: Business id description
          example: vADI service of Pepsi
        atomicServices:
          type: array
          items:
            $ref: '#/components/schemas/AtomicService1'
          description: Entries for atomic services
        policies:
          type: array
          items:
            $ref: '#/components/schemas/Policy1'
          description: Entries for policies
    ServiceBodyResponse:
      title: ServiceBodyResponse
      type: object
      properties:
        businessSid:
          type: string
          description: Unique ID provided by the Service Provider to identify a solution, which is a collection of several atomic services. When forming a solution, use the same BusinessSID.
          example: 34314231-3425423-123f23-23a2g42
        atomicServices:
          type: array
          items:
            $ref: '#/components/schemas/AtomicService2'
          description: Entries for atomic services
        policies:
          type: array
          items:
            $ref: '#/components/schemas/Policy2'
          description: Entries for policies
    DeleteServiceResponse:
      title: DeleteServiceResponse
      required:
      - id
      type: object
      properties:
        id:
          type: string
          description: Unique service ID
          example: abcdef-abcdef-12345-12345
    EquinixConnectParams:
      title: EquinixConnectParams
      required:
      - location
      - fabricSubType
      - bandwidth
      - ipAddress
      - routing
      type: object
      properties:
        location:
          type: string
          description: Location of the peering location
        fabricSubType:
          $ref: '#/components/schemas/FabricSubType'
        bandwidth:
          $ref: '#/components/schemas/Bandwidth'
        isRedundant:
          type: boolean
          default: false
        ipAddress:
          $ref: '#/components/schemas/IpAddress'
        customerIpAddress:
          maxItems: 2
          type: array
          items:
            $ref: '#/components/schemas/Provider_Independent_Address'
          description: Public or private IP addresses provided by the customer. Two sets of addresses must be created for redundancy.
        routing:
          $ref: '#/components/schemas/Routing1'
        description:
          type: string
    EquinixConnectResponseParams:
      title: EquinixConnectResponseParams
      type: object
      properties:
        location:
          type: string
          description: Location of the peering location
        fabricSubType:
          $ref: '#/components/schemas/FabricSubType'
        bandwidth:
          $ref: '#/components/schemas/Bandwidth'
        isRedundant:
          type: boolean
          default: false
        ipAddress:
          $ref: '#/components/schemas/IpAddress'
        customerIpAddress:
          maxItems: 2
          type: array
          items:
            $ref: '#/components/schemas/Provider_Independent_Address'
          description: Public or private IP addresses provided by the customer. Two sets of addresses must be created for redundancy.
        routing:
          $ref: '#/components/schemas/Routing1'
        description:
          type: string
        authenticationKey:
          type: string
          description: Drivenets-assigned authentication key uuid, a 128-bit identifier.
        serviceProfile:
          type: string
          description: Name of Drivenets service profile in Equinix to connect to.
    AzureConnectParams:
      title: AzureConnectParams
      required:
      - sKey
      - bandwidth
      - location
      - ipAddress
      - routing
      type: object
      properties:
        sKey:
          type: string
          description: The s-key generated by Azure for the ExpressRoute service
        bandwidth:
          $ref: '#/components/schemas/Bandwidth1'
        location:
          type: string
        ipAddress:
          allOf:
          - $ref: '#/components/schemas/IpAddress1'
          - description: The IP address to be used for Azure, bpth IPv4 (mask /30) and IPv6 (mask /126) addresses will be allocated from address pool, IPv4 address can be private.
        routing:
          $ref: '#/components/schemas/Routing'
        outboundRoutingPolicy:
          allOf:
          - $ref: '#/components/schemas/OutboundRoutingPolicy'
          - description: Configuration details that control bgp routes advertisment from the atomic service (of the customer).
        inboundRoutingPolicy:
          allOf:
          - $ref: '#/components/schemas/InboundRoutingPolicy'
          - description: Configuration details that control ingress bgp routes advertisment towards the atomic service (of the customer).
    InternetGatewayParams:
      title: InternetGatewayParams
      required:
      - location
      type: object
      properties:
        location:
          type: string
          description: Location of the internet gataeway
        ipAddress:
          oneOf:
          - $ref: '#/components/schemas/IG_Provider_Independent_Address'
          - $ref: '#/components/schemas/IG_Provider_Aggregated_Address'
        ispRoutingPolicy:
          allOf:
          - $ref: '#/components/schemas/InboundRoutingPolicy'
          - description: Configuration details that control ingress bgp routes advertisment towards the atomic service (of the customer).
        internetGatewayRedundancyMode:
          $ref: '#/components/schemas/InternetGatewayRedundancyMode'
    InternetServiceProviderParams:
      title: InternetServiceProviderParams
      required:
      - location
      - bandwidth
      type: object
      properties:
        location:
          type: string
        bandwidth:
          $ref: '#/components/schemas/Bandwidth1'
        provider:
          allOf:
          - $ref: '#/components/schemas/Provider'
          - description: The provider we're connected to
        isRedundant:
          type: boolean
          default: false
    NatParams:
      title: NatParams
      type: object
      properties:
        translationsRules:
          anyOf:
          - type: array
            items:
              $ref: '#/components/schemas/NatStaticRule2'
          - type: array
            items:
              $ref: '#/components/schemas/NaptStaticRule2'
          - type: array
            items:
              $ref: '#/components/schemas/NatDynamicRule2'
          - type: array
            items:
              $ref: '#/components/schemas/NaptDynamicRule2'
        timeouts:
          $ref: '#/components/schemas/NatTimeouts'
    NatStaticRule:
      title: NatStaticRule
      type: object
      properties:
        internalIP:
          type: string
        externalIP:
          $ref: '#/components/schemas/ExternalIP'
      description: NAT static rule - ip to ip
    NaptStaticRule:
      title: NaptStaticRule
      type: object
      properties:
        internalIP:
          type: string
        internalPort:
          type: integer
          format: int32
        externalIP:
          $ref: '#/components/schemas/ExternalIP'
        externalPort:
          type: integer
          format: int32
        protocol:
          allOf:
          - $ref: '#/components/schemas/NatProtocolType'
          - description: ip protocol types for NAT rules.
      description: PAT static rule - ip and port to ip and port
    NatDynamicRule:
      title: NatDynamicRule
      type: object
      properties:
        internalPrefix:
          type: array
          items:
            $ref: '#/components/schemas/IPv4_Address'
          description: ''
        externalPool:
          $ref: '#/components/schemas/ExternalPool'
      description: NAT dynamic rule - subnet/s to ip addresses pool
    FunctionDirection:
      title: FunctionDirection
      type: object
      properties:
        internalAtomicService:
          oneOf:
          - type: string
            example: 12345-12345-abcdef-abcdef
          - type: string
            example: MyEquinixConnect1
        externalAtomicService:
          oneOf:
          - type: string
            example: 12345-12345-abcdef-abcdef
          - type: string
            example: MyEquinixConnect1
    NaptDynamicRule:
      title: NaptDynamicRule
      type: object
      properties:
        internalPrefix:
          type: array
          items:
            $ref: '#/components/schemas/IPv4_Address'
          description: ''
        externalIP:
          $ref: '#/components/schemas/ExternalIP'
      description: PAT dynamic rule - subnet/s to single ip address
    NatTimeouts:
      title: NatTimeouts
      type: object
      properties:
        udpTimeout:
          $ref: '#/components/schemas/UdpTimeout'
        tcpTimeout:
          $ref: '#/components/schemas/TcpTimeout'
        icmpTimeout:
          $ref: '#/components/schemas/IcmpTimeout'
        fragmentedTimeout:
          $ref: '#/components/schemas/FragmentedTimeout'
        ipTimeout:
          $ref: '#/components/schemas/IpTimeout'
    UdpTimeout:
      title: UdpTimeout
      type: object
      properties:
        udpTimeout:
          maximum: 7440
          minimum: 10
          type: integer
          format: int32
          default: 300
    TcpTimeout:
      title: TcpTimeout
      type: object
      properties:
        tcpTimeout:
          maximum: 10000
          minimum: 10
          type: integer
          format: int32
          default: 7440
    IcmpTimeout:
      title: IcmpTimeout
      type: object
      properties:
        icmpTimeout:
          maximum: 10000
          minimum: 10
          type: integer
          format: int32
          default: 60
    FragmentedTimeout:
      title: FragmentedTimeout
      type: object
      properties:
        fragmentedTimeout:
          maximum: 120
          minimum: 10
          type: integer
          format: int32
          default: 120
    IpTimeout:
      title: IpTimeout
      type: object
      properties:
        ipTimeout:
          maximum: 10000
          minimum: 10
          type: integer
          format: int32
          default: 7440
    NatProtocolType:
      title: NatProtocolType
      enum:
      - tcp
      - udp
      type: string
      description: ip protocol types for NAT rules.
    AzureBgpRouting:
      title: AzureBgpRouting
      type: object
      properties:
        isBfdEnabled:
          type: boolean
          default: false
        bgpPeering:
          maxItems: 2
          type: array
          items:
            $ref: '#/components/schemas/BgpPeering2'
          description: ''
    BgpRouting:
      title: BgpRouting
      type: object
      properties:
        isBfdEnabled:
          type: boolean
          default: false
        bgpPeering:
          maxItems: 2
          type: array
          items:
            $ref: '#/components/schemas/BgpPeering4'
          description: ''
    staticRoute:
      title: staticRoute
      type: object
      properties:
        staticRoute:
          maxItems: 10
          type: array
          items:
            $ref: '#/components/schemas/static_route'
          description: Configuration details for the Home Cloud Gateway service
    bgp_peering_oper_object:
      title: bgp_peering_oper_object
      type: object
      properties:
        bgpPeering:
          $ref: '#/components/schemas/BgpPeering3'
    static_oper_object:
      title: static_oper_object
      type: object
      properties:
        staticRoute:
          maxItems: 10
          type: array
          items:
            $ref: '#/components/schemas/static_route'
          description: Configuration details for the Home Cloud Gateway service
    bgp_peering:
      title: bgp_peering
      required:
      - localAsn
      type: object
      properties:
        remoteAsn:
          type: string
          description: Remote customer ASN
          example: 12076 - For Azure.
        localAsn:
          type: string
          description: Local device ASN
          example: '13979'
        bgpTimeout:
          maximum: 180
          minimum: 30
          type: integer
          description: Represents the BGP hold-time timer, bgp keep-alive will be implicitly calculated as bgpTimeout/3.
          format: int32
          default: 180
        bgpSecret:
          type: string
    common_bgp_peering:
      title: common_bgp_peering
      required:
      - localAsn
      type: object
      properties:
        remoteAsn:
          type: string
          description: Remote customer ASN
          example: 12076 - For Azure.
        localAsn:
          type: string
          description: Local device ASN
          example: '13979'
        bgpTimeout:
          maximum: 180
          minimum: 30
          type: integer
          description: Represents the BGP hold-time timer, bgp keep-alive will be implicitly calculated as bgpTimeout/3.
          format: int32
          default: 180
    BgpSecret:
      title: BgpSecret
      type: object
      properties:
        bgpSecret:
          type: string
    IPv6StaticRoute:
      title: IPv6StaticRoute
      type: object
      properties:
        ipv6Network:
          type: string
          description: Network to be routed via static route
        ipv6Prefix:
          type: integer
          description: Prefix size of network to be routed
          format: int32
        nextHop:
          type: string
      description: IPv4 Static route
    IPv4StaticRoute:
      title: IPv4StaticRoute
      type: object
      properties:
        ipv4Network:
          type: string
          description: Network to be routed via static route
        ipv4Prefix:
          type: integer
          description: Prefix size of network to be routed
          format: int32
        nextHop:
          type: string
      description: IPv4 Static route
    InboundRoutingPolicy:
      title: InboundRoutingPolicy
      type: object
      properties:
        prefixFilter:
          maxItems: 20
          type: array
          items:
            $ref: '#/components/schemas/prefix_rule'
          description: Configuration details for prefix filtering. The rules will be applied in the order they are configured, until first match is made.
        isDefaultRoute:
          type: boolean
          description: should the customer receive default route via bgp.
          default: true
          example: true
      description: Configuration details that control ingress bgp routes advertisment towards the atomic service (of the customer).
    OutboundRoutingPolicy:
      title: OutboundRoutingPolicy
      type: object
      properties:
        prefixFilter:
          maxItems: 20
          type: array
          items:
            $ref: '#/components/schemas/prefix_rule'
          description: Configuration details for prefix filtering. The rules will be applied in the order they are configured, until first match is made.
        isDefaultRoute:
          type: boolean
          description: should the customer receive default route via bgp.
          default: true
          example: true
      description: Configuration details that control bgp routes advertisment from the atomic service (of the customer).
    prefix_rule:
      title: prefix_rule
      type: object
      properties:
        ipv4Address:
          type: string
          description: An IP v4 address.
        ipv4Prefix:
          type: integer
          description: The prefix of the address (CIDR).
          format: int32
        gtV4:
          maximum: 32
          minimum: 0
          type: integer
          description: Define prefix length greater then or equal to
          format: int32
        ltV4:
          maximum: 32
          minimum: 0
          type: integer
          description: Define prefix length less then or equal to
          format: int32
        ipv6Address:
          type: string
          description: An IP v6 address.
        ipv6Prefix:
          type: integer
          description: The prefix of the address (CIDR)
          format: int32
        gtV6:
          maximum: 128
          minimum: 0
          type: integer
          description: Define prefix length greater then or equal to
          format: int32
        ltV6:
          maximum: 128
          minimum: 0
          type: integer
          description: Define prefix length less then or equal to
          format: int32
        ruleType:
          allOf:
          - $ref: '#/components/schemas/RuleType'
          - description: Define if prefix is permitted or denied
    prefix_ipv4:
      title: prefix_ipv4
      type: object
      properties:
        ipv4Address:
          type: string
          description: An IP v4 address.
        ipv4Prefix:
          type: integer
          description: The prefix of the address (CIDR).
          format: int32
        gtV4:
          maximum: 32
          minimum: 0
          type: integer
          description: Define prefix length greater then or equal to
          format: int32
        ltV4:
          maximum: 32
          minimum: 0
          type: integer
          description: Define prefix length less then or equal to
          format: int32
    prefix_ipv6:
      title: prefix_ipv6
      type: object
      properties:
        ipv6Address:
          type: string
          description: An IP v6 address.
        ipv6Prefix:
          type: integer
          description: The prefix of the address (CIDR)
          format: int32
        gtV6:
          maximum: 128
          minimum: 0
          type: integer
          description: Define prefix length greater then or equal to
          format: int32
        ltV6:
          maximum: 128
          minimum: 0
          type: integer
          description: Define prefix length less then or equal to
          format: int32
    EquinixConnectOperParams:
      title: EquinixConnectOperParams
      type: object
      properties:
        availableLocations:
          type: array
          items:
            type: string
          description: ''
          example:
          - dallas
          - los-angeles
          - houston
        equinixConnectCircuit:
          type: array
          items:
            $ref: '#/components/schemas/EquinixConnectCircuit'
          description: ''
    BgpState:
      title: BgpState
      type: object
      properties:
        bgpStateV4:
          allOf:
          - $ref: '#/components/schemas/BgpStates'
          - description: BGP peering state
        bgpStateV6:
          allOf:
          - $ref: '#/components/schemas/BgpStates'
          - description: BGP peering state
      description: BGP peering state
    BgpStates:
      title: BgpStates
      enum:
      - up
      - down
      type: string
      description: BGP peering state
    BfdState:
      title: BfdState
      enum:
      - up
      - down
      type: string
      description: BFD session state
    linkState:
      title: linkState
      enum:
      - up
      - down
      type: string
      description: Link state
    connectivityDetails:
      title: connectivityDetails
      type: object
      properties:
        connectionUuid:
          type: string
          description: The connection UUID
        linkUuid:
          type: string
          description: The link UUID
      description: Holds the link and connection UUIDs
    IGOperParams:
      title: IGOperParams
      type: object
      properties:
        availableLocations:
          type: array
          items:
            type: string
          description: ''
          example:
          - dallas
          - los-angeles
          - houston
        igCircuit:
          type: array
          items:
            $ref: '#/components/schemas/IgCircuit'
          description: ''
    ISPOperParams:
      title: ISPOperParams
      type: object
      properties:
        availableLocations:
          type: array
          items:
            type: string
          description: ''
          example:
          - dallas
          - los-angeles
          - houston
        ispCircuit:
          type: array
          items:
            $ref: '#/components/schemas/IspCircuit'
          description: ''
    AzureConnectOperParams:
      title: AzureConnectOperParams
      type: object
      properties:
        availableLocations:
          type: array
          items:
            type: string
          description: ''
          example:
          - dallas
          - los-angeles
          - houston
        sKey:
          type: string
          description: Azure service key.
        azureConnectCircuit:
          type: array
          items:
            $ref: '#/components/schemas/AzureConnectCircuit'
          description: ''
    ErrorResponse:
      title: ErrorResponse
      required:
      - message
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error'
          description: ''
        message:
          type: string
          example: Failed to configure service
    NatOperParams:
      title: NatOperParams
      type: object
      properties:
        location:
          type: string
        natState:
          $ref: '#/components/schemas/NatState'
        error:
          $ref: '#/components/schemas/ErrorStructure2'
    GetServiceStateResponse:
      title: GetServiceStateResponse
      type: object
      properties:
        businessSid:
          type: string
          description: Unique ID provided by the Service Provider to identify a solution, which is a collection of several atomic services. When forming a solution, use the same BusinessSID.
          example: 34314231-3425423-123f23-23a2g42
        businessSidState:
          $ref: '#/components/schemas/BusinessSidState'
        atomicServices:
          type: array
          items:
            $ref: '#/components/schemas/AtomicService3'
          description: Entries for atomic services
        policies:
          type: array
          items:
            $ref: '#/components/schemas/Policy3'
          description: Entries for policies
    GetServiceMonitoringResponse:
      title: GetServiceMonitoringResponse
      type: object
      properties:
        businessSid:
          type: string
          description: Unique ID provided by the Service Provider to identify a solution, which is a collection of several atomic services. When forming a solution, use the same BusinessSID.
          example: 34314231-3425423-123f23-23a2g42
        atomicServices:
          type: array
          items:
            $ref: '#/components/schemas/AtomicService4'
          description: Entries for atomic services
    GetRemoteBgpPrefixList:
      title: GetRemoteBgpPrefixList
      type: object
      properties:
        bgpIpV4PrefixList:
          type: array
          items:
            type: string
          description: ''
          example:
          - 123.1.0.0/24
        bgpIpV6PrefixList:
          type: array
          items:
            type: string
          description: ''
          example:
          - 3FFE:FFFF:0:CD31::/120
    GetRemotePeeringState:
      title: GetRemotePeeringState
      type: object
      properties:
        peeringInfo:
          type: array
          items:
            $ref: '#/components/schemas/PeeringInfo'
          description: ''
    GetRemotePortNames:
      title: GetRemotePortNames
      type: object
      properties:
        primaryPortName:
          type: string
          description: The primary port name
        secondaryPortName:
          type: string
          description: The secondary port name
    GetAzureConnectCircuitUsage:
      title: GetAzureConnectCircuitUsage
      type: object
      properties:
        remoteCounters:
          $ref: '#/components/schemas/GetCircuitUsage'
        error:
          $ref: '#/components/schemas/ErrorStructure2'
    GetCircuitUsage:
      title: GetCircuitUsage
      type: object
      properties:
        counters:
          type: array
          items:
            $ref: '#/components/schemas/Counter'
          description: ''
    CreatePolicyBodyRequest:
      title: CreatePolicyBodyRequest
      required:
      - sourceAtomicServiceTransactionTag
      - DestinationAtomicServiceTransactionTag
      type: object
      properties:
        sourceAtomicServiceTransactionTag:
          type: string
          description: Unique TAG of component per transaction
          example: MyEquinixConnect1
        DestinationAtomicServiceTransactionTag:
          type: string
          description: Unique TAG of component per transaction
          example: MyEquinixConnect1
    PolicyBodyRequest:
      title: PolicyBodyRequest
      type: object
      properties:
        sourceAtomicService:
          oneOf:
          - type: string
            example: 12345-12345-abcdef-abcdef
          - type: string
            example: MyEquinixConnect1
        destinationAtomicService:
          oneOf:
          - type: string
            example: 12345-12345-abcdef-abcdef
          - type: string
            example: MyEquinixConnect1
    ResourceBusyResponse:
      title: ResourceBusyResponse
      type: object
      properties:
        id:
          type: string
          description: ID of the atomic service
    ShowCommandBodyRequest:
      title: ShowCommandBodyRequest
      required:
      - operation
      - snDnId
      - snDnName
      - qualifier
      type: object
      properties:
        operation:
          type: string
          description: >-
            Show Commands:
                    BGP, BGP_NEIGHBORS, BGP_SUMMARY,
                    BGP_ROUTE, BGP_NEXTHOP_REACHABLE,
                    BGP_NEXTHOP, BGP_IPV4, BGP_IPV4_PREFIX_LIST
                    BGP_IPV6, BGP_IPV6_PREFIX_LIST, INTERFACE
                    INTERFACE_COUNTERS, VRF
          example: INTERFACE
        snDnId:
          type: string
          description: Unique ID of service node
          example: 12345-12345-abcdef-abcdef
        snDnName:
          type: string
          description: Service Node Name
          example: Dallas324T
        qualifier:
          type: string
          description: Qualifier
          example: ge100-0/0/0
    CommandResponse:
      title: CommandResponse
      required:
      - message
      - status
      type: object
      properties:
        message:
          type: string
          example: '|  Interface    |   Admin   |   Operational   |   VRF   ||  ge100-0/0/0  |  Enabled  |      up         | default |'
        status:
          type: string
          description: Failed to add function
          example: nack
    UserLoginDTO:
      title: UserLoginDTO
      required:
      - username
      - password
      type: object
      properties:
        username:
          type: string
          description: Enter the username you were provided during sign up.
        password:
          type: string
          description: Enter the password you were provided during sign up.
    AccessToken:
      title: AccessToken
      type: object
      properties:
        access_token:
          type: string
    RefreshedToken:
      title: RefreshedToken
      type: object
      properties:
        refreshed_token:
          type: string
    AtomicService:
      title: AtomicService
      required:
      - atomicServiceTransactionTag
      - atomicServiceType
      type: object
      properties:
        atomicServiceTransactionTag:
          type: string
          description: Unique TAG of component per transaction
          example: MyEquinixConnect1
        atomicServiceType:
          allOf:
          - $ref: '#/components/schemas/AtomicServiceType'
          - description: Type of the atomic service.
        atomicServiceParams:
          $ref: '#/components/schemas/AtomicServiceParams'
        circuits:
          type: array
          items:
            $ref: '#/components/schemas/Circuit'
          description: Entries for atomic service circuits
    AtomicService1:
      title: AtomicService1
      type: object
      properties:
        atomicServiceId:
          type: string
          description: Unique UUID of component
          example: 12345-12345-abcdef-abcdef
        atomicServiceTransactionTag:
          type: string
          description: Unique TAG of component per transaction
          example: MyEquinixConnect1
        atomicServiceType:
          allOf:
          - $ref: '#/components/schemas/AtomicServiceType'
          - description: Type of the atomic service.
        atomicServiceParams:
          $ref: '#/components/schemas/AtomicServiceParams'
        circuits:
          type: array
          items:
            $ref: '#/components/schemas/Circuit1'
          description: Entries for atomic service circuits
    AtomicService2:
      title: AtomicService2
      type: object
      properties:
        atomicServiceId:
          type: string
          description: Unique UUID of component
          example: 12345-12345-abcdef-abcdef
        atomicServiceTransactionTag:
          type: string
          description: Unique TAG of component per transaction
          example: MyEquinixConnect1
        atomicServiceType:
          allOf:
          - $ref: '#/components/schemas/AtomicServiceType'
          - description: Type of the atomic service.
        atomicServiceParams:
          $ref: '#/components/schemas/AtomicServiceParams'
        circuits:
          type: array
          items:
            $ref: '#/components/schemas/Circuit2'
          description: Entries for atomic service circuits
    AtomicService3:
      title: AtomicService3
      type: object
      properties:
        atomicServiceId:
          type: string
          description: Unique UUID of component
          example: 12345-12345-abcdef-abcdef
        atomicServiceTransactionTag:
          type: string
          description: Unique TAG of component per transaction
          example: MyEquinixConnect1
        atomicServiceType:
          allOf:
          - $ref: '#/components/schemas/AtomicServiceType3'
          - description: Service type
        atomicServiceParams:
          $ref: '#/components/schemas/AtomicServiceParams'
        circuits:
          type: array
          items:
            $ref: '#/components/schemas/Circuit3'
          description: Entries for atomic service circuits
    AtomicService4:
      title: AtomicService4
      type: object
      properties:
        atomicServiceTransactionTag:
          type: string
          description: Unique TAG of component per transaction
          example: MyEquinixConnect1
        atomicServiceType:
          allOf:
          - $ref: '#/components/schemas/AtomicServiceType4'
          - description: Service type
        circuits:
          type: array
          items:
            $ref: '#/components/schemas/Circuit4'
          description: Entries for atomic service circuits
    AtomicServiceType:
      title: AtomicServiceType
      enum:
      - EQUINIX_CONNECT
      - INTERNET_GATEWAY
      - INTERNET_SERVICE_PROVIDER
      - AZURE_CONNECT
      type: string
      description: Type of the atomic service.
    AtomicServiceType3:
      title: AtomicServiceType3
      enum:
      - EQUINIX_CONNECT
      - INTERNET_GATEWAY
      - INTERNET_SERVICE_PROVIDER
      - AZURE_CONNECT
      type: string
      description: Service type
    AtomicServiceType4:
      title: AtomicServiceType4
      enum:
      - AZURE_CONNECT
      type: string
      description: Service type
    AvailableService:
      title: AvailableService
      type: object
      properties:
        serviceName:
          $ref: '#/components/schemas/ServiceName'
        overallBandwidthRedundantServices:
          type: string
          example: 1gbps
        overallBandwidthNonRedundantServices:
          type: string
          example: 1gbps
        remainingBandwidthRedundantServices:
          type: string
          example: 100mbps
        remainingBandwidthNonRedundantServices:
          type: string
          example: 100mbps
        maxBandwidthRedundantService:
          type: string
          example: 100mbps
        maxBandwidthNonRedundantService:
          type: string
          example: 100mbps
    Azure_Provider_Private_Address:
      title: Azure_Provider_Private_Address
      type: object
      properties:
        ipv4PrivateAddress:
          $ref: '#/components/schemas/IPv4_Address'
        ipv6ProviderCustomAddress:
          $ref: '#/components/schemas/IPv6_Address'
        connectionPriority:
          $ref: '#/components/schemas/ConnectionPriority1'
    AzureConnectCircuit:
      title: AzureConnectCircuit
      type: object
      properties:
        location:
          type: string
          description: The Azure location of the reported circuit
        circuitState:
          $ref: '#/components/schemas/CircuitState'
        remoteIpv4PeeringState:
          $ref: '#/components/schemas/GetRemotePeeringState'
        remoteIpv6PeeringState:
          $ref: '#/components/schemas/GetRemotePeeringState'
        remoteAdvertisedPrefixList:
          $ref: '#/components/schemas/GetRemoteBgpPrefixList'
        PortNames:
          $ref: '#/components/schemas/GetRemotePortNames'
        connections:
          maxItems: 2
          type: array
          items:
            $ref: '#/components/schemas/Connection1'
          description: ''
        error:
          $ref: '#/components/schemas/ErrorStructure2'
    Bandwidth:
      title: Bandwidth
      enum:
      - 100mbps
      - 500mbps
      - 1gbps
      - 5gbps
      - 10gbps
      type: string
    Bandwidth1:
      title: Bandwidth1
      enum:
      - 50mbps
      - 100mbps
      - 200mbps
      - 500mbps
      - 1gbps
      - 2gbps
      - 5gbps
      - 10gbps
      type: string
    BgpPeering2:
      title: BgpPeering2
      required:
      - bgpV4
      - bgpV6
      - connectionPriority
      type: object
      properties:
        bgpV4:
          $ref: '#/components/schemas/common_bgp_peering'
        bgpV6:
          $ref: '#/components/schemas/common_bgp_peering'
        connectionPriority:
          $ref: '#/components/schemas/ConnectionPriority1'
    BgpPeering3:
      title: BgpPeering3
      type: object
      properties:
        bgpV4:
          $ref: '#/components/schemas/bgp_peering'
        bgpV6:
          $ref: '#/components/schemas/bgp_peering'
    BgpPeering4:
      title: BgpPeering4
      type: object
      properties:
        bgpV4:
          $ref: '#/components/schemas/bgp_peering'
        bgpV6:
          $ref: '#/components/schemas/bgp_peering'
        connectionPriority:
          $ref: '#/components/schemas/ConnectionPriority1'
        redundancyMode:
          $ref: '#/components/schemas/RedundancyMode'
    BgpPeeringState:
      title: BgpPeeringState
      enum:
      - enabled
      - disabled
      type: string
    BusinessSidState:
      title: BusinessSidState
      enum:
      - CONFIGURED
      - IN-PROGRESS
      - FAILED
      type: string
    Circuit:
      title: Circuit
      type: object
      properties:
        circuitTransactionTag:
          type: string
          description: user provided circuit tag
          example: MyCircuit
        params:
          $ref: '#/components/schemas/CircuitParams'
    Circuit1:
      title: Circuit1
      type: object
      properties:
        circuitId:
          type: string
          description: Unique circuit ID issued by the Network Cloud+ to identify an circuit.
        circuitTransactionTag:
          type: string
          description: user provided circuit tag
          example: MyCircuit
        params:
          $ref: '#/components/schemas/CircuitParams'
    Circuit2:
      title: Circuit2
      type: object
      properties:
        circuitId:
          type: string
          description: Unique circuit ID issued by the Network Cloud+ to identify an circuit.
        circuitTransactionTag:
          type: string
          description: user provided circuit tag
          example: MyCircuit
        params:
          $ref: '#/components/schemas/CircuitResponseParams'
    Circuit3:
      title: Circuit3
      type: object
      properties:
        circuitId:
          type: string
          description: genarated circuit id
        circuitTransactionTag:
          type: string
          description: user provided circuit tag
          example: MyCircuit
        params:
          oneOf:
          - $ref: '#/components/schemas/EquinixConnectOperParams'
          - $ref: '#/components/schemas/IGOperParams'
          - $ref: '#/components/schemas/ISPOperParams'
          - $ref: '#/components/schemas/AzureConnectOperParams'
    Circuit4:
      title: Circuit4
      type: object
      properties:
        circuitId:
          type: string
          description: genarated circuit id
        circuitTransactionTag:
          type: string
          description: user provided circuit tag
          example: MyCircuit
        params:
          oneOf:
          - $ref: '#/components/schemas/GetAzureConnectCircuitUsage'
    CircuitState:
      title: CircuitState
      enum:
      - up
      - down
      - degraded
      type: string
    Connection:
      title: Connection
      type: object
      properties:
        connectionPriority:
          $ref: '#/components/schemas/ConnectionPriority1'
        zSideToken:
          type: string
          description: Equinix-assigned service token uuid, a 128-bit namespace identifier
        ipAddress:
          type: array
          items:
            $ref: '#/components/schemas/IP_Address'
          description: ''
        routing:
          $ref: '#/components/schemas/OperRouting'
        connectionProviderState:
          anyOf:
          - $ref: '#/components/schemas/BgpState'
          - $ref: '#/components/schemas/BfdState'
          - $ref: '#/components/schemas/linkState'
        equinixState:
          $ref: '#/components/schemas/EquinixState'
        connectionDetails:
          allOf:
          - $ref: '#/components/schemas/connectivityDetails'
          - description: Holds the link and connection UUIDs
        equinixPortUuid:
          type: string
          description: uuid of the port of Equinix
        equinixConnectionUuid:
          type: string
          description: the connection uuid of L2 connectivity of EVPL
    Connection1:
      title: Connection1
      type: object
      properties:
        connectionPriority:
          $ref: '#/components/schemas/ConnectionPriority1'
        ipAddress:
          type: array
          items:
            $ref: '#/components/schemas/IP_Address'
          description: ''
        routing:
          $ref: '#/components/schemas/bgp_peering_oper_object'
        connectionState:
          anyOf:
          - $ref: '#/components/schemas/BgpState'
          - $ref: '#/components/schemas/BfdState'
          - $ref: '#/components/schemas/linkState'
        connectionDetails:
          allOf:
          - $ref: '#/components/schemas/connectivityDetails'
          - description: Holds the link and connection UUIDs
    ConnectionPriority:
      title: ConnectionPriority
      enum:
      - primary
      - secondary
      type: string
      description: For redundancy select whether this IP address is a primary or secondary type.
    ConnectionPriority1:
      title: ConnectionPriority1
      enum:
      - primary
      - secondary
      type: string
    ConnectionProviderState:
      title: ConnectionProviderState
      type: object
      properties:
        bgpStateV4:
          allOf:
          - $ref: '#/components/schemas/BgpStates'
          - description: BGP peering state
        bgpStateV6:
          allOf:
          - $ref: '#/components/schemas/BgpStates'
          - description: BGP peering state
    ConnectionState:
      title: ConnectionState
      type: object
      properties:
        bgpStateV4:
          allOf:
          - $ref: '#/components/schemas/BgpStates'
          - description: BGP peering state
        bgpStateV6:
          allOf:
          - $ref: '#/components/schemas/BgpStates'
          - description: BGP peering state
    Counter:
      title: Counter
      type: object
      properties:
        bytesIn:
          type: string
          description: BytesIn on the reported circuit
        bytesOut:
          type: string
          description: BytesOut on the reported circuit
        connectionPriority:
          $ref: '#/components/schemas/ConnectionPriority1'
    DnsnHostname:
      title: DnsnHostname
      type: object
      properties:
        dnsnHostname:
          type: string
          description: The hostname in which the IG atomic service circuit found of
    EquinixConnectCircuit:
      title: EquinixConnectCircuit
      type: object
      properties:
        location:
          type: string
          description: Location of the reported circuit
        circuitState:
          $ref: '#/components/schemas/CircuitState'
        connections:
          maxItems: 2
          type: array
          items:
            $ref: '#/components/schemas/Connection'
          description: ''
        error:
          $ref: '#/components/schemas/ErrorStructure2'
    EquinixState:
      title: EquinixState
      enum:
      - AVAILABLE
      - FAILED
      - PENDING_APPROVAL
      type: string
    Error:
      title: Error
      type: object
      properties:
        fieldPath:
          type: string
          example: params_ipAddress_ipv4IndependentAddress[0]_ipv4Address
        description:
          type: string
          example: configured bandwidth exceeds remaining bandwidth
    ErrorStructure:
      title: ErrorStructure
      type: object
      properties:
        generalError:
          type: string
          description: General error happened in service Node
    ErrorStructure1:
      title: ErrorStructure1
      type: object
      properties:
        serviceNodeErrors:
          type: array
          items:
            $ref: '#/components/schemas/ServiceNodeError'
          description: ''
    ExternalIP:
      title: ExternalIP
      type: object
      properties:
        providerIndependentExternalIP:
          type: string
        providerAggregatedExternalIP:
          type: boolean
    ExternalPool:
      title: ExternalPool
      type: object
      properties:
        providerIndependentExternalIpPool:
          type: array
          items:
            type: array
            items:
              $ref: '#/components/schemas/IpAddressesPool'
        providerAggregatedExternalIpPoolSize:
          maximum: 32
          minimum: 24
          type: integer
          description: Define pool size for the user addresses
          format: int32
    FabricSubType:
      title: FabricSubType
      enum:
      - zSideToken
      - serviceProfile
      type: string
    Function:
      title: Function
      required:
      - functionType
      - functionParams
      type: object
      properties:
        functionTransactionTag:
          type: string
          description: user provided function tag
        functionType:
          type: string
          description: Type of function
          example: NAT
        functionParams:
          $ref: '#/components/schemas/FunctionParams'
    Function1:
      title: Function1
      type: object
      properties:
        functionId:
          type: string
          description: Unique function ID issued by the Network Cloud+ to identify an function.
        functionTransactionTag:
          type: string
          description: user provided function tag.
        functionType:
          type: string
          description: Type of function.
          example: NAT
        functionParams:
          $ref: '#/components/schemas/FunctionParams'
    Function2:
      title: Function2
      type: object
      properties:
        functionId:
          type: string
          description: Unique function ID issued by the Network Cloud+ to identify an function.
        functionTransactionTag:
          type: string
          description: user provided function tag
        functionType:
          type: string
          description: Type of the function
          example: NAT
        functionParams:
          $ref: '#/components/schemas/FunctionParams'
    Function3:
      title: Function3
      type: object
      properties:
        functionId:
          type: string
          description: genarated function id
        functionTransactionTag:
          type: string
          description: user provided function tag
        functionType:
          type: string
          description: Type of function
          example: NAT
        functionParams:
          oneOf:
          - $ref: '#/components/schemas/NatOperParams'
    IgCircuit:
      title: IgCircuit
      type: object
      properties:
        location:
          type: string
          description: Location of the reported circuit
        ipAddress:
          type: array
          items:
            $ref: '#/components/schemas/IP_Address'
          description: ''
        dnsnHostnames:
          maxItems: 2
          type: array
          items:
            $ref: '#/components/schemas/DnsnHostname'
          description: ''
        error:
          $ref: '#/components/schemas/ErrorStructure2'
    InternetGatewayRedundancyMode:
      title: InternetGatewayRedundancyMode
      enum:
      - active-active
      - active-standby
      type: string
    IpAddress:
      title: IpAddress
      type: object
      properties:
        providerIndependentAddress:
          maxItems: 2
          type: array
          items:
            $ref: '#/components/schemas/Provider_Independent_Address'
          description: Public or private IP addresses provided by the customer. Two sets of addresses must be created for redundancy.
        providerAggregatedAddress:
          allOf:
          - $ref: '#/components/schemas/Provider_Aggregated_Address'
          - description: Private IP addresses provided from DriveNets' IP address pool. The subnet allocated is the same for all connections.
    IpAddress1:
      title: IpAddress1
      type: object
      properties:
        customerPrivateIpAddress:
          maxItems: 2
          type: array
          items:
            $ref: '#/components/schemas/Azure_Provider_Private_Address'
          description: Private address provided by the account
        providerAggregatedAddress:
          allOf:
          - $ref: '#/components/schemas/Provider_Aggregated_Address'
          - description: Private IP addresses provided from DriveNets' IP address pool. The subnet allocated is the same for all connections.
      description: The IP address to be used for Azure, bpth IPv4 (mask /30) and IPv6 (mask /126) addresses will be allocated from address pool, IPv4 address can be private.
    IpAddressesPool:
      title: IpAddressesPool
      type: object
      properties:
        externalIPStart:
          type: string
        externalIPStop:
          type: string
    Ipv4AggregatedAddress:
      title: Ipv4AggregatedAddress
      type: object
      properties:
        prefixSize:
          maximum: 30
          minimum: 24
          type: integer
          description: Define the prefix length for the user address.
          format: int32
    Ipv6AggregatedAddress:
      title: Ipv6AggregatedAddress
      type: object
      properties:
        prefixSize:
          maximum: 126
          minimum: 64
          type: integer
          description: Define the prefix length for the user address.
          format: int32
    Ipv4AggregatedAddress1:
      title: Ipv4AggregatedAddress1
      type: object
      properties:
        prefixSize:
          maximum: 30
          minimum: 24
          type: integer
          description: Define prefix length for the user address
          format: int32
    Ipv6AggregatedAddress1:
      title: Ipv6AggregatedAddress1
      type: object
      properties:
        prefixSize:
          maximum: 126
          minimum: 64
          type: integer
          description: Define prefix length for the user address
          format: int32
    IspCircuit:
      title: IspCircuit
      type: object
      properties:
        location:
          type: string
          description: Location of the reported circuit
        error:
          $ref: '#/components/schemas/ErrorStructure2'
    NaptDynamicRule2:
      title: NaptDynamicRule2
      type: object
      properties:
        naptDynamicRule:
          allOf:
          - $ref: '#/components/schemas/NaptDynamicRule'
          - description: PAT dynamic rule - subnet/s to single ip address
    NaptStaticRule2:
      title: NaptStaticRule2
      type: object
      properties:
        naptStaticRule:
          allOf:
          - $ref: '#/components/schemas/NaptStaticRule'
          - description: PAT static rule - ip and port to ip and port
    NatDynamicRule2:
      title: NatDynamicRule2
      type: object
      properties:
        natDynamicRule:
          allOf:
          - $ref: '#/components/schemas/NatDynamicRule'
          - description: NAT dynamic rule - subnet/s to ip addresses pool
    NatState:
      title: NatState
      enum:
      - up
      - down
      - degraded
      type: string
    NatStaticRule2:
      title: NatStaticRule2
      type: object
      properties:
        natStaticRule:
          allOf:
          - $ref: '#/components/schemas/NatStaticRule'
          - description: NAT static rule - ip to ip
    PeeringInfo:
      title: PeeringInfo
      type: object
      properties:
        bgpPeeringState:
          $ref: '#/components/schemas/BgpPeeringState'
        connectionPriority:
          $ref: '#/components/schemas/ConnectionPriority1'
    Policy:
      title: Policy
      type: object
      properties:
        policyTransactionTag:
          type: string
          description: user provided policy tag
        policyParams:
          $ref: '#/components/schemas/CreatePolicyBodyRequest'
        functions:
          type: array
          items:
            $ref: '#/components/schemas/Function'
          description: Entries for functions
    Policy1:
      title: Policy1
      type: object
      properties:
        policyId:
          type: string
          description: Unique policy ID issued by the Network Cloud+ to identify an policy.
        policyTransactionTag:
          type: string
          description: user provided policy tag
        policyParams:
          $ref: '#/components/schemas/PolicyBodyRequest'
        functions:
          type: array
          items:
            $ref: '#/components/schemas/Function1'
          description: Entries for functions
    Policy2:
      title: Policy2
      type: object
      properties:
        policyId:
          type: string
          description: Unique policy ID issued by the Network Cloud+ to identify an policy.
        policyTransactionTag:
          type: string
          description: user provided policy tag
        policyParams:
          $ref: '#/components/schemas/PolicyBodyRequest'
        functions:
          type: array
          items:
            $ref: '#/components/schemas/Function2'
          description: Entries for functions
    Policy3:
      title: Policy3
      type: object
      properties:
        policyId:
          type: string
          description: genarated policy id
        policyTransactionTag:
          type: string
          description: user provided policy tag
        policyParams:
          $ref: '#/components/schemas/PolicyBodyRequest'
        functions:
          type: array
          items:
            $ref: '#/components/schemas/Function3'
          description: Entries for functions
    Provider:
      title: Provider
      enum:
      - AT&T
      type: string
      description: The provider we're connected to
    Provider_Independent_Address:
      title: Provider_Independent_Address
      type: object
      properties:
        ipv4IndependentAddress:
          $ref: '#/components/schemas/IPv4_Address'
        ipv6IndependentAddress:
          $ref: '#/components/schemas/IPv6_Address'
        connectionPriority:
          allOf:
          - $ref: '#/components/schemas/ConnectionPriority'
          - description: For redundancy select whether this IP address is a primary or secondary type.
    RedundancyMode:
      title: RedundancyMode
      enum:
      - active
      - standby
      type: string
    Routing:
      title: Routing
      type: object
      properties:
        isBfdEnabled:
          type: boolean
          default: false
        bgpPeering:
          maxItems: 2
          type: array
          items:
            $ref: '#/components/schemas/BgpPeering2'
          description: ''
        bgpSecret:
          type: string
    RuleType:
      title: RuleType
      enum:
      - permit
      - deny
      type: string
      description: Define if prefix is permitted or denied
    ServiceName:
      title: ServiceName
      enum:
      - EQUINIX_CONNECT
      - INTERNET_GATEWAY
      - INTERNET_SERVICE_PROVIDER
      - AZURE_CONNECT
      type: string
    ServiceNodeError:
      title: ServiceNodeError
      type: object
      properties:
        serviceNodeId:
          type: string
          description: Type of the service node
        error:
          type: string
          description: Error happened in the service node
    ServicesPerLocationResponse:
      title: ServicesPerLocationResponse
      type: object
      properties:
        location:
          type: string
          example: LAXCA
        availableServices:
          type: array
          items:
            $ref: '#/components/schemas/AvailableService'
          description: ''
    version:
      title: version
      enum:
      - v1
      - v2
      - v3
      - v4
      type: string
    IP_Address:
      oneOf:
      - $ref: '#/components/schemas/IPv4_Address'
      - $ref: '#/components/schemas/IPv6_Address'
    AtomicServiceParams:
      oneOf:
      - $ref: '#/components/schemas/L3VpnParams'
    CircuitParams:
      oneOf:
      - $ref: '#/components/schemas/EquinixConnectParams'
      - $ref: '#/components/schemas/InternetGatewayParams'
      - $ref: '#/components/schemas/InternetServiceProviderParams'
      - $ref: '#/components/schemas/AzureConnectParams'
    CircuitResponseParams:
      oneOf:
      - $ref: '#/components/schemas/InternetGatewayParams'
      - $ref: '#/components/schemas/InternetServiceProviderParams'
      - $ref: '#/components/schemas/AzureConnectParams'
      - $ref: '#/components/schemas/EquinixConnectResponseParams'
    Routing1:
      oneOf:
      - $ref: '#/components/schemas/BgpRouting'
      - $ref: '#/components/schemas/staticRoute'
    OperRouting:
      oneOf:
      - $ref: '#/components/schemas/bgp_peering_oper_object'
      - $ref: '#/components/schemas/static_oper_object'
    static_route:
      oneOf:
      - $ref: '#/components/schemas/IPv4StaticRoute'
      - $ref: '#/components/schemas/IPv6StaticRoute'
      description: Configuration details for the Home Cloud Gateway service
    prefix_ip:
      oneOf:
      - $ref: '#/components/schemas/prefix_ipv4'
      - $ref: '#/components/schemas/prefix_ipv6'
    ErrorStructure2:
      oneOf:
      - $ref: '#/components/schemas/ErrorStructure'
      - $ref: '#/components/schemas/ErrorStructure1'
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      bearerFormat: jwt
security: []
tags:
- name: Log in
  description: ''
- name: Point of Presence (PoP) Services
  description: ''
- name: Services
  description: ''
- name: Service State
  description: ''
- name: Show Command
  description: ''
