openapi: 3.0.3
info:
  version: 1.2.15
  title: Equinix Internet Access API
  description: Equinix Internet Access provides direct access to the Internet with scalable bandwidth options in IBX data centers. This current set of API’s allows for ordering of Equinix Internet Access on ports dedicated only to this service. Ordering virtual connections to the internet over an existing Fabric port, shared with other virtual connections, will be added in a future set of API’s. Single or dual port connections are available, ranging from 1G to 100G. Multiple large Internet Service Providers (ISPs) are used at every location to ensure redundancy. Equinix Internet Access supports various protocols, including Border Gateway Protocol (BGP), VRRP (static and direct), and Direct and Static routing. Equinix Internet Access routers are connected to local Equinix Internet Exchange (IX) switches and other partner peering platforms offering a shortcut to access local peers. This approach delivers optimal performance.
  termsOfService: https://www.equinix.com/about/legal/terms
  contact:
    name: Equinix API Support
    url: https://docs.equinix.com/api-support.htm
servers:
  - url: https://api.equinix.com
    description: Equinix API
externalDocs:
  url: https://developer.equinix.com
  description: Find more information on Equinix Developer Portal
security:
  - BearerAuth: []
tags:
  - name: Accounts
    description: Customer accounts available for Equinix Internet Access
  - name: Terms and Conditions
    description: View Equinix terms and conditions
  - name: Operational Units
    description: View Operational Units
  - name: Signature Policies
    description: List signature policies
  - name: Prices
    description: Search Equinix Internet prices by search criteria
  - name: Product Availability
    description: IBXs where Equinix Internet Access is available
  - name: Attribute Eligibility
    description: Allowed Equinix Internet Access configuration values
  - name: Purchase Orders
    description: Manage your purchase orders
  - name: Cages
    description: List cages available for Equinix Internet Access
  - name: Cabinets
    description: List cabinets available for Equinix Internet Access
  - name: Patch Panels
    description: List patch panels available for Equinix Internet Access
  - name: Connection Services
    description: List connection services available for Equinix Internet Access
  - name: EIA Order
    description: Equinix Internet Access Order API
  - name: EIA Service
    description: Equinix Internet Access Service API
paths:
  /internetAccess/v1/accounts:
    get:
      tags:
        - Accounts
      summary: Lists accounts available for user within IBX
      description: |
        List all accounts that are available for EIA ordering in a given IBX.
      operationId: listAccounts
      parameters:
        - name: operationalUnits.ibxs.ibx
          in: query
          description: Operational Unit IBX code
          required: true
          style: form
          explode: true
          schema:
            pattern: ^[A-Z]{2,3}[1-9]?[0-9]{0,2}[a-zA-Z]?$
            type: string
            example: SG1
        - name: project.projectId
          in: query
          description: Customer Resource Hierarchy Project identifier, for future use, not applicable in EIA on dedicated port scenario
          required: false
          style: form
          explode: true
          schema:
            type: string
            example: "7348"
        - name: offset
          in: query
          description: Pagination offset
          required: false
          style: form
          explode: true
          schema:
            minimum: 0
            type: integer
            example: 0
            default: 0
        - name: limit
          in: query
          description: Max number of returned results
          required: false
          style: form
          explode: true
          schema:
            minimum: 0
            type: integer
            example: 50
            default: 50
      responses:
        "200":
          description: List of accounts
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccountPage"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7103010
                      errorMessage: Validation Failure
                      correlationId: sampleCorrelationId
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7103001
                      errorMessage: Unauthorized
                      correlationId: sampleCorrelationId
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7103002
                      errorMessage: Forbidden
                      correlationId: sampleCorrelationId
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                internalServerError:
                  value:
                    - errorCode: EQ-7103030
                      errorMessage: Internal Server Error
                      correlationId: sampleCorrelationId
  "/internetAccess/v1/accounts/{accountNumber}":
    get:
      tags:
        - Accounts
      summary: Returns a single account
      description: |
        Account object for given account number.
      operationId: singleAccount
      parameters:
        - name: accountNumber
          in: path
          description: Number of account to search by
          required: true
          style: simple
          explode: false
          schema:
            pattern: ^\d+$
            type: string
          example: "100013200"
      responses:
        "200":
          description: Account object
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccountDetails"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7103010
                      errorMessage: Validation Failure
                      correlationId: sampleCorrelationId
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7103001
                      errorMessage: Unauthorized
                      correlationId: sampleCorrelationId
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7103002
                      errorMessage: Forbidden
                      correlationId: sampleCorrelationId
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7103026
                      errorMessage: No data found for the given input criteria
                      correlationId: sampleCorrelationId
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                internalServerError:
                  value:
                    - errorCode: EQ-7103030
                      errorMessage: Internal Server Error
                      correlationId: sampleCorrelationId
  "/internetAccess/v1/accounts/{accountNumber}/agreements":
    get:
      tags:
        - Accounts
      summary: Lists account agreement statuses
      description: |
        Account agreements for given account number.
      operationId: accountAgreements
      parameters:
        - name: accountNumber
          in: path
          description: Number of account to search by
          required: true
          style: simple
          explode: false
          schema:
            pattern: ^\d+$
            type: string
          example: "100013200"
        - name: ibx
          in: query
          description: Agreement IBX
          required: true
          style: form
          explode: true
          schema:
            pattern: ^[A-Z]{2,3}[1-9]?[0-9]{0,2}[a-zA-Z]?$
            type: string
          example: WA1
        - name: offset
          in: query
          description: Pagination offset
          required: false
          style: form
          explode: true
          schema:
            minimum: 0
            type: integer
            example: 0
            default: 0
        - name: limit
          in: query
          description: Max number of returned results
          required: false
          style: form
          explode: true
          schema:
            minimum: 0
            type: integer
            example: 50
            default: 50
      responses:
        "200":
          description: Account object
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccountAgreementsPage"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7103010
                      errorMessage: Validation Failure
                      correlationId: sampleCorrelationId
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7103001
                      errorMessage: Unauthorized
                      correlationId: sampleCorrelationId
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7103002
                      errorMessage: Forbidden
                      correlationId: sampleCorrelationId
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                notFound:
                  value:
                    - errorCode: EQ-7103026
                      errorMessage: No data found for the given input criteria
                      correlationId: sampleCorrelationId
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                internalServerError:
                  value:
                    - errorCode: EQ-7103030
                      errorMessage: Internal Server Error
                      correlationId: sampleCorrelationId
  /internetAccess/v1/terms:
    get:
      tags:
        - Terms and Conditions
      summary: Retrieve terms and conditions
      description: |
        Returns Terms And Conditions as HTML text
      operationId: getTermsAndConditions
      parameters:
        - name: account.accountNumber
          in: query
          description: Account number
          required: true
          style: form
          explode: true
          schema:
            type: string
          example: "123111232"
        - name: location.ibx
          in: query
          description: IBX code for given location
          required: true
          style: form
          explode: true
          schema:
            type: string
          example: CH2
        - name: offset
          in: query
          description: Pagination offset
          required: false
          style: form
          explode: true
          schema:
            minimum: 0
            type: integer
            example: 0
            default: 0
        - name: limit
          in: query
          description: Max number of returned results
          required: false
          style: form
          explode: true
          schema:
            minimum: 0
            type: integer
            example: 50
            default: 50
        - name: connectivitySource.type
          in: query
          description: Connectivity source type
          required: true
          style: form
          explode: true
          schema:
            type: string
            enum:
              - COLO
          example: COLO
        - name: product
          in: query
          description: Product
          required: true
          style: form
          explode: true
          schema:
            type: string
            enum:
              - IA_C
              - IA_VC
              - MC_C
          example: IA_C
        - name: type
          in: query
          description: Agreement type
          required: false
          style: form
          explode: true
          schema:
            type: string
            enum:
              - TERMS_AND_CONDITIONS
              - RENEWAL_TERMS
              - PRICE_INCREASE_TERMS
          example: TERMS_AND_CONDITIONS
        - name: language
          in: query
          description: 2 letter ISO 639-1 language code
          required: false
          style: form
          explode: true
          schema:
            maxLength: 2
            minLength: 2
            type: string
            default: en
          example: en
      responses:
        "200":
          description: Terms and conditions HTML string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TermsAndConditionsPage"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7104010
                      errorMessage: Validation Failure
                      correlationId: sampleCorrelationId
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7104001
                      errorMessage: Unauthorized
                      correlationId: sampleCorrelationId
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7104002
                      errorMessage: Forbidden
                      correlationId: sampleCorrelationId
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                internalServerError:
                  value:
                    - errorCode: EQ-7104030
                      errorMessage: Internal Server Error
                      correlationId: sampleCorrelationId
  /internetAccess/v1/operationalUnits:
    get:
      tags:
        - Operational Units
      summary: List operational units
      description: |
        Returns list of operational units as JSON object list
      operationId: getOperationalUnits
      parameters:
        - name: location.ibx
          in: query
          description: Operational Unit IBX code
          required: true
          style: form
          explode: true
          schema:
            pattern: ^[A-Z]{2,3}[1-9]?[0-9]{0,2}[a-zA-Z]?$
            type: string
            example: SG1
        - name: offset
          in: query
          description: Pagination offset
          required: false
          style: form
          explode: true
          schema:
            minimum: 0
            type: integer
            example: 0
            default: 0
        - name: limit
          in: query
          description: Max number of returned results
          required: false
          style: form
          explode: true
          schema:
            minimum: 0
            type: integer
            example: 50
            default: 50
      responses:
        "200":
          description: Operational Units JSON single element list
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OperationalUnitPage"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7104010
                      errorMessage: Validation Failure
                      correlationId: sampleCorrelationId
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7104001
                      errorMessage: Unauthorized
                      correlationId: sampleCorrelationId
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7104002
                      errorMessage: Forbidden
                      correlationId: sampleCorrelationId
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                notFound:
                  value:
                    - errorCode: EQ-7104026
                      errorMessage: No data found for the given input criteria
                      correlationId: sampleCorrelationId
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                internalServerError:
                  value:
                    - errorCode: EQ-7104030
                      errorMessage: Internal Server Error
                      correlationId: sampleCorrelationId
  /internetAccess/v1/signaturePolicies:
    get:
      tags:
        - Signature Policies
      summary: List signature policies
      description: |
        Returns list of signature policies as JSON object list
      operationId: getSignaturePolicies
      parameters:
        - name: offset
          in: query
          description: Pagination offset
          required: false
          style: form
          explode: true
          schema:
            minimum: 0
            type: integer
            example: 0
            default: 0
        - name: limit
          in: query
          description: Max number of returned results
          required: false
          style: form
          explode: true
          schema:
            minimum: 0
            type: integer
            example: 50
            default: 50
        - name: location.countryCode
          in: query
          description: Country code
          required: false
          style: form
          explode: true
          schema:
            type: string
            example: US
      responses:
        "200":
          description: Signature policies list
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SignaturePoliciesPage"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7104010
                      errorMessage: Validation Failure
                      correlationId: sampleCorrelationId
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7104001
                      errorMessage: Unauthorized
                      correlationId: sampleCorrelationId
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7104002
                      errorMessage: Forbidden
                      correlationId: sampleCorrelationId
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                internalServerError:
                  value:
                    - errorCode: EQ-7104030
                      errorMessage: Internal Server Error
                      correlationId: sampleCorrelationId
  /internetAccess/v1/prices/search:
    post:
      tags:
        - Prices
      summary: Search EIA prices
      description: Search Equinix Internet Access prices by criteria. Currency depends on the billing account. Internally prices are processed according to ISO 4217 standard. Prices are returned as numbers. If for any reason a product or its part is provided for free, then it will be listed in the response with a price of 0.
      operationId: searchPrices
      parameters:
        - name: offset
          in: query
          description: Pagination offset
          required: false
          style: form
          explode: true
          schema:
            minimum: 0
            type: integer
            example: 0
            default: 0
        - name: limit
          in: query
          description: Max number of returned results
          required: false
          style: form
          explode: true
          schema:
            minimum: 0
            type: integer
            example: 50
            default: 50
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FilterBody"
            examples:
              searchDedicatedSinglePortPIRequest:
                $ref: "#/components/examples/SearchDedicatedSinglePortPIRequest"
              searchDedicatedDualPortPARequest:
                $ref: "#/components/examples/SearchDedicatedDualPortPARequest"
              searchDedicatedBurstBillingRequest:
                $ref: "#/components/examples/SearchDedicatedBurstBillingLagRequest"
              searchDedicatedManagementAccessMinimalRequest:
                $ref: "#/components/examples/SearchDedicatedManagementAccessMinimalRequest"
              searchIpBlockV4Request:
                $ref: "#/components/examples/SearchIpBlockV4Request"
              searchIpBlockV6Request:
                $ref: "#/components/examples/SearchIpBlockV6Request"
        required: true
      responses:
        "200":
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PriceSearchResponse"
              examples:
                searchDedicatedSinglePortPIResponse:
                  $ref: "#/components/examples/200_searchDedicatedSinglePortPIResponse"
                searchDedicatedDualPortPAResponse:
                  $ref: "#/components/examples/200_searchDedicatedDualPortPAResponse"
                searchDedicatedBurstBillingLagResponse:
                  $ref: "#/components/examples/200_searchDedicatedBurstBillingLagResponse"
                searchDedicatedManagementAccessResponse:
                  $ref: "#/components/examples/200_searchDedicatedManagementAccessResponse"
                searchIpBlockV4Response:
                  $ref: "#/components/examples/200_searchIpBlockV4Response"
                searchIpBlockV6Response:
                  $ref: "#/components/examples/200_searchIpBlockV6Response"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7101010
                      errorMessage: Validation Failure
                      correlationId: sampleCorrelationId
                      additionalInfo:
                        - property: /filter/and/2/values
                          reason: Property '/service/connection/type' has too many values for operator '='!
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7101001
                      errorMessage: Unauthorized
                      correlationId: sampleCorrelationId
        "403":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                forbidden:
                  value:
                    - errorCode: EQ-7101002
                      errorMessage: Forbidden
                      details: User is not logged in
                      correlationId: sampleCorrelationId
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                internalServerError:
                  value:
                    - errorCode: EQ-7101030
                      errorMessage: Internal Server Error
                      correlationId: sampleCorrelationId
  "/internetAccess/v1/ibxs/{ibx}":
    get:
      tags:
        - Product Availability
      summary: Returns requested IBX where EIA is available
      description: Get IBX
      operationId: getIbx
      parameters:
        - name: ibx
          in: path
          description: Ibx code
          required: true
          style: simple
          explode: false
          schema:
            type: string
            example: WA1
        - name: service.connection.type
          in: query
          description: Service connection type (physical, virtual)
          required: false
          style: form
          explode: true
          schema:
            type: string
            enum:
              - IA_C
              - IA_VC
        - name: connection.aside.accessPoint.type
          in: query
          description: Service connection access point type. When not provided, COLO type is used by default.
          required: false
          style: form
          explode: true
          schema:
            type: string
            enum:
              - COLO
              - VD
      responses:
        "200":
          description: List of Metros and IBXs
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Ibx"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7102010
                      errorMessage: Validation Failure
                      correlationId: sampleCorrelationId
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7102001
                      errorMessage: Unauthorized
                      correlationId: sampleCorrelationId
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7102002
                      errorMessage: Forbidden
                      correlationId: sampleCorrelationId
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7106026
                      errorMessage: Not Found
                      correlationId: sampleCorrelationId
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                internalServerError:
                  value:
                    - errorCode: EQ-7102030
                      errorMessage: Internal Server Error
                      correlationId: sampleCorrelationId
  /internetAccess/v1/ibxs:
    get:
      tags:
        - Product Availability
      summary: Returns IBXs where EIA is available
      description: Get IBXs
      operationId: getIbxs
      parameters:
        - name: offset
          in: query
          description: Pagination offset
          required: false
          style: form
          explode: true
          schema:
            minimum: 0
            type: integer
            example: 0
            default: 0
        - name: limit
          in: query
          description: Max number of returned results
          required: false
          style: form
          explode: true
          schema:
            minimum: 0
            type: integer
            example: 50
            default: 50
        - name: service.connection.type
          in: query
          description: Service connection type (physical, virtual)
          required: true
          style: form
          explode: true
          schema:
            type: string
            example: IA_C
            enum:
              - IA_C
              - IA_VC
        - name: connection.aside.accessPoint.type
          in: query
          description: Service connection access point type. When not provided, COLO type is used by default.
          required: false
          style: form
          explode: true
          schema:
            type: string
            enum:
              - COLO
              - VD
      responses:
        "200":
          description: List of Metros and IBXs
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/IbxPage"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7102010
                      errorMessage: Validation Failure
                      correlationId: sampleCorrelationId
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7102001
                      errorMessage: Unauthorized
                      correlationId: sampleCorrelationId
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7102002
                      errorMessage: Forbidden
                      correlationId: sampleCorrelationId
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                internalServerError:
                  value:
                    - errorCode: EQ-7102030
                      errorMessage: Internal Server Error
                      correlationId: sampleCorrelationId
  /internetAccess/v1/routingProtocolConfigurations:
    get:
      tags:
        - Attribute Eligibility
      summary: Routing Protocol Attribute Eligibility API Endpoint
      description: Get routing protocol configurations
      operationId: getRoutingConfigurations
      parameters:
        - name: useCase
          in: query
          description: Use case
          required: true
          style: form
          explode: true
          schema:
            type: string
            example: MAIN
            enum:
              - MAIN
              - BACKUP
              - MANAGEMENT_ACCESS
        - name: type
          in: query
          description: Port type
          required: false
          style: form
          explode: true
          schema:
            $ref: "#/components/schemas/ProductCatalogRedundancy"
        - name: offset
          in: query
          description: Pagination offset
          required: false
          style: form
          explode: true
          schema:
            minimum: 0
            type: integer
            example: 0
            default: 0
        - name: limit
          in: query
          description: Max number of returned results
          required: false
          style: form
          explode: true
          schema:
            minimum: 0
            type: integer
            example: 50
            default: 50
      responses:
        "200":
          description: Ok
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RoutingProtocolConfigurationPage"
              examples:
                200_OK:
                  value:
                    pagination:
                      offset: 0
                      limit: 20
                      total: 1
                    data:
                      - useCase: MAIN
                        type: DUAL_PORT
                        routingProtocol:
                          type: STATIC
                          ipv4:
                            customerRoute:
                              importPolicy: PA
                            peering:
                              vrrpEnabled: true
                              peerSubnet:
                                prefixLength: 29
                                quantity: 1
                          ipv6:
                            customerRoute:
                              importPolicy: PA
                            peering:
                              vrrpEnabled: true
                              peerSubnet:
                                prefixLength: 64
                                quantity: 1
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7102010
                      errorMessage: Validation Failure
                      correlationId: sampleCorrelationId
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7102001
                      errorMessage: Unauthorized
                      correlationId: sampleCorrelationId
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7102002
                      errorMessage: Forbidden
                      correlationId: sampleCorrelationId
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                internalServerError:
                  value:
                    - errorCode: EQ-7102030
                      errorMessage: Internal Server Error
                      correlationId: sampleCorrelationId
  /internetAccess/v1/dedicatedBandwidthConfigurations:
    get:
      tags:
        - Attribute Eligibility
      summary: Dedicated Bandwidth Attribute Eligibility API Endpoint
      description: Get dedicated bandwidth configurations
      operationId: getDedicatedBandwidthConfigurations
      parameters:
        - name: connection.aside.accessPoint.port.physicalPort.speed
          in: query
          description: ASide access point physical port speed (Mbps), i.e. 1000, 10000, 100000
          required: false
          style: form
          explode: true
          schema:
            type: integer
        - name: billing
          in: query
          description: Billing type
          required: false
          style: form
          explode: true
          schema:
            type: string
            example: BURST_BASED
            enum:
              - FIXED
              - USAGE_BASED
              - BURST_BASED
        - name: useCase
          in: query
          description: Use case
          required: true
          style: form
          explode: true
          schema:
            type: string
            example: MAIN
            enum:
              - MAIN
              - BACKUP
              - MANAGEMENT_ACCESS
        - name: offset
          in: query
          description: Pagination offset
          required: false
          style: form
          explode: true
          schema:
            minimum: 0
            type: integer
            example: 0
            default: 0
        - name: limit
          in: query
          description: Max number of returned results
          required: false
          style: form
          explode: true
          schema:
            minimum: 0
            type: integer
            example: 50
            default: 50
      responses:
        "200":
          description: Ok
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DedicatedBandwidthConfigurationPage"
              examples:
                getDedicatedBandwidthConfigurationsResponse:
                  $ref: "#/components/examples/200_dedicatedBandwidthConfigurations"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7102010
                      errorMessage: Validation Failure
                      correlationId: sampleCorrelationId
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7102001
                      errorMessage: Unauthorized
                      correlationId: sampleCorrelationId
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7102002
                      errorMessage: Forbidden
                      correlationId: sampleCorrelationId
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                internalServerError:
                  value:
                    - errorCode: EQ-7102030
                      errorMessage: Internal Server Error
                      correlationId: sampleCorrelationId
  /internetAccess/v1/virtualBandwidthConfigurations:
    get:
      tags:
        - Attribute Eligibility
      summary: Virtual Bandwidth Attribute Eligibility API Endpoint
      description: Get virtual bandwidth configurations
      operationId: getVirtualBandwidthConfigurations
      parameters:
        - name: useCase
          in: query
          description: Use case
          required: true
          style: form
          explode: true
          schema:
            type: string
            example: MAIN
            enum:
              - MAIN
              - BACKUP
              - MANAGEMENT_ACCESS
        - name: billing
          in: query
          description: Billing type
          required: false
          style: form
          explode: true
          schema:
            type: string
            example: BURST_BASED
            enum:
              - FIXED
              - USAGE_BASED
              - BURST_BASED
        - name: offset
          in: query
          description: Pagination offset
          required: false
          style: form
          explode: true
          schema:
            minimum: 0
            type: integer
            example: 0
            default: 0
        - name: limit
          in: query
          description: Max number of returned results
          required: false
          style: form
          explode: true
          schema:
            minimum: 0
            type: integer
            example: 50
            default: 50
      responses:
        "200":
          description: Ok
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/VirtualBandwidthConfigurationPage"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7102010
                      errorMessage: Validation Failure
                      correlationId: sampleCorrelationId
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7102001
                      errorMessage: Unauthorized
                      correlationId: sampleCorrelationId
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7102002
                      errorMessage: Forbidden
                      correlationId: sampleCorrelationId
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                internalServerError:
                  value:
                    - errorCode: EQ-7102030
                      errorMessage: Internal Server Error
                      correlationId: sampleCorrelationId
  /internetAccess/v1/virtualConnectionDefaultConfigurations:
    get:
      tags:
        - Attribute Eligibility
      summary: Virtual Connection Default Configuration Attribute Eligibility API Endpoint
      description: Get virtual connection default configurations
      operationId: getVirtualConnectionDefaultConfigurations
      parameters:
        - name: connection.aside.accessPoint.location.metroCode
          in: query
          description: Access point Metro code
          required: false
          style: form
          explode: true
          schema:
            type: string
        - name: connection.aside.accessPoint.location.ibx
          in: query
          description: Access point IBX code
          required: true
          style: form
          explode: true
          schema:
            pattern: ^[A-Z]{2,3}[1-9]?[0-9]{0,2}[a-zA-Z]?$
            type: string
            example: WA1
        - name: offset
          in: query
          description: Pagination offset
          required: false
          style: form
          explode: true
          schema:
            minimum: 0
            type: integer
            example: 0
            default: 0
        - name: limit
          in: query
          description: Max number of returned results
          required: false
          style: form
          explode: true
          schema:
            minimum: 0
            type: integer
            example: 50
            default: 50
      responses:
        "200":
          description: Ok
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/VirtualConnectionDefaultConfigurationPage"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7102010
                      errorMessage: Validation Failure
                      correlationId: sampleCorrelationId
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7102001
                      errorMessage: Unauthorized
                      correlationId: sampleCorrelationId
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7102002
                      errorMessage: Forbidden
                      correlationId: sampleCorrelationId
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                internalServerError:
                  value:
                    - errorCode: EQ-7102030
                      errorMessage: Internal Server Error
                      correlationId: sampleCorrelationId
  /internetAccess/v1/customerRouteConfigurations:
    get:
      tags:
        - Attribute Eligibility
      summary: Customer Route Configuration API Endpoint
      description: Get customer route configurations
      operationId: getCustomerRouteConfigurations
      parameters:
        - name: offset
          in: query
          description: Pagination offset
          required: false
          style: form
          explode: true
          schema:
            minimum: 0
            type: integer
            example: 0
            default: 0
        - name: limit
          in: query
          description: Max number of returned results
          required: false
          style: form
          explode: true
          schema:
            minimum: 0
            type: integer
            example: 50
            default: 50
        - name: useCase
          in: query
          description: Use case
          required: true
          style: form
          explode: true
          schema:
            type: string
            example: MAIN
            enum:
              - MAIN
              - BACKUP
              - MANAGEMENT_ACCESS
        - name: type
          in: query
          description: Type of Equinix Internet Access Service
          required: false
          style: form
          explode: true
          schema:
            $ref: "#/components/schemas/ProductCatalogRedundancy"
        - name: routingProtocol.type
          in: query
          description: Type of Routing Protocol
          required: false
          style: form
          explode: true
          schema:
            type: string
            example: BGP
            enum:
              - BGP
              - DIRECT
              - STATIC
      responses:
        "200":
          description: Ok
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CustomerRouteConfigurationPage"
              examples:
                ipv4:
                  value:
                    pagination:
                      offset: 0
                      limit: 20
                      total: 1
                    data:
                      - type: SINGLE_PORT
                        routingProtocol:
                          type: BGP
                          ipv4:
                            customerRoute:
                              importPolicy: PA
                              prefixLength: 28
                            peering:
                              vrrpEnabled: false
                ipv6:
                  value:
                    pagination:
                      offset: 0
                      limit: 20
                      total: 1
                    data:
                      - type: SINGLE_PORT
                        routingProtocol:
                          type: DIRECT
                          ipv6:
                            customerRoute:
                              importPolicy: PA
                              prefixLength: 64
                            peering:
                              vrrpEnabled: true
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7102010
                      errorMessage: Validation Failure
                      correlationId: sampleCorrelationId
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7102001
                      errorMessage: Unauthorized
                      correlationId: sampleCorrelationId
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7102002
                      errorMessage: Forbidden
                      correlationId: sampleCorrelationId
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                internalServerError:
                  value:
                    - errorCode: EQ-7102030
                      errorMessage: Internal Server Error
                      correlationId: sampleCorrelationId
  /internetAccess/v1/dedicatedPortDefaultConfigurations:
    get:
      tags:
        - Attribute Eligibility
      summary: Dedicated port default configurations API Endpoint
      description: Get dedicated port default configurations
      operationId: getDedicatedPortDefaultConfigurationsPage
      parameters:
        - name: connection.aside.accessPoint.location.ibx
          in: query
          description: ASide access point location IBX
          required: true
          style: form
          explode: true
          schema:
            type: string
            example: WA1
        - name: offset
          in: query
          description: Pagination offset
          required: false
          style: form
          explode: true
          schema:
            minimum: 0
            type: integer
            example: 0
            default: 0
        - name: limit
          in: query
          description: Max number of returned results
          required: false
          style: form
          explode: true
          schema:
            minimum: 0
            type: integer
            example: 50
            default: 50
      responses:
        "200":
          description: Ok
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DedicatedPortDefaultConfigurationsPage"
              examples:
                getDedicatedPortDefaultConfigurations:
                  $ref: "#/components/examples/200_dedicatedPortDefaultConfigurations"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7102010
                      errorMessage: Validation Failure
                      correlationId: sampleCorrelationId
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7102001
                      errorMessage: Unauthorized
                      correlationId: sampleCorrelationId
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7102002
                      errorMessage: Forbidden
                      correlationId: sampleCorrelationId
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                internalServerError:
                  value:
                    - errorCode: EQ-7102030
                      errorMessage: Internal Server Error
                      correlationId: sampleCorrelationId
  /internetAccess/v1/portConfigurations:
    get:
      tags:
        - Attribute Eligibility
      summary: Dedicated Port Attribute Eligibility API Endpoint
      description: Get port configurations
      operationId: getPortConfigurations
      parameters:
        - name: connection.aside.accessPoint.port.location.ibx
          in: query
          description: ASide access point port location IBX
          required: true
          style: form
          explode: true
          schema:
            pattern: ^[A-Z]{2,3}[1-9]?[0-9]{0,2}[a-zA-Z]?$
            type: string
            example: WA1
        - name: useCase
          in: query
          description: Use case
          required: true
          style: form
          explode: true
          schema:
            type: string
            example: MAIN
            enum:
              - MAIN
              - BACKUP
              - MANAGEMENT_ACCESS
        - name: offset
          in: query
          description: Pagination offset
          required: false
          style: form
          explode: true
          schema:
            minimum: 0
            type: integer
            example: 0
            default: 0
        - name: limit
          in: query
          description: Max number of returned results
          required: false
          style: form
          explode: true
          schema:
            minimum: 0
            type: integer
            example: 50
            default: 50
      responses:
        "200":
          description: Ok
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PortConfigurationPage"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7102010
                      errorMessage: Validation Failure
                      correlationId: sampleCorrelationId
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7102001
                      errorMessage: Unauthorized
                      correlationId: sampleCorrelationId
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7102002
                      errorMessage: Forbidden
                      correlationId: sampleCorrelationId
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                internalServerError:
                  value:
                    - errorCode: EQ-7102030
                      errorMessage: Internal Server Error
                      correlationId: sampleCorrelationId
  "/internetAccess/v1/accounts/{accountNumber}/purchaseOrders":
    get:
      tags:
        - Purchase Orders
      summary: List purchase orders
      description: List purchase orders
      operationId: getPurchaseOrders
      parameters:
        - name: locations.ibx
          in: query
          description: IBX code
          required: false
          style: form
          explode: true
          schema:
            type: string
          example: WA1
        - name: accountNumber
          in: path
          description: Number of account to search by
          required: true
          style: simple
          explode: false
          schema:
            type: string
          example: "100013200"
        - name: category
          in: query
          description: product category
          required: false
          style: form
          explode: true
          schema:
            type: string
            default: INTERCONNECTION
            enum:
              - ALL_SERVICES
              - INTERCONNECTION
              - SMART_HANDS
              - POWER
              - NETWORK
              - SERVICES
              - SPACE
        - name: offset
          in: query
          description: Pagination offset
          required: false
          style: form
          explode: true
          schema:
            minimum: 0
            type: integer
            example: 0
            default: 0
        - name: limit
          in: query
          description: Max number of returned results
          required: false
          style: form
          explode: true
          schema:
            minimum: 0
            type: integer
            example: 50
            default: 50
      responses:
        "200":
          description: Purchase orders matching criteria
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PurchaseOrdersPage"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7106010
                      errorMessage: Validation Failure
                      correlationId: sampleCorrelationId
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7106001
                      errorMessage: Unauthorized
                      correlationId: sampleCorrelationId
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7106002
                      errorMessage: Forbidden
                      correlationId: sampleCorrelationId
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7106026
                      errorMessage: Not Found
                      correlationId: sampleCorrelationId
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                internalServerError:
                  value:
                    - errorCode: EQ-7106030
                      errorMessage: Internal Server Error
                      correlationId: sampleCorrelationId
  "/internetAccess/v1/accounts/{accountNumber}/purchaseOrders/{number}":
    get:
      tags:
        - Purchase Orders
      summary: Get specified purchase order
      description: Returns single purchase order
      operationId: getPurchaseOrder
      parameters:
        - name: accountNumber
          in: path
          description: Number of account to search by
          required: true
          style: simple
          explode: false
          schema:
            type: string
          example: "100013200"
        - name: number
          in: path
          description: purchase order number
          required: true
          schema:
            type: string
          example: PO-1234567
      responses:
        "200":
          description: Purchase orders matching criteria
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PurchaseOrder"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7106010
                      errorMessage: Validation Failure
                      correlationId: sampleCorrelationId
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7106001
                      errorMessage: Unauthorized
                      correlationId: sampleCorrelationId
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7106002
                      errorMessage: Forbidden
                      correlationId: sampleCorrelationId
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7106026
                      errorMessage: Not Found
                      correlationId: sampleCorrelationId
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                internalServerError:
                  value:
                    - errorCode: EQ-7106030
                      errorMessage: Internal Server Error
                      correlationId: sampleCorrelationId
  /internetAccess/v1/cages:
    get:
      tags:
        - Cages
      summary: Get list of available Cages
      description: |
        Only Cages available for EIA should be returned
      operationId: getCages
      parameters:
        - name: location.ibx
          in: query
          description: IBX code for given location
          required: true
          style: form
          explode: true
          schema:
            type: string
          example: CH2
        - name: account.accountNumber
          in: query
          description: Account number
          required: true
          style: form
          explode: true
          schema:
            type: string
          example: "123111232"
        - name: offset
          in: query
          description: Pagination offset
          required: false
          style: form
          explode: true
          schema:
            minimum: 0
            type: integer
            example: 0
            default: 0
        - name: limit
          in: query
          description: Max number of returned results
          required: false
          style: form
          explode: true
          schema:
            maximum: 250
            minimum: 0
            type: integer
            example: 50
            default: 50
      responses:
        "200":
          description: List of Cages
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CagesPage"
              examples:
                getCagesResponse:
                  $ref: "#/components/examples/200_cageResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7105010
                      errorMessage: Validation Failure
                      correlationId: sampleCorrelationId
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7105001
                      errorMessage: Unauthorized
                      correlationId: sampleCorrelationId
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7105002
                      errorMessage: Forbidden
                      correlationId: sampleCorrelationId
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                internalServerError:
                  value:
                    - errorCode: EQ-7105030
                      errorMessage: Internal Server Error
                      correlationId: sampleCorrelationId
  /internetAccess/v1/cabinets:
    get:
      tags:
        - Cabinets
      summary: Get list of available Cabinets
      description: |
        Only Cabinets available for EIA should be returned
      operationId: getCabinets
      parameters:
        - name: cage.spaceId
          in: query
          description: Cage space ID
          required: false
          style: form
          explode: true
          schema:
            type: string
          example: CH2:03:00603
        - name: location.ibx
          in: query
          description: IBX code for given location
          required: false
          style: form
          explode: true
          schema:
            type: string
          example: CH2
        - name: account.accountNumber
          in: query
          description: Account number
          required: false
          style: form
          explode: true
          schema:
            type: string
          example: "123111232"
        - name: offset
          in: query
          description: Pagination offset
          required: false
          style: form
          explode: true
          schema:
            minimum: 0
            type: integer
            example: 0
            default: 0
        - name: limit
          in: query
          description: Max number of returned results
          required: false
          style: form
          explode: true
          schema:
            maximum: 250
            minimum: 0
            type: integer
            example: 50
            default: 50
      responses:
        "200":
          description: List of Cabinets
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CabinetsPage"
              examples:
                getCabinets:
                  $ref: "#/components/examples/200_cabinetResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7105010
                      errorMessage: Validation Failure
                      correlationId: sampleCorrelationId
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7105001
                      errorMessage: Unauthorized
                      correlationId: sampleCorrelationId
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7105002
                      errorMessage: Forbidden
                      correlationId: sampleCorrelationId
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                internalServerError:
                  value:
                    - errorCode: EQ-7105030
                      errorMessage: Internal Server Error
                      correlationId: sampleCorrelationId
  /internetAccess/v1/patchPanels:
    get:
      tags:
        - Patch Panels
      summary: Get list of available Patch Panels
      description: |
        Only Cages available for EIA should be returned
      operationId: getPatchPanels
      parameters:
        - name: location.ibx
          in: query
          description: IBX code for given location
          required: true
          style: form
          explode: true
          schema:
            type: string
          example: CH2
        - name: account.accountNumber
          in: query
          description: Account number
          required: true
          style: form
          explode: true
          schema:
            type: string
          example: "123111232"
        - name: cage.spaceId
          in: query
          description: Cage space ID
          required: true
          style: form
          explode: true
          schema:
            type: string
          example: CH2:03:00603
        - name: cabinet.spaceId
          in: query
          description: Cabinet space ID
          required: true
          style: form
          explode: true
          schema:
            type: string
          example: CH1:01:011201:0204
        - name: mediaTypes.name
          in: query
          description: Media Type
          required: false
          style: form
          explode: true
          schema:
            type: string
          example: SINGLE_MODE_FIBER
        - name: offset
          in: query
          description: Pagination offset
          required: false
          style: form
          explode: true
          schema:
            minimum: 0
            type: integer
            example: 0
            default: 0
        - name: limit
          in: query
          description: Max number of returned results
          required: false
          style: form
          explode: true
          schema:
            maximum: 250
            minimum: 0
            type: integer
            example: 50
            default: 50
      responses:
        "200":
          description: List of Patch Panels
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PatchPanelsPage"
              examples:
                getPatchPanels:
                  $ref: "#/components/examples/200_patchPanelsResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7105010
                      errorMessage: Validation Failure
                      correlationId: sampleCorrelationId
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7105001
                      errorMessage: Unauthorized
                      correlationId: sampleCorrelationId
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7105002
                      errorMessage: Forbidden
                      correlationId: sampleCorrelationId
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                internalServerError:
                  value:
                    - errorCode: EQ-7105030
                      errorMessage: Internal Server Error
                      correlationId: sampleCorrelationId
  /internetAccess/v1/connectionServices:
    get:
      tags:
        - Connection Services
      summary: Get list of available connection services
      description: |
        Only Connection Services available for EIA should be returned
      operationId: getConnectionServices
      parameters:
        - name: mediaTypes.connectorTypes.locations.ibx
          in: query
          description: IBX Code
          required: true
          style: form
          explode: true
          schema:
            type: string
          example: SG1
        - name: offset
          in: query
          description: Pagination offset
          required: false
          style: form
          explode: true
          schema:
            minimum: 0
            type: integer
            example: 0
            default: 0
        - name: limit
          in: query
          description: Max number of returned results
          required: false
          style: form
          explode: true
          schema:
            minimum: 0
            type: integer
            example: 50
            default: 50
      responses:
        "200":
          description: List of Connection Services
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ConnectionServicesPage"
              examples:
                getConnectionServices:
                  $ref: "#/components/examples/200_connectionServiceResponse"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7105010
                      errorMessage: Validation Failure
                      correlationId: sampleCorrelationId
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7105001
                      errorMessage: Unauthorized
                      correlationId: sampleCorrelationId
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7105002
                      errorMessage: Forbidden
                      correlationId: sampleCorrelationId
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                internalServerError:
                  value:
                    - errorCode: EQ-7105030
                      errorMessage: Internal Server Error
                      correlationId: sampleCorrelationId
  "/internetAccess/v1/orders/{orderUUID}":
    get:
      tags:
        - EIA Order
      summary: Returns EIA Order details
      description: |
        Returns Order details
      operationId: getOrder
      parameters:
        - name: orderUUID
          in: path
          description: UUID of the checked order
          required: true
          style: simple
          explode: false
          schema:
            type: string
            format: uuid
          example: d27c0f84-f1da-498e-95c0-f3d3ae02d16d
      responses:
        "200":
          description: Order details
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OrderDetails"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7100010
                      errorMessage: Validation Failure
                      correlationId: sampleCorrelationId
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7100001
                      errorMessage: Unauthorized
                      correlationId: sampleCorrelationId
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7100002
                      errorMessage: Forbidden
                      correlationId: sampleCorrelationId
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7100026
                      errorMessage: No data found for the given input criteria
                      correlationId: sampleCorrelationId
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                internalServerError:
                  value:
                    - errorCode: EQ-7100030
                      errorMessage: Internal Server Error
                      correlationId: sampleCorrelationId
  /internetAccess/v1/services:
    post:
      tags:
        - EIA Service
      summary: Creates Equinix Internet Access Service
      description: |
        By passing in the appropriate options, you can create Equinix Internet Access Service product. The entire request either succeeds or fails. In case of failure all the changes in the system are rolled back, so the system gets back to its stated before submitting the request
      operationId: createEquinixInternetAccess
      parameters: []
      requestBody:
        description: |
          Options for creating Equinix Internet Access Service product
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ServiceRequest"
        required: true
      responses:
        "201":
          description: |
            Equinix Internet Access Service Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Service"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7100010
                      errorMessage: Validation Failure
                      correlationId: sampleCorrelationId
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7100001
                      errorMessage: Unauthorized
                      correlationId: sampleCorrelationId
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7100002
                      errorMessage: Forbidden
                      correlationId: sampleCorrelationId
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                internalServerError:
                  value:
                    - errorCode: EQ-7100030
                      errorMessage: Internal Server Error
                      correlationId: sampleCorrelationId
  "/internetAccess/v1/services/{serviceId}":
    delete:
      tags:
        - EIA Service
      summary: Deletes Equinix Internet Access Service
      description: "Delete Equinix Internet Access product by passing the id of the service. \nThe entire request either succeeds or fails.\n"
      operationId: deleteEquinixInternetAccess
      parameters:
        - name: serviceId
          in: path
          description: Service identifier
          required: true
          style: simple
          explode: false
          schema:
            type: string
            description: Service identifier
            format: uuid
            example: 919ac898-a4b9-4f9d-b684-aa09ddc65b1b
        - name: dryRun
          in: query
          description: Setting this parameter to true will perform only request validation without actually deleting the service
          required: false
          style: form
          explode: false
          schema:
            type: boolean
            description: Setting this parameter to true will perform only request validation without actually deleting the service
            example: true
      responses:
        "202":
          description: |
            Equinix Internet Access Service Response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Service"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7100010
                      errorMessage: Validation Failure
                      correlationId: sampleCorrelationId
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7100001
                      errorMessage: Unauthorized
                      correlationId: sampleCorrelationId
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7100002
                      errorMessage: Forbidden
                      correlationId: sampleCorrelationId
        "404":
          description: Not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                invalidProperty:
                  value:
                    - errorCode: EQ-7100003
                      errorMessage: Not found
                      correlationId: sampleCorrelationId
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorList"
              examples:
                internalServerError:
                  value:
                    - errorCode: EQ-7100030
                      errorMessage: Internal Server Error
                      correlationId: sampleCorrelationId
  /internetAccess/v1/services/search:
    post:
      tags:
        - EIA Service
      summary: Get Equinix Internet Access Services
      description: |
        Get Equinix Internet Access Services that match specified criteria.
      operationId: getEquinixInternetAccessServices
      parameters:
        - name: offset
          in: query
          description: Search result offset
          required: false
          style: form
          explode: false
          schema:
            type: number
            example: 20
          x-internal: false
        - name: limit
          in: query
          description: Search result limit
          required: false
          style: form
          explode: false
          schema:
            type: number
            example: 35
          x-internal: false
        - name: sort
          in: query
          description: Search result sorting
          required: false
          style: form
          explode: false
          schema:
            pattern: ^([-]?[\/][a-z]+[,]?)+$
            type: string
            example: /name,-/type
          x-internal: false
      requestBody:
        description: Search filters
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SearchRequest"
      responses:
        "200":
          description: Equinix Internet Access Viewer response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SearchResponse"
        "400":
          description: Invalid input parameter
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
        "401":
          description: Unauthenticated
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
        "403":
          description: Unathorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
      x-content-type: application/json
      x-accepts: application/json
  "/internetAccess/v1/services/{serviceUuid}":
    get:
      tags:
        - EIA Service
      summary: Get Equinix Internet Access Service details
      description: |
        Get Equinix Internet Access Service details.
      operationId: getEquinixInternetAccessServiceDetails
      parameters:
        - name: serviceUuid
          in: path
          description: Service identifier
          required: true
          style: simple
          explode: false
          schema:
            type: string
            description: Service identifier
            format: uuid
            example: 919ac898-a4b9-4f9d-b684-aa09ddc65b1b
      responses:
        "200":
          description: Equinix Internet Access Service details response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ServiceDetailsResponse"
        "401":
          description: Unauthenticated
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
        "404":
          description: Item not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
      x-accepts: application/json
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
  schemas:
    AccountPage:
      required:
        - data
        - pagination
      type: object
      properties:
        pagination:
          $ref: "#/components/schemas/Pagination"
        data:
          type: array
          items:
            $ref: "#/components/schemas/AccountDetails"
    AccountAgreementsPage:
      required:
        - data
        - pagination
      type: object
      properties:
        pagination:
          $ref: "#/components/schemas/Pagination"
        data:
          type: array
          items:
            $ref: "#/components/schemas/AccountAgreements_data"
    AccountDetails:
      required:
        - accountName
        - accountNumber
        - billing
        - operationalUnits
      type: object
      properties:
        accountNumber:
          type: string
          example: "100013200"
        accountName:
          type: string
          example: Web Henderson
        billing:
          $ref: "#/components/schemas/Account_billing"
        operationalUnits:
          type: array
          items:
            $ref: "#/components/schemas/AccountOperationalUnit"
        orgId:
          type: string
          description: Customer organization identifier
          example: "1232"
        organizationName:
          type: string
          description: Customer organization name
          example: Equinix, Inc.
    AccountOperationalUnit:
      required:
        - ibxs
      type: object
      properties:
        ibxs:
          type: array
          items:
            $ref: "#/components/schemas/OperationalUnit_ibxs"
        metros:
          type: array
          items:
            $ref: "#/components/schemas/OperationalUnit_metros"
    AccountAgreements_data:
      type: object
      properties:
        ibx:
          type: string
          example: WA1
        type:
          type: string
          description: MCA - Master Country Agreement, GTC - Global Terms & Conditions
          example: MCA_GTC
          enum:
            - MCA_GTC
        valid:
          type: boolean
          example: true
    Account_billing:
      required:
        - currency
        - poBearing
        - poExempted
        - signatureRequired
      type: object
      properties:
        signatureRequired:
          type: boolean
          description: Whether the signature is required
          example: false
        poExempted:
          type: boolean
          description: Whether the purchase order has been exempted
          example: true
        poBearing:
          type: boolean
          description: Whether the purchase order is required
          example: true
        currency:
          $ref: "#/components/schemas/CurrencyCode"
    OperationalUnit_ibxs:
      required:
        - ibx
      type: object
      properties:
        ibx:
          type: string
          example: WA1
    OperationalUnit_metros:
      required:
        - metroCode
      type: object
      properties:
        metroCode:
          type: string
          example: WA
    ErrorList:
      type: array
      description: List of Error Message
      items:
        $ref: "#/components/schemas/Error"
    Error:
      required:
        - errorCode
        - errorMessage
      type: object
      properties:
        errorCode:
          pattern: ^EQ-\d{7}$
          type: string
          description: |
            Error code
          readOnly: true
          example: EQ-7100100
        errorMessage:
          type: string
          description: Error message
          readOnly: true
          example: |
            Unknown error occurred in Internet Access
        correlationId:
          type: string
          description: |
            Correlation ID identifying the request
          readOnly: true
          example: 4e7b5042-b553-4d5e-a2ac-c73bf6d4ee27
        details:
          type: string
          description: |
            Error details
          readOnly: true
          example: |
            Unknown error occurred in Internet Access
        help:
          type: string
          description: |
            Link to the help information
          format: uri
          readOnly: true
          example: https://developer.equinix.com/faq
        additionalInfo:
          type: array
          description: |
            Collection of additional information
          readOnly: true
          items:
            $ref: "#/components/schemas/ErrorAdditionalInfo"
      description: Error Response with details
      readOnly: true
    ErrorAdditionalInfo:
      type: object
      properties:
        reason:
          type: string
          description: |
            Reason of the error
          example: |
            Unsupported request parameter value
        property:
          type: string
          description: |
            Request property that caused the error
          example: work.emailId
      description: Additional info for error
    Pagination:
      required:
        - limit
        - offset
        - total
      type: object
      properties:
        offset:
          minimum: 0
          type: integer
          format: int64
          example: 0
        limit:
          minimum: 0
          type: integer
          format: int64
          example: 20
        total:
          type: integer
          format: int64
          example: 2
        next:
          type: string
          description: Next page link
        previous:
          type: string
          description: Previous page link
    CurrencyCode:
      type: string
      description: Currency codes
      example: USD
      enum:
        - AED
        - AFN
        - ALL
        - AMD
        - ANG
        - AOA
        - ARS
        - AUD
        - AWG
        - AZN
        - BAM
        - BBD
        - BDT
        - BGN
        - BHD
        - BIF
        - BMD
        - BND
        - BOB
        - BOV
        - BRL
        - BSD
        - BTN
        - BWP
        - BYN
        - BZD
        - CAD
        - CDF
        - CHE
        - CHF
        - CHW
        - CLF
        - CLP
        - CNY
        - COP
        - COU
        - CRC
        - CUC
        - CUP
        - CVE
        - CZK
        - DJF
        - DKK
        - DOP
        - DZD
        - EGP
        - ERN
        - ETB
        - EUR
        - FJD
        - FKP
        - GBP
        - GEL
        - GHS
        - GIP
        - GMD
        - GNF
        - GTQ
        - GYD
        - HKD
        - HNL
        - HRK
        - HTG
        - HUF
        - IDR
        - ILS
        - INR
        - IQD
        - IRR
        - ISK
        - JMD
        - JOD
        - JPY
        - KES
        - KGS
        - KHR
        - KMF
        - KPW
        - KRW
        - KWD
        - KYD
        - KZT
        - LAK
        - LBP
        - LKR
        - LRD
        - LSL
        - LYD
        - MAD
        - MDL
        - MGA
        - MKD
        - MMK
        - MNT
        - MOP
        - MRU
        - MUR
        - MVR
        - MWK
        - MXN
        - MXV
        - MYR
        - MZN
        - NAD
        - NGN
        - NIO
        - NOK
        - NPR
        - NZD
        - OMR
        - PAB
        - PEN
        - PGK
        - PHP
        - PKR
        - PLN
        - PYG
        - QAR
        - RON
        - RSD
        - RUB
        - RWF
        - SAR
        - SBD
        - SCR
        - SDG
        - SEK
        - SGD
        - SHP
        - SLL
        - SOS
        - SRD
        - SSP
        - STN
        - SVC
        - SYP
        - SZL
        - THB
        - TJS
        - TMT
        - TND
        - TOP
        - TRY
        - TTD
        - TWD
        - TZS
        - UAH
        - UGX
        - USD
        - USN
        - UYI
        - UYU
        - UYW
        - UZS
        - VES
        - VND
        - VUV
        - WST
        - XAF
        - XAG
        - XAU
        - XBA
        - XBB
        - XBC
        - XBD
        - XCD
        - XDR
        - XOF
        - XPD
        - XPF
        - XPT
        - XSU
        - XTS
        - XUA
        - XXX
        - YER
        - ZAR
        - ZMW
        - ZWL
    OperationalUnitPage:
      required:
        - data
        - pagination
      type: object
      properties:
        pagination:
          $ref: "#/components/schemas/Pagination"
        data:
          type: array
          items:
            $ref: "#/components/schemas/OperationalUnit"
    OperationalUnit:
      required:
        - address
        - location
        - name
      type: object
      properties:
        name:
          type: string
          example: "Equinix (Netherlands) B.V., Registration No: 24429748"
        address:
          $ref: "#/components/schemas/Address"
        location:
          $ref: "#/components/schemas/OperationalUnit_location"
    TermsAndConditions:
      required:
        - account
        - connectivitySource
        - language
        - location
        - product
        - text
        - type
        - version
      type: object
      properties:
        text:
          type: string
          example: "<html>\r\n\t<head>\r\n\t</head>\r\n\t\r\n\t<body>\r\n\t\r\n\t\t<div>\r\n\t\t\t1.  INTRODUCTION\r\n\t\t\t<br/><br/>\r\n\t\t\tBy clicking to “Accept”..."
        version:
          type: string
          example: a0F6w000000buYKEAY
        location:
          $ref: "#/components/schemas/TermsAndConditions_location"
        account:
          $ref: "#/components/schemas/TermsAndConditions_account"
        connectivitySource:
          $ref: "#/components/schemas/TermsAndConditions_connectivitySource"
        type:
          type: string
          default: TERMS_AND_CONDITIONS
          enum:
            - TERMS_AND_CONDITIONS
            - RENEWAL_TERMS
            - PRICE_INCREASE_TERMS
        product:
          type: string
          enum:
            - IA_C
            - IA_VC
            - MC_C
        language:
          type: string
          example: en
    TermsAndConditionsPage:
      required:
        - data
        - pagination
      type: object
      properties:
        pagination:
          $ref: "#/components/schemas/Pagination"
        data:
          type: array
          items:
            $ref: "#/components/schemas/TermsAndConditions"
    SignaturePoliciesPage:
      required:
        - data
        - pagination
      type: object
      properties:
        pagination:
          $ref: "#/components/schemas/Pagination"
        data:
          type: array
          items:
            $ref: "#/components/schemas/SignaturePolicy"
    SignaturePolicy:
      required:
        - clickThroughAllowed
        - location
        - signature
      type: object
      properties:
        signature:
          $ref: "#/components/schemas/Signature"
        clickThroughAllowed:
          type: boolean
          example: true
        location:
          $ref: "#/components/schemas/SignaturePolicyLocation"
    Signature:
      type: object
      properties:
        types:
          type: array
          items:
            type: string
            example: DIGITAL
            enum:
              - WET
              - DIGITAL
    SignaturePolicyLocation:
      required:
        - countryCode
      type: object
      properties:
        countryCode:
          type: string
          example: PL
    Address:
      required:
        - address1
      type: object
      properties:
        address1:
          type: string
          description: Address Line 1
          example: Aleje Jerozolimskie 65/79
        address2:
          type: string
          description: Address Line 2
          example: null
        city:
          type: string
          description: City name
          example: Warsaw
        countryCode:
          type: string
          description: Country code
          example: PL
        country:
          type: string
          description: Country name
          example: Poland
        zipCode:
          type: string
          description: Zip code
          example: 00-697
    OperationalUnit_location:
      required:
        - ibx
        - metroCode
      type: object
      properties:
        ibx:
          type: string
          example: WA1
        metroCode:
          type: string
          example: WA
    TermsAndConditions_location:
      required:
        - ibx
      type: object
      properties:
        ibx:
          type: string
          example: CH2
    TermsAndConditions_account:
      required:
        - accountNumber
      type: object
      properties:
        accountNumber:
          type: string
          example: "12312312223"
    TermsAndConditions_connectivitySource:
      type: object
      properties:
        type:
          type: string
          example: COLO
          enum:
            - COLO
            - BMMR
            - REMOTE
    FilterBody:
      required:
        - filter
      type: object
      properties:
        filter:
          $ref: "#/components/schemas/SearchFilter"
    SearchFilter:
      required:
        - and
      type: object
      properties:
        and:
          $ref: "#/components/schemas/AndOperator"
    AndOperator:
      required:
        - items
      type: array
      items:
        $ref: "#/components/schemas/SimpleExpression"
    SimpleExpression:
      required:
        - operator
        - property
        - values
      type: object
      properties:
        property:
          type: string
        operator:
          type: string
          enum:
            - =
        values:
          minItems: 1
          type: array
          items:
            type: string
    ProductType:
      type: string
      description: Product type
      enum:
        - INTERNET_ACCESS_PRODUCT
        - IP_BLOCK_PRODUCT
    ProductInfo:
      type: object
      properties:
        type:
          $ref: "#/components/schemas/ProductType"
        code:
          type: string
          description: Equinix-assigned product code.
          example: EC00015.PROD
        name:
          type: string
          description: Full product name.
          example: Internet Access Service Product
        description:
          type: string
          description: Product description.
          example: Internet Access Service
    AssetLocation:
      required:
        - ibx
      type: object
      properties:
        ibx:
          type: string
          description: Two-letter prefix for the ibx in which the IP block is located.
          example: SV1
      description: Geographic data for the product.
    PriceSearchResponse:
      required:
        - data
        - pagination
      type: object
      properties:
        data:
          type: array
          items:
            $ref: "#/components/schemas/Price"
        pagination:
          $ref: "#/components/schemas/Pagination"
    PriceSummary:
      required:
        - charges
        - totalCharge
      type: object
      properties:
        charges:
          type: array
          items:
            $ref: "#/components/schemas/PriceCharge"
        totalCharge:
          $ref: "#/components/schemas/TotalCharge"
    TotalCharge:
      required:
        - price
      type: object
      properties:
        price:
          type: number
    Price:
      required:
        - category
        - charges
        - code
        - currency
        - href
        - name
        - summary
        - type
      type: object
      properties:
        href:
          type: string
          description: An absolute URL that returns specified pricing data
          format: url
        type:
          $ref: "#/components/schemas/ProductType"
        code:
          type: string
          description: Equinix-assigned product code
        name:
          type: string
          description: Full product name
        description:
          type: string
          description: Product description
        account:
          $ref: "#/components/schemas/CustomerAccount"
        currency:
          $ref: "#/components/schemas/CurrencyCode"
        category:
          $ref: "#/components/schemas/PriceCategory"
        charges:
          type: array
          items:
            $ref: "#/components/schemas/ProductPriceCharge"
        summary:
          $ref: "#/components/schemas/PriceSummary"
        service:
          $ref: "#/components/schemas/ServicePrice"
        ipBlock:
          $ref: "#/components/schemas/IpBlockProductPrice"
    PriceCategory:
      type: string
      description: Price category
      enum:
        - COUNTRY
        - CUSTOMER
    PriceCharge:
      required:
        - price
        - type
        - unit
      type: object
      properties:
        type:
          $ref: "#/components/schemas/PriceChargeType"
        price:
          type: number
          description: Offering price
        unit:
          type: string
          description: In case of fixed billing the unit is ITEM
          enum:
            - ITEM
            - GB_1
            - MBPS_1
      description: Price Charge
    PriceChargeType:
      type: string
      description: Charge type.
      enum:
        - MONTHLY_RECURRING
        - NON_RECURRING
    ProductPriceCharge:
      description: Price Charge
      allOf:
        - $ref: "#/components/schemas/PriceCharge"
        - type: object
          properties:
            product:
              $ref: "#/components/schemas/ProductInfo"
    ServicePrice:
      type: object
      properties:
        uuid:
          type: string
          description: Unique identifier assigned to the service. Either the uuid or the remaining attributes must be supplied.
          format: uuid
          example: 38a1eb68-4daf-4ef0-bd7f-6970727b6fc1
        type:
          type: string
          description: Service type. SINGLE_PORT - internet access with single connection; DUAL_PORT - internet access with two redundant connections.
          enum:
            - SINGLE_PORT
            - DUAL_PORT
        bandwidth:
          type: integer
          description: Connection bandwidth (Mbps).
          format: int32
          example: 100
        minBandwidthCommit:
          type: integer
          description: Minimum bandwidth commit (Mbps). Used in case of Burst Based billing.
          format: int32
          example: 100
        billing:
          type: string
          description: Billing type.
          default: FIXED
          enum:
            - FIXED
            - USAGE_BASED
            - BURST_BASED
        useCase:
          type: string
          enum:
            - MAIN
            - BACKUP
            - MANAGEMENT_ACCESS
        connection:
          $ref: "#/components/schemas/ConnectionPrice"
        routingProtocol:
          $ref: "#/components/schemas/RoutingProtocol"
      description: Properties of this object can be used in search in form of JsonPointers unless speficied otherwise.
    ConnectionPrice:
      required:
        - aSide
        - type
      type: object
      properties:
        uuid:
          type: string
          description: Unique identifier assigned to the connection. Either the uuid or the remaining attributes must be supplied.
          format: uuid
          example: 38a1eb68-4daf-4ef0-bd7f-6970727b6fc1
        type:
          $ref: "#/components/schemas/ConnectionType"
        aSide:
          $ref: "#/components/schemas/ASidePrice"
    AccessPointPortPrice:
      required:
        - physicalPortQuantity
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        physicalPort:
          $ref: "#/components/schemas/AccessPointPhysicalPortPrice"
        physicalPortQuantity:
          minimum: 1
          type: integer
          format: int32
      description: Port associated with the connection.
    AccessPointPhysicalPortPrice:
      required:
        - speed
      type: object
      properties:
        speed:
          type: integer
          description: Physical Port speed (Mbps) i.e. 1000, 10000, 100000
          format: int32
          example: 1000
    ASidePrice:
      required:
        - accessPoint
      type: object
      properties:
        accessPoint:
          $ref: "#/components/schemas/ASideAccessPointPrice"
      description: A-side (subscriber) connection configuration.
    ASideAccessPointPrice:
      required:
        - location
        - port
        - type
      type: object
      properties:
        type:
          $ref: "#/components/schemas/AccessPointType"
        location:
          $ref: "#/components/schemas/AssetLocation"
        port:
          $ref: "#/components/schemas/AccessPointPortPrice"
      description: A carrier-neutral network hub linking internet access providers.
    RoutingProtocolType:
      type: string
      enum:
        - DIRECT
        - STATIC
        - BGP
    RoutingProtocol:
      required:
        - type
      type: object
      properties:
        type:
          $ref: "#/components/schemas/RoutingProtocolType"
        ipv4:
          $ref: "#/components/schemas/RoutingProtocolIpBlock"
        ipv6:
          $ref: "#/components/schemas/RoutingProtocolIpBlock"
    RoutingProtocolIpBlock:
      required:
        - customerRoute
      type: object
      properties:
        customerRoute:
          $ref: "#/components/schemas/CustomerRoute"
    CustomerRoute:
      required:
        - ipBlock
      type: object
      properties:
        ipBlock:
          $ref: "#/components/schemas/CustomerIpBlock"
    CustomerIpBlock:
      required:
        - prefixLength
      type: object
      properties:
        prefixLength:
          maximum: 128
          minimum: 1
          type: integer
          description: The IPv6 routing prefix, sometimes called a subnet mask, is the network portion of an IP address. The prefix length is an integer between 1 and 128 (inclusive) that represents the number of bits set to 1, such as /24 or /60.
          format: int32
    IpBlockProductPrice:
      required:
        - location
        - type
      properties:
        uuid:
          type: string
          description: Unique identifier assigned to the IP block.
          example: 70f3e0cb-4630-4ea8-88c8-31f9999345f7
        type:
          $ref: "#/components/schemas/IpBlockType"
        location:
          $ref: "#/components/schemas/AssetLocation"
        ipv4:
          $ref: "#/components/schemas/CustomerIpBlock"
        ipv6:
          $ref: "#/components/schemas/CustomerIpBlock"
      description: Configuration of the IP block to which the specified connections belong. An IP block is a set of sequential internet protocol (IP) addresses issued to a single entity, such as an internet service provider (ISP). Properties of this object can be used in search in form of JsonPointers, one of ipv4 or ipv6 is required.
    IpBlockType:
      type: string
      description: IP Block type.
      enum:
        - IA_IP_BLOCK
    CustomerAccount:
      required:
        - accountNumber
      type: object
      properties:
        accountNumber:
          type: string
          description: Customer billing account number.
          example: 2-57689234
      description: Customer billing account data. It must be validated to ensure that (1) it can be used for ordering in the source metro and (2) the user is permitted to access the data.
    ConnectionType:
      type: string
      description: Connection type. IA_C - internet access connection on dedicated port; IA_VC - internet access virtual connection on Fabric Port, Virtual Device, Bare Metal, etc.
      enum:
        - IA_C
        - IA_VC
    AccessPointType:
      type: string
      description: Type of access point. SUBNET is reserved for future use. Gateway, Fabric Gateway; IGW, internet gateway; COLO, colocation; VD, virtual device; SP, service profile.
      enum:
        - COLO
        - VD
    Ibx:
      required:
        - href
      type: object
      properties:
        href:
          type: string
          example: https://api.equinix.com/internetAccess/ibxs/WA1
        countryCode:
          type: string
          example: PL
        countryName:
          type: string
          example: Poland
        region:
          type: string
          example: EMEA
          enum:
            - APAC
            - EMEA
            - AMER
        metroCode:
          type: string
          example: WA
        metroName:
          type: string
          example: Warsaw
        ibx:
          type: string
          description: IBX data center code
          example: WA1
        geoCoordinates:
          $ref: "#/components/schemas/GeoCoordinates"
      description: IBX object
    IbxPage:
      required:
        - data
        - pagination
      type: object
      properties:
        pagination:
          $ref: "#/components/schemas/Pagination"
        data:
          type: array
          items:
            $ref: "#/components/schemas/Ibx"
    PortConfigurationPage:
      required:
        - data
        - pagination
      type: object
      properties:
        pagination:
          $ref: "#/components/schemas/Pagination"
        data:
          type: array
          items:
            $ref: "#/components/schemas/PortConfiguration"
    PortConfiguration:
      required:
        - connection
        - routingProtocol
        - type
        - useCase
      type: object
      properties:
        useCase:
          type: string
          example: MAIN
          enum:
            - MAIN
            - BACKUP
            - MANAGEMENT_ACCESS
        type:
          $ref: "#/components/schemas/ProductCatalogRedundancy"
        routingProtocol:
          $ref: "#/components/schemas/PortConfiguration_routingProtocol"
        connection:
          $ref: "#/components/schemas/PortConfiguration_connection"
    PortConfigurationRoutingProtocolIp:
      type: object
      properties:
        enabled:
          type: boolean
          example: true
    RoutingProtocolConfigurationPage:
      required:
        - data
        - pagination
      type: object
      properties:
        pagination:
          $ref: "#/components/schemas/Pagination"
        data:
          type: array
          items:
            $ref: "#/components/schemas/RoutingProtocolConfiguration"
    RoutingProtocolConfiguration:
      required:
        - routingProtocol
        - type
        - useCase
      type: object
      properties:
        useCase:
          type: string
          example: MAIN
          enum:
            - MAIN
            - BACKUP
            - MANAGEMENT_ACCESS
        type:
          $ref: "#/components/schemas/ProductCatalogRedundancy"
        routingProtocol:
          $ref: "#/components/schemas/RoutingProtocolConfiguration_routingProtocol"
    RoutingProtocolConfigurationIp:
      type: object
      properties:
        customerRoute:
          $ref: "#/components/schemas/RoutingProtocolConfigurationIp_customerRoute"
        peering:
          $ref: "#/components/schemas/RoutingProtocolConfigurationIp_peering"
    DedicatedBandwidthConfigurationPage:
      required:
        - data
        - pagination
      type: object
      properties:
        pagination:
          $ref: "#/components/schemas/Pagination"
        data:
          type: array
          items:
            $ref: "#/components/schemas/DedicatedBandwidthConfiguration"
    DedicatedBandwidthConfiguration:
      required:
        - bandwidth
        - connection
        - useCase
      type: object
      properties:
        useCase:
          type: string
          example: MAIN
          enum:
            - MAIN
            - BACKUP
            - MANAGEMENT_ACCESS
        bandwidth:
          type: integer
          description: in Mbps
          example: 150000
        minBandwidthCommit:
          type: integer
          description: in Mbps
          example: 150000
        billing:
          type: string
          example: BURST_BASED
          enum:
            - FIXED
            - USAGE_BASED
            - BURST_BASED
        connection:
          $ref: "#/components/schemas/DedicatedBandwidthConfiguration_connection"
    VirtualBandwidthConfigurationPage:
      required:
        - data
        - pagination
      type: object
      properties:
        pagination:
          $ref: "#/components/schemas/Pagination"
        data:
          type: array
          items:
            $ref: "#/components/schemas/VirtualBandwidthConfiguration"
    VirtualBandwidthConfiguration:
      required:
        - bandwidth
        - billing
        - useCase
      type: object
      properties:
        useCase:
          type: string
          example: MAIN
          enum:
            - MAIN
            - BACKUP
            - MANAGEMENT_ACCESS
        billing:
          type: string
          example: FIXED
          enum:
            - FIXED
            - USAGE_BASED
            - BURST_BASED
        bandwidth:
          type: integer
          description: in Mbps
          example: 150000
        minBandwidthCommit:
          type: integer
          description: in Mbps
          example: 150000
    CustomerRouteConfigurationPage:
      required:
        - data
        - pagination
      type: object
      properties:
        pagination:
          $ref: "#/components/schemas/Pagination"
        data:
          type: array
          items:
            $ref: "#/components/schemas/CustomerRouteConfiguration"
    CustomerRouteConfiguration:
      type: object
      properties:
        type:
          $ref: "#/components/schemas/ProductCatalogRedundancy"
        useCase:
          type: string
          example: MAIN
          enum:
            - MAIN
            - BACKUP
            - MANAGEMENT_ACCESS
        routingProtocol:
          $ref: "#/components/schemas/CustomerRouteConfiguration_routingProtocol"
    CustomerRouteConfigurationRoutingProtocolIp:
      type: object
      properties:
        customerRoute:
          $ref: "#/components/schemas/CustomerRouteConfigurationRoutingProtocolIp_customerRoute"
        peering:
          $ref: "#/components/schemas/CustomerRouteConfigurationRoutingProtocolIp_peering"
    DedicatedPortDefaultConfigurationsPage:
      required:
        - data
        - pagination
      type: object
      properties:
        pagination:
          $ref: "#/components/schemas/Pagination"
        data:
          type: array
          items:
            $ref: "#/components/schemas/DedicatedPortDefaultConfiguration"
    DedicatedPortDefaultConfiguration:
      required:
        - billing
        - connection
      type: object
      properties:
        type:
          $ref: "#/components/schemas/ProductCatalogRedundancy"
        useCase:
          type: string
          example: MAIN
          enum:
            - MAIN
            - BACKUP
            - MANAGEMENT_ACCESS
        billing:
          type: string
          example: FIXED
          enum:
            - FIXED
            - USAGE_BASED
            - BURST_BASED
        bandwidth:
          type: integer
          description: in Mbps
          example: 15
        minBandwidthCommit:
          type: integer
          description: in Mbps
        connection:
          $ref: "#/components/schemas/DedicatedPortDefaultConfiguration_connection"
        routingProtocol:
          $ref: "#/components/schemas/DedicatedPortDefaultConfiguration_routingProtocol"
    DedicatedPortDefaultConfigurationRoutingProtocolIp:
      type: object
      properties:
        customerRoute:
          $ref: "#/components/schemas/DedicatedPortDefaultConfigurationRoutingProtocolIp_customerRoute"
    VirtualConnectionDefaultConfigurationPage:
      required:
        - data
        - pagination
      type: object
      properties:
        pagination:
          $ref: "#/components/schemas/Pagination"
        data:
          type: array
          items:
            $ref: "#/components/schemas/VirtualConnectionDefaultConfiguration"
    VirtualConnectionDefaultConfiguration:
      required:
        - bandwidth
        - billing
        - connection
        - routingProtocol
        - type
        - useCase
      type: object
      properties:
        type:
          $ref: "#/components/schemas/ProductCatalogRedundancy"
        useCase:
          $ref: "#/components/schemas/ProductCatalogUseCase"
        billing:
          $ref: "#/components/schemas/ProductCatalogBillingType"
        bandwidth:
          type: integer
          description: in Mbps
        minBandwidthCommit:
          type: integer
          description: in Mbps
        connection:
          $ref: "#/components/schemas/VirtualConnectionDefaultConfiguration_connection"
        routingProtocol:
          $ref: "#/components/schemas/VirtualConnectionDefaultConfiguration_routingProtocol"
    VirtualConnectionDefaultConfigurationRoutingProtocolIp:
      required:
        - customerRoute
      type: object
      properties:
        customerRoute:
          $ref: "#/components/schemas/VirtualConnectionDefaultConfigurationRoutingProtocolIp_customerRoute"
    ProductCatalogRedundancy:
      type: string
      example: SINGLE_PORT
      enum:
        - SINGLE_PORT
        - DUAL_PORT
    ProductCatalogBillingType:
      type: string
      example: FIXED
      enum:
        - FIXED
        - USAGE_BASED
        - BURST_BASED
    ProductCatalogRoutingProtocolType:
      type: string
      example: DIRECT
      enum:
        - DIRECT
        - STATIC
        - BGP
    ProductCatalogUseCase:
      type: string
      example: MAIN
      enum:
        - MAIN
        - BACKUP
        - MANAGEMENT_ACCESS
    ProductCatalogImportPolicy:
      type: string
      example: PA
      enum:
        - PI
        - PA
    GeoCoordinates:
      required:
        - latitude
        - longitude
      type: object
      properties:
        latitude:
          type: number
          example: 53.55
        longitude:
          type: number
          example: 9.95
    PortConfiguration_routingProtocol:
      type: object
      properties:
        ipv4:
          $ref: "#/components/schemas/PortConfigurationRoutingProtocolIp"
        ipv6:
          $ref: "#/components/schemas/PortConfigurationRoutingProtocolIp"
    PortConfiguration_connection_aside_accessPoint_port_location:
      required:
        - ibx
      type: object
      properties:
        ibx:
          type: string
          example: WA1
    PortConfiguration_connection_aside_accessPoint_port_physicalPort_interface:
      type: object
      properties:
        type:
          type: string
          example: 100G SMF
    PortConfiguration_connection_aside_accessPoint_port_physicalPort_demarcationPoint:
      type: object
      properties:
        mediaType:
          type: string
          example: Single-Mode Fiber
    PortConfiguration_connection_aside_accessPoint_port_physicalPort:
      required:
        - demarcationPoint
        - interface
        - speed
      type: object
      properties:
        speed:
          type: integer
          description: in Mbps
          example: 100000
        interface:
          $ref: "#/components/schemas/PortConfiguration_connection_aside_accessPoint_port_physicalPort_interface"
        demarcationPoint:
          $ref: "#/components/schemas/PortConfiguration_connection_aside_accessPoint_port_physicalPort_demarcationPoint"
    PortConfiguration_connection_aside_accessPoint_port:
      required:
        - location
        - physicalPort
      type: object
      properties:
        location:
          $ref: "#/components/schemas/PortConfiguration_connection_aside_accessPoint_port_location"
        physicalPort:
          $ref: "#/components/schemas/PortConfiguration_connection_aside_accessPoint_port_physicalPort"
    PortConfiguration_connection_aside_accessPoint:
      required:
        - port
      type: object
      properties:
        port:
          $ref: "#/components/schemas/PortConfiguration_connection_aside_accessPoint_port"
    PortConfiguration_connection_aside:
      required:
        - accessPoint
      type: object
      properties:
        accessPoint:
          $ref: "#/components/schemas/PortConfiguration_connection_aside_accessPoint"
    PortConfiguration_connection:
      required:
        - aside
      type: object
      properties:
        aside:
          $ref: "#/components/schemas/PortConfiguration_connection_aside"
    RoutingProtocolConfiguration_routingProtocol:
      type: object
      properties:
        type:
          type: string
          example: BGP
          enum:
            - BGP
            - STATIC
            - DIRECT
        ipv4:
          $ref: "#/components/schemas/RoutingProtocolConfigurationIp"
        ipv6:
          $ref: "#/components/schemas/RoutingProtocolConfigurationIp"
    RoutingProtocolConfigurationIp_customerRoute:
      type: object
      properties:
        importPolicy:
          type: string
          example: PA
          enum:
            - PI
            - PA
    RoutingProtocolConfigurationIp_peering_peerSubnet:
      type: object
      properties:
        prefixLength:
          type: integer
          example: 30
        quantity:
          type: integer
    RoutingProtocolConfigurationIp_peering:
      type: object
      properties:
        vrrpEnabled:
          type: boolean
          example: true
        peerSubnet:
          $ref: "#/components/schemas/RoutingProtocolConfigurationIp_peering_peerSubnet"
    DedicatedBandwidthConfiguration_connection_aside_accessPoint_port_physicalPort:
      type: object
      properties:
        speed:
          type: integer
          description: physical port speed in Mbps
    DedicatedBandwidthConfiguration_connection_aside_accessPoint_port:
      type: object
      properties:
        physicalPortsQuantity:
          type: integer
          example: 2
        physicalPort:
          $ref: "#/components/schemas/DedicatedBandwidthConfiguration_connection_aside_accessPoint_port_physicalPort"
    DedicatedBandwidthConfiguration_connection_aside_accessPoint:
      type: object
      properties:
        port:
          $ref: "#/components/schemas/DedicatedBandwidthConfiguration_connection_aside_accessPoint_port"
    DedicatedBandwidthConfiguration_connection_aside:
      type: object
      properties:
        accessPoint:
          $ref: "#/components/schemas/DedicatedBandwidthConfiguration_connection_aside_accessPoint"
    DedicatedBandwidthConfiguration_connection:
      type: object
      properties:
        aside:
          $ref: "#/components/schemas/DedicatedBandwidthConfiguration_connection_aside"
    CustomerRouteConfiguration_routingProtocol:
      required:
        - type
      type: object
      properties:
        type:
          type: string
          enum:
            - BGP
            - STATIC
            - DIRECT
        ipv4:
          $ref: "#/components/schemas/CustomerRouteConfigurationRoutingProtocolIp"
        ipv6:
          $ref: "#/components/schemas/CustomerRouteConfigurationRoutingProtocolIp"
      description: One of properties ipv4 and ipv6 will be always present in routing protocol object.
    CustomerRouteConfigurationRoutingProtocolIp_customerRoute:
      type: object
      properties:
        importPolicy:
          type: string
          example: PA
          enum:
            - PI
            - PA
        prefixLength:
          type: integer
          example: 28
    CustomerRouteConfigurationRoutingProtocolIp_peering:
      type: object
      properties:
        vrrpEnabled:
          type: boolean
    DedicatedPortDefaultConfiguration_connection_aside_accessPoint_location:
      type: object
      properties:
        ibx:
          type: string
          example: WA1
    DedicatedPortDefaultConfiguration_connection_aside_accessPoint_port_physicalPort_interface:
      type: object
      properties:
        type:
          type: string
          example: 1G SMF
          enum:
            - 1G SMF
            - 10G SMF
            - 100G SMF
    DedicatedPortDefaultConfiguration_connection_aside_accessPoint_port_physicalPort:
      type: object
      properties:
        speed:
          type: integer
          description: in Mbps
          example: 1000
        interface:
          $ref: "#/components/schemas/DedicatedPortDefaultConfiguration_connection_aside_accessPoint_port_physicalPort_interface"
        demarcationPoint:
          $ref: "#/components/schemas/PortConfiguration_connection_aside_accessPoint_port_physicalPort_demarcationPoint"
    DedicatedPortDefaultConfiguration_connection_aside_accessPoint_port:
      type: object
      properties:
        physicalPortsQuantity:
          type: integer
          example: 1
        physicalPort:
          $ref: "#/components/schemas/DedicatedPortDefaultConfiguration_connection_aside_accessPoint_port_physicalPort"
    DedicatedPortDefaultConfiguration_connection_aside_accessPoint:
      type: object
      properties:
        location:
          $ref: "#/components/schemas/DedicatedPortDefaultConfiguration_connection_aside_accessPoint_location"
        port:
          $ref: "#/components/schemas/DedicatedPortDefaultConfiguration_connection_aside_accessPoint_port"
    DedicatedPortDefaultConfiguration_connection_aside:
      type: object
      properties:
        accessPoint:
          $ref: "#/components/schemas/DedicatedPortDefaultConfiguration_connection_aside_accessPoint"
    DedicatedPortDefaultConfiguration_connection:
      type: object
      properties:
        aside:
          $ref: "#/components/schemas/DedicatedPortDefaultConfiguration_connection_aside"
    DedicatedPortDefaultConfiguration_routingProtocol:
      type: object
      properties:
        type:
          type: string
          example: DIRECT
          enum:
            - BGP
            - STATIC
            - DIRECT
        ipv4:
          $ref: "#/components/schemas/DedicatedPortDefaultConfigurationRoutingProtocolIp"
        ipv6:
          $ref: "#/components/schemas/DedicatedPortDefaultConfigurationRoutingProtocolIp"
    DedicatedPortDefaultConfigurationRoutingProtocolIp_customerRoute:
      type: object
      properties:
        importPolicy:
          type: string
          example: PA
          enum:
            - PI
            - PA
        prefixLength:
          type: integer
          example: 29
    VirtualConnectionDefaultConfiguration_connection_aside_accessPoint_location:
      required:
        - metroCode
      type: object
      properties:
        metroCode:
          type: string
          example: WA
        ibx:
          pattern: ^[A-Z]{2,3}[1-9]?[0-9]{0,2}[a-zA-Z]?$
          type: string
          example: WA1
    VirtualConnectionDefaultConfiguration_connection_aside_accessPoint:
      required:
        - location
      type: object
      properties:
        location:
          $ref: "#/components/schemas/VirtualConnectionDefaultConfiguration_connection_aside_accessPoint_location"
    VirtualConnectionDefaultConfiguration_connection_aside:
      required:
        - accessPoint
      type: object
      properties:
        accessPoint:
          $ref: "#/components/schemas/VirtualConnectionDefaultConfiguration_connection_aside_accessPoint"
    VirtualConnectionDefaultConfiguration_connection:
      required:
        - aside
      type: object
      properties:
        aside:
          $ref: "#/components/schemas/VirtualConnectionDefaultConfiguration_connection_aside"
    VirtualConnectionDefaultConfiguration_routingProtocol:
      required:
        - ipv4
        - ipv6
        - type
      type: object
      properties:
        type:
          $ref: "#/components/schemas/ProductCatalogRoutingProtocolType"
        ipv4:
          $ref: "#/components/schemas/VirtualConnectionDefaultConfigurationRoutingProtocolIp"
        ipv6:
          $ref: "#/components/schemas/VirtualConnectionDefaultConfigurationRoutingProtocolIp"
    VirtualConnectionDefaultConfigurationRoutingProtocolIp_customerRoute:
      required:
        - importPolicy
        - prefixLength
      type: object
      properties:
        importPolicy:
          $ref: "#/components/schemas/ProductCatalogImportPolicy"
        prefixLength:
          type: integer
    PurchaseOrdersPage:
      required:
        - data
        - pagination
      type: object
      properties:
        pagination:
          $ref: "#/components/schemas/Pagination"
        data:
          type: array
          items:
            $ref: "#/components/schemas/PurchaseOrder"
    PurchaseOrderAccount:
      type: object
      properties:
        accountNumber:
          maxLength: 50
          pattern: ^[0-9]+$
          type: string
          description: Customer billing account number
          example: "123123"
    PurchaseOrder:
      required:
        - account
        - amount
        - categories
        - currency
        - draft
        - locations
        - number
        - type
      type: object
      properties:
        type:
          $ref: "#/components/schemas/PurchaseOrderType"
        number:
          type: string
          description: Purchase order number
          example: "10010"
        account:
          $ref: "#/components/schemas/PurchaseOrderAccount"
        categories:
          type: array
          items:
            type: string
            enum:
              - ALL_SERVICES
              - INTERCONNECTION
              - NETWORK
              - POWER
              - SPACE
              - SMART_HANDS
              - SERVICES
        locations:
          type: array
          items:
            $ref: "#/components/schemas/PurchaseOrder_locations"
        amount:
          type: number
          description: Amount
          format: double
          example: 10000.5
        startDate:
          type: string
          description: Start date in YYYY-MM-DD format
          format: date
        endDate:
          type: string
          description: End date in YYYY-MM-DD format
          format: date
        description:
          type: string
          description: Purchase order description
          example: Purchase order desc
        draft:
          type: boolean
          description: Is draft
          format: boolean
          example: false
        status:
          $ref: "#/components/schemas/PurchaseOrderStatus"
        currency:
          $ref: "#/components/schemas/CurrencyCode"
    PurchaseOrderType:
      type: string
      description: Purchase order type
      enum:
        - STANDARD_PURCHASE_ORDER
        - BLANKET_PURCHASE_ORDER
    PurchaseOrderStatus:
      type: string
      example: DRAFT
      enum:
        - DRAFT
        - ACTIVE
    PurchaseOrder_locations:
      type: object
      required:
        - ibx
      properties:
        ibx:
          type: string
          example: WA1
    CagesPage:
      required:
        - data
        - pagination
      type: object
      properties:
        pagination:
          $ref: "#/components/schemas/Pagination"
        data:
          type: array
          items:
            $ref: "#/components/schemas/Cage"
    CabinetsPage:
      required:
        - data
        - pagination
      type: object
      properties:
        pagination:
          $ref: "#/components/schemas/Pagination"
        data:
          type: array
          items:
            $ref: "#/components/schemas/Cabinet"
    PatchPanelsPage:
      required:
        - data
        - pagination
      type: object
      properties:
        pagination:
          $ref: "#/components/schemas/Pagination"
        data:
          type: array
          items:
            $ref: "#/components/schemas/PatchPanel"
    ConnectionServicesPage:
      required:
        - data
        - pagination
      type: object
      properties:
        pagination:
          $ref: "#/components/schemas/Pagination"
        data:
          type: array
          items:
            $ref: "#/components/schemas/ConnectionService"
    ConnectionService:
      required:
        - name
      type: object
      properties:
        name:
          type: string
          example: Connection Service name
        mediaTypes:
          type: array
          items:
            $ref: "#/components/schemas/MediaType"
    MediaType:
      required:
        - name
      type: object
      properties:
        name:
          type: string
          example: Media Type name
        connectorTypes:
          type: array
          items:
            $ref: "#/components/schemas/ConnectorType"
    ConnectorType:
      required:
        - name
        - optionalPorts
        - requiredPorts
      type: object
      properties:
        name:
          type: string
          example: Connector Type name
        requiredPorts:
          maximum: 2
          minimum: 1
          type: integer
          format: int32
          example: 1
        optionalPorts:
          maximum: 1
          minimum: 0
          type: integer
          format: int32
          example: 0
        locations:
          type: array
          items:
            $ref: "#/components/schemas/ConnectorTypeLocation"
    ConnectorTypeLocation:
      required:
        - ibx
      type: object
      properties:
        ibx:
          type: string
          example: CH2
    Cage:
      allOf:
        - $ref: "#/components/schemas/CageRef"
        - required:
            - account
            - cabinetsCount
            - location
            - number
          type: object
          properties:
            number:
              type: string
              example: Cage Number One
            cabinetsCount:
              type: integer
              example: 123
            location:
              $ref: "#/components/schemas/Location"
            account:
              $ref: "#/components/schemas/SecureCageAccount"
    Cabinet:
      allOf:
        - $ref: "#/components/schemas/CabinetRef"
        - required:
            - account
            - cage
            - location
            - number
            - patchPanelsCount
          type: object
          properties:
            number:
              type: string
              example: Cabinet Number One
            patchPanelsCount:
              type: integer
              example: 123
            cage:
              $ref: "#/components/schemas/CageRef"
            location:
              $ref: "#/components/schemas/Location"
            account:
              $ref: "#/components/schemas/SecureCageAccount"
    Location:
      required:
        - ibx
      type: object
      properties:
        ibx:
          type: string
          example: WA1
    SecureCageAccount:
      required:
        - accountNumber
      type: object
      properties:
        accountNumber:
          type: string
          example: "12345678"
    PatchPanel:
      required:
        - account
        - availablePorts
        - cabinet
        - cage
        - dedicatedMediaType
        - location
        - mediaTypes
        - number
        - ownedPorts
        - prewired
        - type
      type: object
      properties:
        number:
          type: string
          example: PP:0325:1175941
        customerRefNumber:
          type: string
          example: ME1:01:040310:0422:RU34:49-72
        type:
          type: string
          example: EQUINIX_PROVIDED
          enum:
            - EQUINIX_PROVIDED
            - CUSTOMER_PROVIDED
            - PREWIRE_PANEL_INFRASTRUCTURE
            - EQUINIX_INFRASTRUCTURE
        prewired:
          type: boolean
          example: true
        availablePortsCount:
          type: integer
          example: 4
        availablePorts:
          type: array
          example:
            - 2
            - 3
            - 4
            - 5
          items:
            type: integer
        ownedPortsCount:
          type: integer
          example: 1
        ownedPorts:
          type: array
          items:
            $ref: "#/components/schemas/PatchPanel_ownedPorts"
        mediaTypes:
          type: array
          example:
            - CAT3
            - CAT5e
            - CAT6
            - CAT6A
            - CAT6a
            - COAX
            - OS1
            - SINGLE_MODE_FIBER
          items:
            type: string
        dedicatedMediaType:
          type: string
          example: MIXED
        cage:
          $ref: "#/components/schemas/CageRef"
        cabinet:
          $ref: "#/components/schemas/CabinetRef"
        location:
          $ref: "#/components/schemas/Location"
        account:
          $ref: "#/components/schemas/SecureCageAccount"
    CageRef:
      required:
        - spaceId
      type: object
      properties:
        spaceId:
          type: string
          example: AT1:03:034720
    CabinetRef:
      required:
        - spaceId
      type: object
      properties:
        spaceId:
          type: string
          example: AT1:03:034720:0102
    PatchPanel_ownedPorts:
      required:
        - ownershipType
      type: object
      properties:
        number:
          type: integer
          example: 1
        ownershipType:
          type: string
          example: USED
          enum:
            - USED
            - RESERVED
        ownerType:
          type: string
          example: CROSS_CONNECT
          enum:
            - LOA_REQUEST
            - DIGITAL_LOA
            - CROSS_CONNECT
            - NETWORK_PORT
            - METRO_CONNECT
            - OTHER
        ownerUuid:
          type: number
    OrderChangeLog:
      required:
        - createdBy
        - createdByEmail
        - createdByFullName
        - createdDateTime
        - updatedBy
        - updatedByEmail
        - updatedByFullName
        - updatedDateTime
      type: object
      properties:
        createdBy:
          type: string
        createdByFullName:
          type: string
        createdByEmail:
          type: string
          format: email
        createdDateTime:
          type: string
          format: date-time
        updatedBy:
          type: string
        updatedByFullName:
          type: string
        updatedByEmail:
          type: string
          format: email
        updatedDateTime:
          type: string
          format: date-time
        deletedBy:
          type: string
        deletedByFullName:
          type: string
        deletedByEmail:
          type: string
          format: email
        deletedDateTime:
          type: string
          format: date-time
    Contact:
      allOf:
        - $ref: "#/components/schemas/EntityReference"
        - required:
            - registeredUser
            - type
          type: object
          properties:
            type:
              $ref: "#/components/schemas/ContactType"
            registeredUser:
              type: string
              description: |
                Identifies (e.g., userName) a registered user. If a registered user is specified, then firstName/lastName need not be provided
              example: "123232"
    ContactType:
      type: string
      enum:
        - NOTIFICATION
        - TECHNICAL
        - ORDERING
        - RESELLING
        - BILLING
    EntityReference:
      required:
        - href
      type: object
      properties:
        href:
          type: string
    Link:
      type: object
      allOf:
        - $ref: "#/components/schemas/EntityReference"
        - properties:
            rel:
              type: string
              description: self, info, update, delete, statistics, events
            method:
              type: string
            authenticate:
              type: boolean
              default: false
            contentType:
              type: string
              example: application/json
    OrderDetails:
      type: object
      allOf:
        - $ref: "#/components/schemas/Order"
        - required:
            - number
          type: object
          properties:
            number:
              type: string
    Order:
      allOf:
        - $ref: "#/components/schemas/UniqueEntityReference"
        - type: object
          properties:
            type:
              $ref: "#/components/schemas/OrderType"
            contacts:
              type: array
              items:
                $ref: "#/components/schemas/Contact"
            draft:
              type: boolean
              default: false
            links:
              type: array
              items:
                $ref: "#/components/schemas/Link"
            purchaseOrder:
              $ref: "#/components/schemas/OrderPurchaseOrder"
            referenceNumber:
              type: string
              example: "239384723943"
            signature:
              $ref: "#/components/schemas/OrderSignature"
            state:
              $ref: "#/components/schemas/OrderState"
            changeLog:
              $ref: "#/components/schemas/OrderChangeLog"
            tags:
              type: array
              items:
                type: string
    OrderType:
      type: string
      example: AMENDMENT
      enum:
        - NEW
        - AMENDMENT
    OrderPurchaseOrder:
      allOf:
        - $ref: "#/components/schemas/EntityReference"
        - required:
            - number
          type: object
          properties:
            number:
              type: string
              example: "92374933"
            type:
              type: string
              enum:
                - STANDARD_PURCHASE_ORDER
                - BLANKET_PURCHASE_ORDER
    OrderSignature:
      required:
        - signatory
      type: object
      properties:
        signatory:
          type: string
          example: SELF
          enum:
            - SELF
            - DELEGATE
            - SUPPORT
        delegate:
          $ref: "#/components/schemas/OrderSignatureDelegate"
    OrderSignatureDelegate:
      required:
        - email
      type: object
      properties:
        firstName:
          type: string
        lastName:
          type: string
        email:
          type: string
          description: |
            Email address that the signature request should be sent to in case of DELEGATE signature
          format: email
          example: cto@business.com
    OrderState:
      type: string
      enum:
        - DRAFT
        - PROCESSING
        - AWAITING_SIGNATURE
        - SIGNATURE_REJECTED
        - SIGNATURE_EXPIRED
        - COMPLETED
        - FAILED
    UniqueEntityReference:
      allOf:
        - $ref: "#/components/schemas/EntityReference"
        - required:
            - uuid
          type: object
          properties:
            uuid:
              type: string
              format: uuid
    ServiceBase:
      allOf:
        - $ref: "#/components/schemas/Taggable"
        - required:
            - bandwidth
            - name
            - type
            - useCase
          type: object
          properties:
            type:
              $ref: "#/components/schemas/ServiceType"
            useCase:
              $ref: "#/components/schemas/UseCaseType"
            name:
              type: string
              description: |
                Name of the service instance
              example: WebServers
            description:
              type: string
              description: |
                Description of the service instance
              example: |
                Customer facing web servers
            bandwidth:
              type: integer
              description: |
                Service bandwidth in Mbps
              example: 10000
            minBandwidthCommit:
              minimum: 0
              type: integer
              description: |
                Service min bandwidth commit in Mbps
              example: 500
    ServiceRequest:
      allOf:
        - $ref: "#/components/schemas/ServiceBase"
        - required:
            - account
            - connections
            - routingProtocols
          type: object
          properties:
            billing:
              $ref: "#/components/schemas/BillingType"
            connections:
              maxItems: 2
              minItems: 1
              type: array
              description: |
                Collection of service connections
              items:
                $ref: "#/components/schemas/Connection"
            draft:
              type: boolean
              default: false
            routingProtocols:
              maxItems: 1
              minItems: 1
              type: array
              description: |
                Collection of routing protocols
              items:
                $ref: "#/components/schemas/RoutingProtocolRequest"
            order:
              $ref: "#/components/schemas/ServiceOrderRequest"
            account:
              $ref: "#/components/schemas/CustomerBillingAccount"
            project:
              $ref: "#/components/schemas/Project"
    Service:
      required:
        - uuid
        - billing
        - draft
        - state
      allOf:
        - $ref: "#/components/schemas/ServiceBase"
        - type: object
          properties:
            uuid:
              type: string
              format: uuid
            account:
              $ref: "#/components/schemas/CustomerAccountReference"
            billing:
              $ref: "#/components/schemas/BillingType"
            changeLog:
              $ref: "#/components/schemas/ServiceChangeLog"
            draft:
              type: boolean
              default: false
            links:
              type: array
              items:
                $ref: "#/components/schemas/Link"
            order:
              $ref: "#/components/schemas/ServiceOrderReference"
            project:
              $ref: "#/components/schemas/ProjectReference"
            state:
              $ref: "#/components/schemas/ServiceState"
    ServiceType:
      type: string
      description: |
        SINGLE_PORT - Internet Access Service supported with one Connection originating from one AccessPoint on the ASide
        DUAL_PORT - Internet Access Service supported with two redundant Connections originating from two redundant AccessPoints on the Aside and terminating to two redundant Internet Routers on the ZSide
      example: SINGLE_PORT
      enum:
        - SINGLE_PORT
        - DUAL_PORT
    UseCaseType:
      type: string
      description: |
        Service use case
      example: MAIN
      enum:
        - MAIN
        - BACKUP
        - MANAGEMENT_ACCESS
    BillingType:
      type: string
      description: |
        Type of billing
      default: FIXED
      enum:
        - FIXED
        - USAGE_BASED
        - BURST_BASED
    ServiceState:
      type: string
      enum:
        - DRAFT
        - PENDING
        - PROVISIONING
        - ACTIVE
        - INACTIVE
        - DEPROVISIONING
        - DEPROVISIONED
        - FAILED
    ServiceChangeLog:
      required:
        - createdBy
        - createdByEmail
        - createdByFullName
        - createdDateTime
        - updatedBy
        - updatedByEmail
        - updatedByFullName
        - updatedDateTime
      type: object
      properties:
        createdBy:
          type: string
        createdByFullName:
          type: string
        createdByEmail:
          type: string
          format: email
        createdDateTime:
          type: string
          format: date-time
        updatedBy:
          type: string
        updatedByFullName:
          type: string
        updatedByEmail:
          type: string
          format: email
        updatedDateTime:
          type: string
          format: date-time
        deletedBy:
          type: string
        deletedByFullName:
          type: string
        deletedByEmail:
          type: string
          format: email
        deletedDateTime:
          type: string
          format: date-time
    Taggable:
      type: object
      properties:
        tags:
          type: array
          items:
            type: string
    RoutingProtocolRequest:
      allOf:
        - $ref: "#/components/schemas/Taggable"
        - required:
            - type
          type: object
          properties:
            type:
              $ref: "#/components/schemas/RoutingProtocolType"
            name:
              type: string
              description: |
                Name of the routing protocol instance.
              example: WebServers Routes
            description:
              type: string
              description: |
                Description of the routing protocol instance
              example: |
                Routes to customer facing web servers
          discriminator:
            propertyName: type
            mapping:
              DIRECT: "#/components/schemas/DirectRoutingProtocolRequest"
              STATIC: "#/components/schemas/StaticRoutingProtocolRequest"
              BGP: "#/components/schemas/BgpRoutingProtocolRequest"
    RoutingProtocolIpv4Request:
      required:
        - customerRoutes
      type: object
      properties:
        customerRoutes:
          minItems: 1
          type: array
          description: |
            Collection of customer routes of IP Version 4 (IPv4)
          items:
            $ref: "#/components/schemas/CustomerRouteIpv4Request"
    CustomerRouteIpv4Request:
      type: object
      properties:
        ipBlock:
          $ref: "#/components/schemas/IpBlockIpv4Request"
        prefix:
          pattern: ^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(?:/[0-2]*\d{1}|/3[0-2]){1}$
          type: string
          description: |
            Subnet prefix
          example: 198.51.100.0/24
    RoutingProtocolIpv6Request:
      required:
        - customerRoutes
      type: object
      properties:
        customerRoutes:
          minItems: 1
          type: array
          description: |
            Collection of customer routes of IP Version 6 (IPv6)
          items:
            $ref: "#/components/schemas/CustomerRouteIpv6Request"
    CustomerRouteIpv6Request:
      type: object
      properties:
        ipBlock:
          $ref: "#/components/schemas/IpBlockIpv6Request"
        prefix:
          pattern: ^s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:)))(%.+)?s*(\/([0-9]|[1-9][0-9]|1[0-1][0-9]|12[0-8]))?$
          type: string
          description: |
            Subnet prefix
          example: 2001:db8::/64
    DirectRoutingProtocolIpv4Request:
      allOf:
        - $ref: "#/components/schemas/RoutingProtocolIpv4Request"
        - type: object
          properties:
            peerings:
              maxItems: 1
              minItems: 0
              type: array
              items:
                $ref: "#/components/schemas/DirectPeeringIpv4Request"
    DirectPeeringIpv4Request:
      type: object
      properties:
        equinixPeerIps:
          type: array
          description: |
            Peering IP addresses in Version 4 (IPv4)
          items:
            pattern: ^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
            type: string
        equinixVRRPIp:
          pattern: ^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
          type: string
          description: |
            Virtual router group IP addresses in Version 4 (IPv4)
          example: 18.15.15.18
    DirectRoutingProtocolIpv6Request:
      allOf:
        - $ref: "#/components/schemas/RoutingProtocolIpv6Request"
        - type: object
          properties:
            peerings:
              maxItems: 1
              minItems: 0
              type: array
              items:
                $ref: "#/components/schemas/DirectPeeringIpv6Request"
    DirectPeeringIpv6Request:
      type: object
      properties:
        equinixPeerIps:
          type: array
          description: |
            Peering IP addresses in Version 6 (IPv6)
          items:
            pattern: ^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$
            type: string
        equinixVRRPIp:
          pattern: ^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$
          type: string
          description: |
            Virtual router group IP addresses in Version 6 (IPv6)
          example: 1002:0db8:85a3:0000:0000:8a2e:0370:6223
    DirectRoutingProtocolRequest:
      allOf:
        - $ref: "#/components/schemas/RoutingProtocolRequest"
        - type: object
          properties:
            ipv4:
              $ref: "#/components/schemas/DirectRoutingProtocolIpv4Request"
            ipv6:
              $ref: "#/components/schemas/DirectRoutingProtocolIpv6Request"
          description: |
            Direct routing protocol
    StaticRoutingProtocolRequest:
      allOf:
        - $ref: "#/components/schemas/RoutingProtocolRequest"
        - type: object
          properties:
            ipv4:
              $ref: "#/components/schemas/RoutingProtocolIpv4Request"
            ipv6:
              $ref: "#/components/schemas/RoutingProtocolIpv6Request"
          description: |
            Static routing protocol
    BgpRoutingProtocolRequest:
      allOf:
        - $ref: "#/components/schemas/RoutingProtocolRequest"
        - required:
            - exportPolicy
          type: object
          properties:
            customerAsnRange:
              type: string
              description: Customer Autonomous System Number range
              enum:
                - BITS_16
                - BITS_32
            customerAsn:
              type: integer
              description: |
                Customer Autonomous System Number. The eligible ASN range is: 1 - 64495 or 65536 - 4199999999.
              format: int64
              example: 16220
            bgpAuthKey:
              type: string
              description: |
                BGP authentication key
              example: SecretKey
            exportPolicy:
              type: string
              description: |
                Denotes which routes should be advertised to the internet
              example: FULL
              enum:
                - FULL
                - DEFAULT
                - FULL_DEFAULT
                - PARTIAL
            ipv4:
              $ref: "#/components/schemas/RoutingProtocolIpv4Request"
            ipv6:
              $ref: "#/components/schemas/RoutingProtocolIpv6Request"
          description: |
            BGP routing protocol
    Connection:
      allOf:
        - $ref: "#/components/schemas/Taggable"
        - required:
            - aSide
            - type
          type: object
          properties:
            type:
              $ref: "#/components/schemas/ConnectionType"
            name:
              type: string
              description: |
                Connection name
              example: MainInternetAccess
            description:
              type: string
              description: |
                Connection name
              example: MainInternetAccess
            aSide:
              $ref: "#/components/schemas/ConnectionASide"
    ConnectionASide:
      required:
        - accessPoint
      type: object
      properties:
        accessPoint:
          $ref: "#/components/schemas/AccessPoint"
    AccessPoint:
      required:
        - type
      type: object
      properties:
        type:
          $ref: "#/components/schemas/AccessPointType"
      description: Access point object
      discriminator:
        propertyName: type
        mapping:
          COLO: "#/components/schemas/ColoAccessPoint"
          VD: "#/components/schemas/VirtualDeviceAccessPoint"
    ColoAccessPoint:
      allOf:
        - $ref: "#/components/schemas/AccessPoint"
        - required:
            - port
          type: object
          properties:
            port:
              $ref: "#/components/schemas/Port"
            linkProtocol:
              $ref: "#/components/schemas/PortLinkProtocol"
    VirtualDeviceAccessPoint:
      allOf:
        - $ref: "#/components/schemas/AccessPoint"
        - required:
            - interface
            - virtualDevice
          type: object
          properties:
            virtualDevice:
              $ref: "#/components/schemas/VirtualDevice"
            interface:
              $ref: "#/components/schemas/DeviceInterface"
    VirtualDevice:
      required:
        - uuid
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        type:
          type: string
          enum:
            - EDGE
    DeviceInterface:
      required:
        - id
        - type
      type: object
      properties:
        id:
          type: string
        type:
          type: string
          enum:
            - CLOUD
            - NETWORK
    PortLinkProtocolType:
      type: string
      description: |
        Link protocol type
      example: DOT1Q
      enum:
        - DOT1Q
        - QINQ
    PortLinkProtocol:
      required:
        - type
      type: object
      properties:
        type:
          $ref: "#/components/schemas/PortLinkProtocolType"
      description: Linking protocol
      discriminator:
        propertyName: type
        mapping:
          DOT1Q: "#/components/schemas/Dot1QLinkProtocol"
          QINQ: "#/components/schemas/QinQLinkProtocol"
    Dot1QLinkProtocol:
      allOf:
        - $ref: "#/components/schemas/PortLinkProtocol"
        - required:
            - vlanTag
          type: object
          properties:
            vlanTag:
              maximum: 4094
              minimum: 1
              type: integer
              description: |
                VLAN Tag number for DOT1Q link protocol type
              example: 2
    QinQLinkProtocol:
      allOf:
        - $ref: "#/components/schemas/PortLinkProtocol"
        - required:
            - vlanCTag
            - vlanSTag
          type: object
          properties:
            vlanCTag:
              maximum: 4094
              minimum: 1
              type: integer
              description: |
                VLAN C-Tag number for QINQ link protocol type
              example: 2
            vlanSTag:
              maximum: 4094
              minimum: 1
              type: integer
              description: |
                VLAN S-Tag number for QINQ link protocol type
              example: 2
    PortType:
      type: string
      enum:
        - IA_PORT
        - XF_PORT
    Port:
      allOf:
        - $ref: "#/components/schemas/Taggable"
        - required:
            - type
          type: object
          properties:
            type:
              $ref: "#/components/schemas/PortType"
            uuid:
              type: string
              format: uuid
            name:
              type: string
              description: |
                Name of the port provided by the client
              example: DC9-IA-PORT1
            description:
              type: string
              description: |
                Description of the port provided by the client
              example: |
                Internet Access Dedicated Port
            bandwidth:
              minimum: 0
              type: integer
              description: |
                Entity bandwidth in Mbps
              example: 10000
            encapsulation:
              $ref: "#/components/schemas/Port_encapsulation"
            location:
              $ref: "#/components/schemas/PortLocation"
            lag:
              $ref: "#/components/schemas/PortLag"
            connectivitySource:
              $ref: "#/components/schemas/PortConnectivitySource"
            physicalPorts:
              minItems: 1
              type: array
              description: |
                Collection of the Physical Ports
              items:
                $ref: "#/components/schemas/PhysicalPort"
    PhysicalPort:
      required:
        - demarcationPoint
        - speed
        - type
      type: object
      properties:
        type:
          type: string
          description: |
            Type of the Physical Port
          example: IA_PHYSICAL_PORT
          enum:
            - XF_PHYSICAL_PORT
            - IA_PHYSICAL_PORT
        speed:
          minimum: 0
          type: integer
          description: |
            Entity bandwidth in Mbps
          example: 10000
        demarcationPoint:
          $ref: "#/components/schemas/DemarcationPoint"
    PortLag:
      required:
        - enabled
      type: object
      properties:
        enabled:
          type: boolean
          description: |
            Flag indicating whether the Link Aggregation is enabled on the port or not
          example: true
        name:
          type: string
      description: Link aggregation group
    DemarcationPoint:
      required:
        - cabinetSpaceId
        - cageSpaceId
        - connectionService
        - connectorType
        - mediaType
        - patchPanel
        - patchPanelPortA
      type: object
      properties:
        connectionService:
          type: string
          description: |
            Connection Service
          example: Single-Mode Fiber
        mediaType:
          type: string
          description: "Media Type \n"
          example: Single-Mode Fiber
        connectorType:
          type: string
          description: |
            Type of the connector
          example: SC
        crossConnectId:
          type: string
        cageSpaceId:
          type: string
        cabinetSpaceId:
          type: string
        patchPanel:
          type: string
          description: Port patch panel
          example: PP:171:52652
        patchPanelPortA:
          type: integer
          description: Port patch panel port A
          example: 1
        patchPanelPortB:
          type: integer
          description: Port patch panel port B
          example: 2
      description: |
        Port physical connection (for physical ports only)
    PortConnectivitySource:
      required:
        - type
      type: object
      properties:
        type:
          type: string
          description: |
            Type of Port Connectivity Source, where COLO corresponds to the port owned by the Customer
          example: COLO
          enum:
            - COLO
            - OTHER_CUSTOMER
            - BMMR_EQUINIX_MANAGED
            - BMMR_CUSTOMER_MANAGED
    PortLocation:
      type: object
      properties:
        metroCode:
          pattern: ^[A-Z]{2}$
          type: string
          description: |
            Metro code
          example: WA
        ibx:
          pattern: ^[A-Z]{2}[1-9][0-9]?$
          type: string
          description: |
            IBX code
          example: WA1
    IpBlock:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        addressingPlans:
          type: array
          description: |
            Collection of addressing plans
          items:
            $ref: "#/components/schemas/IpBlockAddressingPlans"
        questions:
          type: array
          description: |
            Connection of questions
          items:
            $ref: "#/components/schemas/IpBlockQuestions"
    IpBlockIpv4Request:
      allOf:
        - $ref: "#/components/schemas/IpBlock"
        - required:
            - prefixLength
          type: object
          properties:
            prefixLength:
              maximum: 30
              minimum: 24
              type: integer
              description: Length of the IP block, number after the / (slash)
    IpBlockIpv6Request:
      allOf:
        - $ref: "#/components/schemas/IpBlock"
        - required:
            - prefixLength
          type: object
          properties:
            prefixLength:
              maximum: 126
              minimum: 48
              type: integer
              description: |
                Length of the IP block, number after the / (slash)
    IpBlockAddressingPlans:
      required:
        - afterThreeMonths
        - immediate
        - purpose
        - size
      type: object
      properties:
        size:
          minimum: 1
          type: integer
        purpose:
          type: string
          description: |
            The purpose of IP Subnet
          example: |
            Provide internet services to the customers
        immediate:
          type: integer
          description: |
            Number of ip addresses to be used immediatelly
          example: 1
        afterThreeMonths:
          minimum: 0
          type: integer
          description: |
            Number of ip addresses to be used after 3 months
          example: 1
    IpBlockQuestions:
      required:
        - answer
        - type
      type: object
      properties:
        type:
          type: string
          description: |
            Type of question relevant to requesting public IP Subnet
          example: PRIVATE_SPACE_CONSIDERED
          enum:
            - PRIVATE_SPACE_CONSIDERED
            - REFUSED_PREVIOUSLY
            - RETURNING_ADDRESS_SPACE
        answer:
          type: string
          enum:
            - YES
            - NO
    ServiceOrderType:
      type: string
      enum:
        - NEW
        - AMENDMENT
    ServiceOrderReference:
      required:
        - type
      allOf:
        - $ref: "#/components/schemas/UniqueEntityReference"
        - properties:
            type:
              $ref: "#/components/schemas/ServiceOrderType"
    ServiceOrderRequest:
      allOf:
        - $ref: "#/components/schemas/Taggable"
        - type: object
          properties:
            contacts:
              type: array
              items:
                $ref: "#/components/schemas/ServiceOrderContact"
            draft:
              type: boolean
              default: false
            purchaseOrder:
              $ref: "#/components/schemas/ServicePurchaseOrder"
            referenceNumber:
              type: string
              example: "239384723943"
            signature:
              $ref: "#/components/schemas/OrderSignatureRequest"
    ServicePurchaseOrder:
      required:
        - number
      type: object
      properties:
        type:
          $ref: "#/components/schemas/PurchaseOrderType"
        number:
          type: string
          description: |
            Purchase order number
          example: "129105284100"
        amount:
          minimum: 1
          type: number
          description: Amount
          example: 100.5
        startDate:
          type: string
          description: Start date in YYYY-MM-DD format
          format: date
        endDate:
          type: string
          description: End date in YYYY-MM-DD format
          format: date
        description:
          maxLength: 4096
          type: string
          description: Purchase order description
          example: example purchase order description
        attachment:
          $ref: "#/components/schemas/ServicePurchaseOrderAttachment"
    ServicePurchaseOrderAttachment:
      type: object
      properties:
        attachmentId:
          type: string
          format: uuid
    OrderSignatureRequest:
      required:
        - signatory
      type: object
      properties:
        signatory:
          type: string
          example: SELF
          enum:
            - SELF
            - DELEGATE
            - SUPPORT
        delegate:
          $ref: "#/components/schemas/OrderSignatureDelegateRequest"
    OrderSignatureDelegateRequest:
      required:
        - email
      type: object
      properties:
        firstName:
          type: string
        lastName:
          type: string
        email:
          type: string
          description: |
            Email address that the signature request should be sent to in case of DELEGATE signature
          format: email
          example: cto@business.com
    CustomerAccountReference:
      $ref: "#/components/schemas/CustomerBillingAccount"
    CustomerBillingAccount:
      required:
        - accountNumber
      type: object
      properties:
        accountNumber:
          type: string
          description: |
            Billing account number
          example: 2-57689234
    Project:
      required:
        - projectId
      type: object
      properties:
        projectId:
          type: string
          description: |
            Customer Resource Hierarchy Project identifier
          example: "7348"
    ProjectReference:
      allOf:
        - $ref: "#/components/schemas/EntityReference"
        - $ref: "#/components/schemas/Project"
    ContactRequest:
      required:
        - type
      type: object
      properties:
        type:
          $ref: "#/components/schemas/ContactType"
        firstName:
          type: string
        lastName:
          type: string
        timezone:
          type: string
        notes:
          type: string
        availability:
          type: string
          enum:
            - WORK_HOURS
            - ANYTIME
            - CUSTOMER_BUSINESS_HOURS
            - NOT_AVAILABLE
        details:
          type: array
          items:
            $ref: "#/components/schemas/ContactRequest_details"
    ServiceOrderContact:
      allOf:
        - $ref: "#/components/schemas/ContactRequest"
        - type: object
          properties:
            registeredUser:
              type: string
              description: |
                Identifies (e.g., userName) a registered user. If a registered user is specified, then firstName/lastName need not be provided
              example: "123232"
    Port_encapsulation:
      type: object
      properties:
        type:
          type: string
          default: UNTAGGED
          enum:
            - DOT1Q
            - QINQ
            - UNTAGGED
        tagProtocolId:
          type: string
    ContactRequest_details:
      type: object
      properties:
        type:
          type: string
          enum:
            - EMAIL
            - PHONE
            - MOBILE
            - SECONDARY_EMAIL
        value:
          type: string
        notes:
          type: string
    SearchRequest:
      properties:
        filter:
          $ref: "#/components/schemas/Filter"
    Filter:
      type: object
      properties:
        and:
          type: array
          items:
            $ref: "#/components/schemas/AndQuery"
    AndQuery:
      required:
        - operator
        - property
        - values
      type: object
      properties:
        property:
          type: string
        operator:
          type: string
          enum:
            - =
        values:
          type: array
          items:
            type: string
    SearchResponse:
      required:
        - data
        - pagination
        - sort
      properties:
        pagination:
          $ref: "#/components/schemas/Pagination"
        sort:
          type: array
          items:
            $ref: "#/components/schemas/Sort"
        data:
          type: array
          items:
            $ref: "#/components/schemas/ServiceReadModel"
    Errors:
      type: array
      description: Error list
      readOnly: true
      items:
        $ref: "#/components/schemas/ErrorItem"
    ServiceDetailsResponse:
      required:
        - account
        - bandwidth
        - billing
        - change
        - changeLog
        - connections
        - draft
        - href
        - links
        - name
        - order
        - routingProtocols
        - state
        - type
        - useCase
        - uuid
      type: object
      properties:
        href:
          type: string
          description: Internet access URI
          format: uri
          example: https://api.equinix.com/internetAccess/v1/services/2a4fb415-5a7f-436f-bae6-02f5e403deec
        uuid:
          type: string
          description: Equinix-assigned internet access identifier
          format: uuid
          example: df043001-bf0a-446b-a48f-bcdcca68a9f3
        type:
          $ref: "#/components/schemas/ServiceType"
        name:
          type: string
          description: |
            Name of the service
            This name should only contain spaces, the characters "_", "-", letters or numbers. The name cannot
            start or end with a "-". This name can have only maximum of 24 characters
          example: Internet Access
        description:
          type: string
          description: Description of the service
          example: Internet access service
        bandwidth:
          minimum: 1000
          type: integer
          description: Bandwidth of the service in Mbps
          format: int64
          example: 1000
        billing:
          $ref: "#/components/schemas/ServiceBilling"
        state:
          $ref: "#/components/schemas/ServiceState"
        draft:
          type: boolean
          description: Describes if the service is a draft
          example: false
        useCase:
          $ref: "#/components/schemas/ServiceUseCase"
        change:
          $ref: "#/components/schemas/Change"
        changeLog:
          $ref: "#/components/schemas/ChangeLog"
        connections:
          type: array
          items:
            $ref: "#/components/schemas/ConnectionReadModel"
        routingProtocols:
          type: array
          items:
            $ref: "#/components/schemas/RoutingProtocolReadModel"
        account:
          $ref: "#/components/schemas/Account"
        project:
          $ref: "#/components/schemas/ProjectReadModel"
        order:
          $ref: "#/components/schemas/OrderReadModel"
        tags:
          type: array
          example:
            - tag1
            - tag2
            - tag3
          items:
            type: string
        links:
          type: array
          items:
            $ref: "#/components/schemas/Link"
    ConnectionReadModel:
      required:
        - aSide
        - bandwidth
        - changeLog
        - links
        - name
        - type
      type: object
      properties:
        href:
          $ref: "#/components/schemas/ConnectionHref"
        uuid:
          $ref: "#/components/schemas/ConnectionUuid"
        type:
          $ref: "#/components/schemas/ConnectionType"
        name:
          type: string
          description: Name of the connection
          example: Primary Connection LD1
        description:
          type: string
          description: Description of the connection
          example: Primary connection in LD1 location
        changeLog:
          $ref: "#/components/schemas/ChangeLog"
        bandwidth:
          minimum: 1000
          type: integer
          description: Bandwidth of the Connection in Mbps
          format: int64
          example: 1000
        redundancy:
          $ref: "#/components/schemas/Redundancy"
        aSide:
          $ref: "#/components/schemas/ASide"
        tags:
          type: array
          example:
            - tag1
            - tag2
            - tag3
          items:
            type: string
        links:
          type: array
          items:
            $ref: "#/components/schemas/Link"
    ConnectionHref:
      type: string
      description: Connection URI
      format: URI
      example: https://api.equinix.com/internetAccess/v1/services/df043001-bf0a-446b-a48f-bcdcca68a9f3/connections/9b8c5042-b553-4d5e-a2ac-c73bf6d4fd81
    ConnectionUuid:
      type: string
      format: uuid
      example: 9b8c5042-b553-4d5e-a2ac-c73bf6d4fd81
    ConnectionInternalAdditionalFields:
      required:
        - networkInterface
      properties:
        networkInterface:
          $ref: "#/components/schemas/NetworkInterface"
    Sort:
      required:
        - direction
        - property
      type: object
      properties:
        direction:
          type: string
          description: direction of sorting.
          example: ASC
          default: ASC
          enum:
            - ASC
            - DESC
        property:
          type: string
          description: property used for sorting
          example: /name
    ServiceReadModel:
      required:
        - account
        - bandwidth
        - billing
        - changeLog
        - connections
        - draft
        - href
        - links
        - name
        - project
        - routingProtocols
        - state
        - type
        - useCase
        - uuid
      type: object
      properties:
        href:
          type: string
          description: Internet access URI
          format: uri
          example: https://api.equinix.com/internetAccess/v1/services/2a4fb415-5a7f-436f-bae6-02f5e403deec
        uuid:
          type: string
          description: Equinix-assigned internet access identifier
          format: uuid
          example: df043001-bf0a-446b-a48f-bcdcca68a9f3
        type:
          $ref: "#/components/schemas/ServiceType"
        name:
          type: string
          description: |
            Name of the service
            This name should only contain spaces, the characters "_", "-", letters or numbers. The name cannot
            start or end with a "-". This name can have only maximum of 24 characters
          example: Internet Access
        description:
          type: string
          description: Description of the service
          example: Internet access service
        bandwidth:
          minimum: 1000
          type: integer
          description: Bandwidth of the service in Mbps
          format: int64
          example: 1000
        billing:
          $ref: "#/components/schemas/ServiceBilling"
        state:
          $ref: "#/components/schemas/ServiceState"
        draft:
          type: boolean
          description: Describes if the service is a draft
          example: false
        useCase:
          $ref: "#/components/schemas/ServiceUseCase"
        change:
          $ref: "#/components/schemas/Change"
        changeLog:
          $ref: "#/components/schemas/ChangeLog"
        connections:
          minItems: 1
          type: array
          items:
            $ref: "#/components/schemas/ConnectionReadModel"
        routingProtocols:
          minItems: 1
          type: array
          items:
            $ref: "#/components/schemas/RoutingProtocolReadModel"
        account:
          $ref: "#/components/schemas/Account"
        project:
          $ref: "#/components/schemas/ProjectReadModel"
        order:
          $ref: "#/components/schemas/OrderReadModel"
        tags:
          type: array
          example:
            - tag1
            - tag2
            - tag3
          items:
            type: string
        links:
          type: array
          items:
            $ref: "#/components/schemas/Link"
    ErrorItem:
      required:
        - errorCode
        - errorMessage
      type: object
      properties:
        errorCode:
          pattern: ^EQ-\d{7}$
          type: string
          description: Error code
          example: EQ-7108000
        errorMessage:
          type: string
          description: Error message
          example: Unknown error occurred in Internet Access
        details:
          type: string
          description: Error details
          example: Unknown error occurred in Internet Access
        correlationId:
          type: string
          description: Correlation ID identyfying the request
          example: 4e7b5042-b553-4d5e-a2ac-c73bf6d4ee27
        help:
          type: string
          description: Link to the help information
          format: uri
          example: https://developer.equinix.com/faq
        additionalInfo:
          type: array
          description: Collection of additional information
          items:
            $ref: "#/components/schemas/AdditionalInfo"
    ServiceBilling:
      type: string
      description: Billing type of service
      example: FIXED
      enum:
        - FIXED
        - USAGE_BASED
        - BURST_BASED
    ServiceUseCase:
      type: string
      description: use case of the service
      example: MAIN
      enum:
        - MAIN
        - BACKUP
        - MANAGEMENT_ACCESS
    Change:
      required:
        - href
        - type
        - uuid
      type: object
      properties:
        href:
          type: string
        uuid:
          type: string
          format: uuid
        type:
          $ref: "#/components/schemas/ChangeType"
    ChangeType:
      type: string
      description: Change Type
      enum:
        - SERVICE_CREATION
        - SERVICE_UPDATE
        - SERVICE_DELETION
    ChangeLog:
      required:
        - createdBy
        - createdByEmail
        - createdByFullName
        - createdDateTime
        - updatedBy
        - updatedByEmail
        - updatedByFullName
        - updatedDateTime
      type: object
      properties:
        createdBy:
          type: string
          description: Account number of the account used for object creation
          example: "1232"
        createdByFullName:
          type: string
          description: Full name of the account used for object creation
          example: John Doe
        createdByEmail:
          type: string
          description: E-mail of the account used for object creation
          format: email
          example: john.doe@company.com
        createdDateTime:
          type: string
          description: Date and time of object creation
          format: date-time
        updatedBy:
          type: string
          description: Account number of the account that updated the object last time
          example: "1234"
        updatedByFullName:
          type: string
          description: Full name of the account that updated the object last time
          example: Ryan Einstein
        updatedByEmail:
          type: string
          description: E-mail of the account that updated the object last time
          format: email
          example: ryan.einstein@company.com
        updatedDateTime:
          type: string
          description: Date and time of the account that updated the object last time
          format: date-time
        deletedBy:
          type: string
          description: Account number of the account that updated the object last time
          example: "1234"
        deletedByFullName:
          type: string
          description: Full name of the account that updated the object last time
          example: Ryan Einstein
        deletedByEmail:
          type: string
          description: E-mail of the account that updated the object last time
          format: email
          example: ryan.einstein@company.com
        deletedDateTime:
          type: string
          description: Date and time of the account that updated the object last time
          format: date-time
    RoutingProtocolReadModel:
      required:
        - changeLog
        - links
        - name
        - type
      type: object
      properties:
        href:
          type: string
          description: Routing protocol URI
          format: URI
          example: https://api.equinix.com/internetAccess/v1/services/df043001-bf0a-446b-a48f-bcdcca68a9f3/routingProtocols/9b8c5042-b553-4d5e-a2ac-c73bf6d4fd81
        uuid:
          type: string
          description: Routing protocol identifier
          format: uuid
          example: 9b8c5042-b553-4d5e-a2ac-c73bf6d4fd81
        type:
          $ref: "#/components/schemas/RoutingProtocolType"
        name:
          type: string
          description: Name of the routing protocol instance.
          example: WebServers Routes
        description:
          type: string
          description: Description of the routing protocol instance
          example: Routes to customer facing web servers
        ipv4:
          $ref: "#/components/schemas/RoutingProtocolIpv4"
        ipv6:
          $ref: "#/components/schemas/RoutingProtocolIpv6"
        changeLog:
          $ref: "#/components/schemas/ChangeLog"
        tags:
          type: array
          example:
            - tag1
            - tag2
            - tag3
          items:
            type: string
        links:
          type: array
          items:
            $ref: "#/components/schemas/Link"
      discriminator:
        propertyName: type
        mapping:
          DIRECT: "#/components/schemas/RoutingProtocolDirect"
          STATIC: "#/components/schemas/RoutingProtocolStatic"
          BGP: "#/components/schemas/RoutingProtocolBgp"
    RoutingProtocolDirect:
      allOf:
        - $ref: "#/components/schemas/RoutingProtocolReadModel"
        - $ref: "#/components/schemas/RoutingProtocolDirectAdditionalFields"
    RoutingProtocolStatic:
      allOf:
        - $ref: "#/components/schemas/RoutingProtocolReadModel"
        - $ref: "#/components/schemas/RoutingProtocolStaticAdditionalFields"
    RoutingProtocolBgp:
      allOf:
        - $ref: "#/components/schemas/RoutingProtocolReadModel"
        - $ref: "#/components/schemas/RoutingProtocolBgpAdditionalFields"
    Account:
      required:
        - accountName
        - accountNumber
        - href
      type: object
      properties:
        href:
          type: string
          description: Account URI
          format: URI
          example: https://api.equinix.com/internetAccess/v1/accounts/1234
        accountNumber:
          type: string
          description: Account identifier
          example: "1234533211"
        accountName:
          type: string
          description: Name of account
          example: Company account
        orgId:
          type: string
          description: Customer organization identifier
          example: "1232"
        organizationName:
          type: string
          description: Customer organization name
          example: Equinix, Inc.
    ProjectReadModel:
      required:
        - href
        - parentOrganizationId
        - parentOrganizationName
        - projectId
        - projectName
      type: object
      properties:
        href:
          type: string
          description: Project URI
          format: uri
          example: https://api.equinix.com/resourceManager/v1/projects/371
        projectId:
          type: string
          description: identifier of the project
          example: "9713123422221"
        projectName:
          type: string
          description: name of the project
          example: US Office
        parentOrganizationId:
          type: string
          example: "22331"
        parentOrganizationName:
          type: string
          description: Name of the parent organization
          example: ABC Company
    OrderReadModel:
      required:
        - changeLog
        - draft
        - href
        - links
        - number
        - status
        - type
        - uuid
      type: object
      properties:
        href:
          type: string
          description: Order URI
          example: https://api.equinix.com/internetAccess/v1/orders/cd67f685-41b0-1b07-6de0-320a5c00abee
        uuid:
          type: string
          description: Order identifier
          format: uuid
          example: cd67f685-41b0-1b07-6de0-320a5c00abee
        type:
          type: string
          description: Order type
          example: NEW
          enum:
            - NEW
            - AMENDMENT
        draft:
          type: boolean
          description: Describes if the service is a draft
          example: true
        status:
          type: string
          description: Order status
          example: COMPLETED
          enum:
            - DRAFT
            - PROCESSING
            - AWAITING_SIGNATURE
            - SIGNATURE_REJECTED
            - SIGNATURE_EXPIRED
            - SUBMITTED
            - COMPLETED
            - FAILED
        changeLog:
          $ref: "#/components/schemas/ChangeLog"
        number:
          type: string
          description: Order number
          example: 1-9234239473
        purchaseOrder:
          $ref: "#/components/schemas/PurchaseOrderReadModel"
        contacts:
          type: array
          items:
            $ref: "#/components/schemas/ContactItem"
        tags:
          type: array
          example:
            - tag1
            - tag2
            - tag3
          items:
            type: string
        links:
          type: array
          items:
            $ref: "#/components/schemas/Link"
    Redundancy:
      required:
        - enabled
        - group
        - priority
      type: object
      properties:
        enabled:
          type: boolean
          description: defines if redundancy is enabled.
          example: true
        priority:
          type: string
          description: priority of a connection
          example: PRIMARY
          enum:
            - PRIMARY
            - SECONDARY
        group:
          type: string
          description: Group identifier
          format: uuid
          example: f53e34d4-1371-4750-ab83-6c3f2e8b2c43
    ASide:
      type: object
      properties:
        accessPoint:
          $ref: "#/components/schemas/AccessPointReadModel"
    AccessPointReadModel:
      required:
        - type
      type: object
      properties:
        type:
          type: string
          example: COLO
          enum:
            - COLO
            - VD
            - SP
        name:
          type: string
          example: Single-Port-Internet-Access
        description:
          type: string
          example: Highly available access to the internet primary port
        location:
          $ref: "#/components/schemas/LocationReadModel"
        port:
          $ref: "#/components/schemas/PortReadModel"
        linkProtocol:
          $ref: "#/components/schemas/LinkProtocol"
        virtualDevice:
          $ref: "#/components/schemas/VirtualDeviceReadModel"
    LocationReadModel:
      required:
        - href
        - metroCode
        - metroName
        - region
      type: object
      properties:
        href:
          type: string
          description: Location URI
          format: URI
          example: https://api.equinix.com/internetAccess/v1/ibxs/SV1
        region:
          type: string
          description: |
            AMER (the Americas),
            APAC (Asia-Pacific),
            EMEA (Europe, the Middle East, and Africa)
          example: AMER
          enum:
            - AMER
            - EMEA
            - APAC
        metroName:
          type: string
          description: Name of the city in which a specified Equinix asset is located.
          example: Silicon Valley
        metroCode:
          type: string
          description: |
            Two-letter prefix indicating the metropolitan area in which a specified Equinix asset is located.
          example: SV
        ibx:
          type: string
          description: |
            Alphanumeric identifier assigned to an Equinix International Business Exchange (IBX)
            data center in which a specified asset is located.
          example: SV1
    PortReadModel:
      required:
        - href
        - type
        - uuid
      type: object
      properties:
        href:
          type: string
          description: Port URI
          example: https://api.equinix.com/fabric/v4/ports/a867f685-41b0-1b07-6de0-320a5c00abdd
        type:
          type: string
          description: Port type. XF - Fabric port, IA_PORT - Internet Access dedicated port
          example: XF_PORT
          enum:
            - XF_PORT
            - IA_PORT
        uuid:
          type: string
          description: Port identifier
          format: uuid
          example: a867f685-41b0-1b07-6de0-320a5c00abdd
    LinkProtocol:
      required:
        - type
      type: object
      properties:
        type:
          type: string
          description: encapsulation type
          example: DOT1Q
          enum:
            - DOT1Q
            - QINQ
      discriminator:
        propertyName: type
        mapping:
          DOT1Q: "#/components/schemas/LinkProtocolDot1Q"
          QINQ: "#/components/schemas/LinkProtocolQInQ"
    LinkProtocolDot1Q:
      allOf:
        - $ref: "#/components/schemas/LinkProtocol"
        - $ref: "#/components/schemas/VlanDot1QTag"
    VlanDot1QTag:
      required:
        - vlanTag
      type: object
      properties:
        vlanTag:
          maximum: 4094
          minimum: 0
          type: integer
          description: vlan tag allocated for connection.
          format: int32
          example: 400
    LinkProtocolQInQ:
      allOf:
        - $ref: "#/components/schemas/LinkProtocol"
        - $ref: "#/components/schemas/VlanQinQTag"
    VlanQinQTag:
      required:
        - vlanCTag
        - vlanSTag
      type: object
      properties:
        vlanCTag:
          maximum: 4094
          minimum: 0
          type: integer
          description: vlan client tag
          format: int32
          example: 400
        vlanSTag:
          maximum: 4094
          minimum: 0
          type: integer
          description: vlan service tag
          format: int32
          example: 100
    VirtualDeviceReadModel:
      required:
        - uuid
      type: object
      properties:
        uuid:
          type: string
          description: Virtual device identifier
          format: uuid
          example: f088e99c-7f69-4380-94bf-d25940064552
        type:
          type: string
          description: Type of virtual device
          example: EDGE
          enum:
            - EDGE
        href:
          type: string
          description: Virtual device URI
          example: https://api.equinix.com/ne/v1/devices/f088e99c-7f69-4380-94bf-d25940064552
    NetworkInterface:
      required:
        - id
      type: object
      properties:
        id:
          type: string
          example: "19032086"
        ifIndex:
          type: integer
          example: 760
        device:
          $ref: "#/components/schemas/Device"
    Device:
      required:
        - configModel
        - name
      type: object
      properties:
        name:
          type: string
          example: qa3-sv-a1.lab
        description:
          type: string
          example: Lab device
        alias:
          type: string
          example: C989CE228B9104334FBF88AA235D3D3C
        vendor:
          type: string
          example: Juniper
        configModel:
          $ref: "#/components/schemas/DeviceConfigModel"
        redundancy:
          $ref: "#/components/schemas/DeviceRedundancy"
    DeviceConfigModel:
      type: string
      description: Device config model
      example: UPF
      enum:
        - LEGACY
        - UPF
        - CLASSIC
    DeviceRedundancy:
      required:
        - priority
      type: object
      properties:
        priority:
          type: string
          description: Priority of device redundancy
          example: PRIMARY
          enum:
            - PRIMARY
            - SECONDARY
    AdditionalInfo:
      type: object
      properties:
        reason:
          type: string
          description: Reason of the error
          example: Unsupported request parameter value
        property:
          type: string
          description: Request property that caused the error
          example: params.offset
      description: Additional info for error
    RoutingProtocolIpv4:
      required:
        - customerRoutes
        - peerings
      type: object
      properties:
        customerRoutes:
          minItems: 1
          type: array
          items:
            $ref: "#/components/schemas/RoutingProtocolCustomerRouteIpv4"
        peerings:
          minItems: 0
          type: array
          items:
            $ref: "#/components/schemas/RoutingProtocolPeeringIpv4"
    RoutingProtocolIpv6:
      required:
        - customerRoutes
        - peerings
      type: object
      properties:
        customerRoutes:
          minItems: 1
          type: array
          items:
            $ref: "#/components/schemas/RoutingProtocolCustomerRouteIpv6"
        peerings:
          minItems: 0
          type: array
          items:
            $ref: "#/components/schemas/RoutingProtocolPeeringIpv6"
    RoutingProtocolDirectAdditionalFields:
      type: object
    RoutingProtocolStaticAdditionalFields:
      type: object
    RoutingProtocolBgpAdditionalFields:
      required:
        - customerAsn
        - equinixAsn
        - exportPolicy
      type: object
      properties:
        customerAsn:
          maximum: 4294967295
          minimum: 0
          type: integer
          description: |
            Customer Autonomous System Number
          format: int64
        customerAsnRange:
          type: string
          description: Customer Autonomous System Number range
          enum:
            - BITS_16
            - BITS_32
        equinixAsn:
          maximum: 4294967295
          minimum: 0
          type: integer
          description: |
            Equinix Autonomous System Number
          format: int64
        bgpAuthKey:
          type: string
          description: |
            BGP authentication key
        exportPolicy:
          $ref: "#/components/schemas/ExportPolicy"
      description: BGP routing protocol
    ExportPolicy:
      type: string
      description: |
        Denotes which routes should be advertised to the internet
      enum:
        - FULL
        - DEFAULT
        - FULL_DEFAULT
        - PARTIAL
    PurchaseOrderReadModel:
      required:
        - href
        - number
        - type
      type: object
      properties:
        href:
          type: string
          description: Purchase Order URI
          example: https://api.equinix.com/internetAccess/v1/purchaseOrders/32423423
        type:
          type: string
          description: Order type
          example: STANDARD_PURCHASE_ORDER
          enum:
            - STANDARD_PURCHASE_ORDER
            - BLANKET_PURCHASE_ORDER
        number:
          type: string
          description: Purchase Order number
          example: "32423423"
    ContactItem:
      required:
        - type
      type: object
      properties:
        href:
          type: string
          description: Account URI
          example: https://api.equinix.com/access/v2/users/john_doe
        type:
          type: string
          description: Contact type
          example: ORDERING
          enum:
            - NOTIFICATION
            - TECHNICAL
            - ORDERING
            - RESELLING
            - BILLING
        registeredUser:
          type: string
          description: |
            Identifies (e.g., contactId, userId, userKey) a registered user.
          example: john_doe
        firstName:
          type: string
          example: John
        lastName:
          type: string
          example: Doe
        timezone:
          type: string
          example: Pacific
        availability:
          type: string
          example: WORK_HOURS
          enum:
            - WORK_HOURS
            - ANYTIME
            - CUSTOMER_BUSINESS_HOURS
            - NOT_AVAILABLE
        notes:
          type: string
          description: |
            Describe any contact preferences
          example: For urgent cases please make a phone call.
        details:
          type: array
          items:
            $ref: "#/components/schemas/ContactItemDetails"
    ContactItemDetails:
      properties:
        type:
          type: string
          example: EMAIL
          enum:
            - EMAIL
            - PHONE
            - MOBILE
            - SECONDARY_EMAIL
        value:
          type: string
          example: john.doe@nowhere.com
        notes:
          type: string
          description: |
            Contact additional info
          example: org internal communication only
    ServiceNetworkInterface:
      required:
        - id
      type: object
      properties:
        id:
          type: string
          example: "19032086"
        ifIndex:
          type: integer
          example: 760
    RoutingProtocolCustomerRouteIpv4:
      required:
        - importPolicy
        - prefixLength
      type: object
      properties:
        importPolicy:
          $ref: "#/components/schemas/ImportPolicy"
        prefix:
          pattern: ^([01]?\d\d?|2[0-4]\d|25[0-5])(?:\.(?:[01]?\d\d?|2[0-4]\d|25[0-5])){3}(?:/[0-2]\d|/3[0-2])+$
          type: string
          description: |
            Subnet prefix
        prefixLength:
          maximum: 32
          minimum: 1
          type: integer
          description: Determines the size of ip subnet
          example: 30
        ipBlock:
          $ref: "#/components/schemas/IpBlockReadModel"
    RoutingProtocolPeeringIpv4:
      required:
        - equinixPeerIps
        - peerSubnet
        - vrrpEnabled
      type: object
      properties:
        connections:
          type: array
          items:
            $ref: "#/components/schemas/RoutingProtocolPeeringConnectionItem"
        customerPeerIps:
          type: array
          items:
            type: string
        peerSubnet:
          $ref: "#/components/schemas/RoutingProtocolPeeringIpv4_peerSubnet"
        vrrpEnabled:
          type: boolean
          description: Indicates if VRRP is enabled.
          example: true
        equinixPeerIps:
          type: array
          items:
            pattern: ^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
            type: string
        equinixVRRPIp:
          pattern: ^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
          type: string
        customerVRRPIp:
          pattern: ^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
          type: string
    RoutingProtocolCustomerRouteIpv6:
      required:
        - importPolicy
        - prefixLength
      type: object
      properties:
        importPolicy:
          $ref: "#/components/schemas/ImportPolicy"
        prefix:
          pattern: ^((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:)))(%.+)?s*(\/([0-9]|[1-9][0-9]|1[0-1][0-9]|12[0-8]))$
          type: string
          description: |
            Subnet prefix
        prefixLength:
          maximum: 128
          minimum: 1
          type: integer
          description: Determines the size of ip subnet
          example: 64
        ipBlock:
          $ref: "#/components/schemas/IpBlockReadModel"
    RoutingProtocolPeeringIpv6:
      required:
        - equinixPeerIps
        - peerSubnet
        - vrrpEnabled
      type: object
      properties:
        connections:
          type: array
          items:
            $ref: "#/components/schemas/RoutingProtocolPeeringConnectionItem"
        customerPeerIps:
          type: array
          items:
            type: string
        peerSubnet:
          $ref: "#/components/schemas/RoutingProtocolPeeringIpv6_peerSubnet"
        vrrpEnabled:
          type: boolean
          description: Indicates if VRRP is enabled.
          example: true
        equinixPeerIps:
          type: array
          items:
            pattern: ^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$
            type: string
        equinixVRRPIp:
          pattern: ^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$
          type: string
        customerVRRPIp:
          pattern: ^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$
          type: string
    ImportPolicy:
      type: object
    IpBlockReadModel:
      required:
        - type
      type: object
      properties:
        href:
          type: string
          description: Ip block URI
          format: URI
          example: https://api.equinix.com/internetAccess/v1/ipBlocks/71a1eb68-4daf-4ef0-bd7f-6970727b6fe8
        uuid:
          type: string
          format: uuid
          example: 71a1eb68-4daf-4ef0-bd7f-6970727b6fe8
        type:
          type: string
          description: Determines the type of Routing Protocol
          example: IA_IP_BLOCK
          enum:
            - IA_IP_BLOCK
    RoutingProtocolPeeringConnectionItem:
      required:
        - href
        - type
        - uuid
      type: object
      properties:
        href:
          type: string
          description: Ip block URI
          format: URI
          example: https://api.equinix.com/internetAccess/v1/services/df043001-bf0a-446b-a48f-bcdcca68a9f3/connections/38a1eb68-4daf-4ef0-bd7f-6970727b6fc1
        uuid:
          $ref: "#/components/schemas/ConnectionUuid"
        type:
          $ref: "#/components/schemas/ConnectionType"
    RoutingProtocolPeeringIpv4_peerSubnet:
      required:
        - prefix
        - prefixLength
      type: object
      properties:
        prefix:
          type: string
          description: Subnet used for peering
          example: 7.7.7.0/30
        prefixLength:
          maximum: 32
          minimum: 8
          type: integer
          format: int32
          example: 30
    RoutingProtocolPeeringIpv6_peerSubnet:
      required:
        - prefix
        - prefixLength
      type: object
      properties:
        prefix:
          type: string
          description: Subnet used for peering
          example: 2000:3333:0000:0000:0000:0000:0000:0000/64
        prefixLength:
          maximum: 128
          minimum: 8
          type: integer
          format: int32
          example: 64
  examples:
    SearchDedicatedDualPortPARequest:
      value:
        filter:
          and:
            - property: /type
              operator: =
              values:
                - INTERNET_ACCESS_PRODUCT
            - property: /account/accountNumber
              operator: =
              values:
                - "123123"
            - property: /service/type
              operator: =
              values:
                - DUAL_PORT
            - property: /service/useCase
              operator: =
              values:
                - MAIN
            - property: /service/bandwidth
              operator: =
              values:
                - 500
            - property: /service/billing
              operator: =
              values:
                - FIXED
            - property: /service/connection/type
              operator: =
              values:
                - IA_C
            - property: /service/connection/aSide/accessPoint/type
              operator: =
              values:
                - COLO
            - property: /service/connection/aSide/accessPoint/location/ibx
              operator: =
              values:
                - WA1
            - property: /service/connection/aSide/accessPoint/port/physicalPort/speed
              operator: =
              values:
                - 1000
            - property: /service/connection/aSide/accessPoint/virtualDevice/speed
              operator: =
              values:
                - 1000
            - property: /service/connection/aSide/accessPoint/port/physicalPortQuantity
              operator: =
              values:
                - 2
            - property: /service/routingProtocol/type
              operator: =
              values:
                - DIRECT
            - property: /service/routingProtocol/ipv4/customerRoute/ipBlock/prefixLength
              operator: =
              values:
                - 28
            - property: /service/routingProtocol/ipv6/customerRoute/ipBlock/prefixLength
              operator: =
              values:
                - 48
    SearchDedicatedSinglePortPIRequest:
      value:
        filter:
          and:
            - property: /type
              operator: =
              values:
                - INTERNET_ACCESS_PRODUCT
            - property: /account/accountNumber
              operator: =
              values:
                - "123123"
            - property: /service/type
              operator: =
              values:
                - SINGLE_PORT
            - property: /service/useCase
              operator: =
              values:
                - BACKUP
            - property: /service/billing
              operator: =
              values:
                - USAGE_BASED
            - property: /service/connection/type
              operator: =
              values:
                - IA_C
            - property: /service/connection/aSide/accessPoint/type
              operator: =
              values:
                - COLO
            - property: /service/connection/aSide/accessPoint/location/ibx
              operator: =
              values:
                - WA1
            - property: /service/connection/aSide/accessPoint/port/physicalPort/speed
              operator: =
              values:
                - 10000
            - property: /service/connection/aSide/accessPoint/port/physicalPortQuantity
              operator: =
              values:
                - 1
    SearchDedicatedBurstBillingLagRequest:
      value:
        filter:
          and:
            - property: /type
              operator: =
              values:
                - INTERNET_ACCESS_PRODUCT
            - property: /account/accountNumber
              operator: =
              values:
                - "123123"
            - property: /service/connection/aSide/accessPoint/location/ibx
              operator: =
              values:
                - CH3
            - property: /service/useCase
              operator: =
              values:
                - MAIN
            - property: /service/connection/type
              operator: =
              values:
                - IA_C
            - property: /service/connection/aSide/accessPoint/type
              operator: =
              values:
                - COLO
            - property: /service/type
              operator: =
              values:
                - DUAL_PORT
            - property: /service/billing
              operator: =
              values:
                - BURST_BASED
            - property: /service/connection/aSide/accessPoint/port/physicalPort/speed
              operator: =
              values:
                - 10000
            - property: /service/connection/aSide/accessPoint/port/physicalPortQuantity
              operator: =
              values:
                - 2
            - property: /service/minBandwidthCommit
              operator: =
              values:
                - 11000
            - property: /service/routingProtocol/ipv6/customerRoute/ipBlock/prefixLength
              operator: =
              values:
                - 48
            - property: /service/routingProtocol/type
              operator: =
              values:
                - DIRECT
    SearchDedicatedManagementAccessMinimalRequest:
      value:
        filter:
          and:
            - property: /type
              operator: =
              values:
                - INTERNET_ACCESS_PRODUCT
            - property: /account/accountNumber
              operator: =
              values:
                - "123123"
            - property: /service/connection/aSide/accessPoint/location/ibx
              operator: =
              values:
                - WA1
            - property: /service/useCase
              operator: =
              values:
                - MANAGEMENT_ACCESS
            - property: /service/connection/type
              operator: =
              values:
                - IA_C
            - property: /service/connection/aSide/accessPoint/type
              operator: =
              values:
                - COLO
    SearchIpBlockV4Request:
      value:
        filter:
          and:
            - property: /type
              operator: =
              values:
                - IP_BLOCK_PRODUCT
            - property: /account/accountNumber
              operator: =
              values:
                - 123123
            - property: /ipBlock/type
              operator: =
              values:
                - IA_IP_BLOCK
            - property: /ipBlock/location/ibx
              operator: =
              values:
                - CH3
            - property: /ipBlock/ipv4/prefixLength
              operator: =
              values:
                - 29
    SearchIpBlockV6Request:
      value:
        filter:
          and:
            - property: /type
              operator: =
              values:
                - IP_BLOCK_PRODUCT
            - property: /account/accountNumber
              operator: =
              values:
                - 123123
            - property: /ipBlock/type
              operator: =
              values:
                - IA_IP_BLOCK
            - property: /ipBlock/location/ibx
              operator: =
              values:
                - CH3
            - property: /ipBlock/ipv6/prefixLength
              operator: =
              values:
                - 48
    200_searchDedicatedSinglePortPIResponse:
      value:
        pagination:
          offset: 0
          limit: 20
          total: 1
        data:
          - href: https://api.equinix.com/internetAccess/v1/prices/search
            type: INTERNET_ACCESS_PRODUCT
            code: EC00015.PROD
            name: Internet Access Service Product
            description: Internet Access Service
            account:
              accountNumber: "123123"
            currency: EUR
            category: CUSTOMER
            charges:
              - type: MONTHLY_RECURRING
                price: 0.03
                unit: GB_1
                product:
                  type: INTERNET_ACCESS_PRODUCT
                  code: EC00015.PROD
                  name: Internet Access Service Product
                  description: Internet Access Service
              - type: MONTHLY_RECURRING
                price: 350
                unit: ITEM
                product:
                  type: INTERNET_ACCESS_PRODUCT
                  code: EC00015.PROD
                  name: Internet Access Service Product
                  description: Internet Access Service
              - type: NON_RECURRING
                price: 1000
                unit: ITEM
                product:
                  type: INTERNET_ACCESS_PRODUCT
                  code: EC00015.PROD
                  name: Internet Access Service Product
                  description: Internet Access Service
            summary:
              charges:
                - type: MONTHLY_RECURRING
                  price: 350
                  unit: ITEM
                - type: NON_RECURRING
                  price: 1000
                  unit: ITEM
              totalCharge:
                price: 1350
            service:
              type: SINGLE_PORT
              useCase: BACKUP
              billing: USAGE_BASED
              connection:
                type: IA_C
                aSide:
                  accessPoint:
                    type: COLO
                    location:
                      ibx: WA1
                    port:
                      physicalPort:
                        speed: 10000
                      physicalPortQuantity: 1
    200_searchDedicatedDualPortPAResponse:
      value:
        pagination:
          offset: 0
          limit: 20
          total: 1
        data:
          - href: https://api.equinix.com/internetAccess/v1/prices/search
            type: INTERNET_ACCESS_PRODUCT
            code: EC00015.PROD
            name: Internet Access Service Product
            description: Internet Access Service
            account:
              accountNumber: "123123"
            currency: EUR
            category: CUSTOMER
            charges:
              - type: MONTHLY_RECURRING
                unit: ITEM
                price: 1000
                product:
                  type: INTERNET_ACCESS_PRODUCT
                  code: EC00015.PROD
                  name: Internet Access Service Product
                  description: Internet Access Service
              - type: NON_RECURRING
                unit: ITEM
                price: 1500
                product:
                  type: INTERNET_ACCESS_PRODUCT
                  code: EC00015.PROD
                  name: Internet Access Service Product
                  description: Internet Access Service
              - type: MONTHLY_RECURRING
                unit: ITEM
                price: 100.8
                product:
                  type: IP_BLOCK_PRODUCT
                  code: EC000006.PROD
                  name: Internet Access IP Addressing Product
                  description: Internet Access IP Addressing
              - type: NON_RECURRING
                unit: ITEM
                price: 50
                product:
                  type: IP_BLOCK_PRODUCT
                  code: EC000006.PROD
                  name: Internet Access IP Addressing Product
                  description: Internet Access IP Addressing
            summary:
              charges:
                - type: MONTHLY_RECURRING
                  unit: ITEM
                  price: 1100.8
                - type: NON_RECURRING
                  unit: ITEM
                  price: 1550
              totalCharge:
                price: 2650
            service:
              type: DUAL_PORT
              useCase: MAIN
              bandwidth: 500
              billing: FIXED
              connection:
                type: IA_C
                aSide:
                  accessPoint:
                    type: COLO
                    location:
                      ibx: WA1
                    port:
                      physicalPort:
                        speed: 1000
                      physicalPortQuantity: 2
              routingProtocol:
                type: DIRECT
                ipv4:
                  customerRoute:
                    ipBlock:
                      prefixLength: 28
                ipv6:
                  customerRoute:
                    ipBlock:
                      prefixLength: 48
    200_searchDedicatedBurstBillingLagResponse:
      value:
        pagination:
          offset: 0
          limit: 50
          total: 1
        data:
          - href: https://api.equinix.com/internetAccess/v1/prices/search
            type: INTERNET_ACCESS_PRODUCT
            code: EC00015.PROD
            name: Internet Access Service Product
            description: Internet Access Service
            account:
              accountNumber: "123123"
            currency: USD
            category: CUSTOMER
            charges:
              - type: MONTHLY_RECURRING
                price: 7588
                unit: ITEM
                product:
                  type: INTERNET_ACCESS_PRODUCT
                  code: EC00015.PROD
                  name: Internet Access Service Product
                  description: Internet Access Service
              - type: MONTHLY_RECURRING
                price: 0.69
                unit: MBPS_1
                product:
                  type: INTERNET_ACCESS_PRODUCT
                  code: EC00015.PROD
                  name: Internet Access Service Product
                  description: Internet Access Service
              - type: NON_RECURRING
                price: 4000
                unit: ITEM
                product:
                  type: INTERNET_ACCESS_PRODUCT
                  code: EC00015.PROD
                  name: Internet Access Service Product
                  description: Internet Access Service
              - type: MONTHLY_RECURRING
                price: 10
                unit: ITEM
                product:
                  type: IP_BLOCK_PRODUCT
                  code: EC00006.PROD
                  name: Internet Access IP Addressing Product
                  description: Internet Access IP Addressing
              - type: NON_RECURRING
                price: 50
                unit: ITEM
                product:
                  type: IP_BLOCK_PRODUCT
                  code: EC00006.PROD
                  name: Internet Access IP Addressing Product
                  description: Internet Access IP Addressing
            summary:
              charges:
                - type: MONTHLY_RECURRING
                  price: 7598
                  unit: ITEM
                - type: NON_RECURRING
                  price: 4050
                  unit: ITEM
              totalCharge:
                price: 11648
            service:
              type: DUAL_PORT
              minBandwidthCommit: 11000
              billing: BURST_BASED
              useCase: MAIN
              connection:
                type: IA_C
                aSide:
                  accessPoint:
                    type: COLO
                    location:
                      ibx: CH3
                    port:
                      physicalPort:
                        speed: 10000
                      physicalPortQuantity: 2
              routingProtocol:
                type: DIRECT
                ipv6:
                  customerRoute:
                    ipBlock:
                      prefixLength: 48
    200_searchDedicatedManagementAccessResponse:
      value:
        pagination:
          offset: 0
          limit: 20
          total: 1
        data:
          - href: https://api.equinix.com/internetAccess/v1/prices/search
            type: INTERNET_ACCESS_PRODUCT
            code: EC00015.PROD
            name: Internet Access Service Product
            description: Internet Access Service
            account:
              accountNumber: "123123"
            currency: EUR
            category: CUSTOMER
            charges:
              - type: MONTHLY_RECURRING
                unit: ITEM
                price: 50
                product:
                  type: INTERNET_ACCESS_PRODUCT
                  code: EC00015.PROD
                  name: Internet Access Service Product
                  description: Internet Access Service
              - type: NON_RECURRING
                unit: ITEM
                price: 750
                product:
                  type: INTERNET_ACCESS_PRODUCT
                  code: EC00015.PROD
                  name: Internet Access Service Product
                  description: Internet Access Service
              - type: MONTHLY_RECURRING
                unit: ITEM
                price: 0
                product:
                  type: IP_BLOCK_PRODUCT
                  code: EC00006.PROD
                  name: Internet Access IP Addressing Product
                  description: Internet Access IP Addressing
              - type: NON_RECURRING
                unit: ITEM
                price: 0
                product:
                  type: IP_BLOCK_PRODUCT
                  code: EC00006.PROD
                  name: Internet Access IP Addressing Product
                  description: Internet Access IP Addressing
            summary:
              charges:
                - type: MONTHLY_RECURRING
                  unit: ITEM
                  price: 50
                - type: NON_RECURRING
                  unit: ITEM
                  price: 750
              totalCharge:
                price: 800
            service:
              type: SINGLE_PORT
              useCase: MANAGEMENT_ACCESS
              bandwidth: 15
              billing: FIXED
              connection:
                type: IA_C
                aSide:
                  accessPoint:
                    type: COLO
                    location:
                      ibx: WA1
                    port:
                      physicalPort:
                        speed: 1000
                      physicalPortQuantity: 1
              routingProtocol:
                type: DIRECT
                ipv4:
                  customerRoute:
                    ipBlock:
                      prefixLength: 30
                ipv6:
                  customerRoute:
                    ipBlock:
                      prefixLength: 64
    200_searchIpBlockV4Response:
      value:
        pagination:
          offset: 0
          limit: 50
          total: 1
        data:
          - href: https://api.equinix.com/internetAccess/v1/prices/search
            type: IP_BLOCK_PRODUCT
            code: EC00006.PROD
            name: Internet Access IP Addressing Product
            description: Internet Access IP Addressing
            account:
              accountNumber: 123123
            currency: USD
            category: CUSTOMER
            charges:
              - type: MONTHLY_RECURRING
                unit: ITEM
                price: 50
                product:
                  type: IP_BLOCK_PRODUCT
                  code: EC00006.PROD
                  name: Internet Access IP Addressing Product
                  description: Internet Access IP Addressing
              - type: NON_RECURRING
                unit: ITEM
                price: 700
                product:
                  type: IP_BLOCK_PRODUCT
                  code: EC00006.PROD
                  name: Internet Access IP Addressing Product
                  description: Internet Access IP Addressing
            summary:
              charges:
                - type: MONTHLY_RECURRING
                  unit: ITEM
                  price: 50
                - type: NON_RECURRING
                  unit: ITEM
                  price: 700
              totalCharge:
                price: 750
            ipBlock:
              type: IA_IP_BLOCK
              location:
                ibx: CH3
              ipv4:
                prefixLength: 29
    200_searchIpBlockV6Response:
      value:
        pagination:
          offset: 0
          limit: 50
          total: 1
        data:
          - href: https://api.equinix.com/internetAccess/v1/prices/search
            type: IP_BLOCK_PRODUCT
            code: EC00006.PROD
            name: Internet Access IP Addressing Product
            description: Internet Access IP Addressing
            account:
              accountNumber: 123123
            currency: USD
            category: CUSTOMER
            charges:
              - type: MONTHLY_RECURRING
                unit: ITEM
                price: 50
                product:
                  type: IP_BLOCK_PRODUCT
                  code: EC00006.PROD
                  name: Internet Access IP Addressing Product
                  description: Internet Access IP Addressing
              - type: NON_RECURRING
                unit: ITEM
                price: 700
                product:
                  type: IP_BLOCK_PRODUCT
                  code: EC00006.PROD
                  name: Internet Access IP Addressing Product
                  description: Internet Access IP Addressing
            summary:
              charges:
                - type: MONTHLY_RECURRING
                  unit: ITEM
                  price: 50
                - type: NON_RECURRING
                  unit: ITEM
                  price: 700
              totalCharge:
                price: 750
            ipBlock:
              type: IA_IP_BLOCK
              location:
                ibx: CH3
              ipv6:
                prefixLength: 48
    200_dedicatedBandwidthConfigurations:
      value:
        pagination:
          offset: 0
          limit: 2
          total: 2958
        data:
          - useCase: MAIN
            bandwidth: 800
            billing: FIXED
            connection:
              aside:
                accessPoint:
                  port:
                    physicalPortsQuantity: 2
                    physicalPort:
                      speed: 10000
          - useCase: MAIN
            bandwidth: 9000
            minBandwidthCommit: 1100
            billing: BURST_BASED
            connection:
              aside:
                accessPoint:
                  port:
                    physicalPortsQuantity: 9
                    physicalPort:
                      speed: 1000
    200_dedicatedPortDefaultConfigurations:
      value:
        pagination:
          offset: 0
          limit: 50
          total: 3
        data:
          - type: DUAL_PORT
            useCase: MAIN
            billing: FIXED
            bandwidth: 500
            connection:
              aside:
                accessPoint:
                  location:
                    ibx: AM2
                  port:
                    physicalPortsQuantity: 1
                    physicalPort:
                      interface:
                        type: 1G SMF
                      speed: 1000
                      demarcationPoint:
                        mediaType: Single-Mode Fiber
            routingProtocol:
              type: STATIC
              ipv4:
                customerRoute:
                  importPolicy: PA
                  prefixLength: 29
              ipv6:
                customerRoute:
                  importPolicy: PA
                  prefixLength: 64
          - type: SINGLE_PORT
            useCase: BACKUP
            billing: USAGE_BASED
            bandwidth: 0
            connection:
              aside:
                accessPoint:
                  location:
                    ibx: AM2
                  port:
                    physicalPortsQuantity: 1
                    physicalPort:
                      interface:
                        type: 1G SMF
                      speed: 1000
                      demarcationPoint:
                        mediaType: Single-Mode Fiber
            routingProtocol:
              type: BGP
              ipv4:
                customerRoute:
                  importPolicy: PA
                  prefixLength: 30
              ipv6:
                customerRoute:
                  importPolicy: PA
                  prefixLength: 64
          - type: SINGLE_PORT
            useCase: MANAGEMENT_ACCESS
            billing: FIXED
            bandwidth: 15
            connection:
              aside:
                accessPoint:
                  location:
                    ibx: AM2
                  port:
                    physicalPortsQuantity: 1
                    physicalPort:
                      interface:
                        type: 1G SMF
                      speed: 1000
                      demarcationPoint:
                        mediaType: Single-Mode Fiber
            routingProtocol:
              type: DIRECT
              ipv4:
                customerRoute:
                  importPolicy: PA
                  prefixLength: 30
              ipv6:
                customerRoute:
                  importPolicy: PA
                  prefixLength: 64
    additionalIpConfigurations_200_OK:
      value:
        pagination:
          offset: 0
          limit: 50
          total: 4
        data:
          - useCase: MAIN
            routingProtocol:
              type: DIRECT
              ipv4:
                customerRoute:
                  importPolicy: PA
                  prefixLength: 27
                peering:
                  vrrpEnabled: true
            type: DUAL_PORT
          - useCase: MAIN
            routingProtocol:
              type: BGP
              ipv6:
                customerRoute:
                  importPolicy: PA
                  prefixLength: 48
                peering:
                  vrrpEnabled: false
            type: SINGLE_PORT
          - useCase: MAIN
            routingProtocol:
              type: BGP
              ipv4:
                customerRoute:
                  importPolicy: PI
                  prefixLength: 24
                peering:
                  vrrpEnabled: false
            type: SINGLE_PORT
          - useCase: MAIN
            routingProtocol:
              type: STATIC
              ipv6:
                customerRoute:
                  importPolicy: PI
                  prefixLength: 48
                peering:
                  vrrpEnabled: true
            type: DUAL_PORT
    200_cageResponse:
      value:
        pagination:
          offset: 0
          limit: 20
          total: 1
        data:
          - spaceId: AT1:03:034720
            number: 1328721
            cabinetsCount: 1
            location:
              ibx: AT1
            account:
              accountNumber: 123465758
          - spaceId: AT1:03:034720
            number: 1328721
            cabinetsCount: 1
            location:
              ibx: AT1
            account:
              accountNumber: "123123123"
    200_cabinetResponse:
      value:
        pagination:
          offset: 0
          limit: 20
          total: 2
          next: string
          previous: string
        data:
          - spaceId: AT1:03:034720:0102
            number: Cabinet Number One
            patchPanelsCount: 10
            cage:
              spaceId: AT1:03:034720
            location:
              ibx: AT1
            account:
              accountNumber: "123123123"
    200_connectionServiceResponse:
      value:
        pagination:
          offset: 0
          limit: 20
          total: 2
          next: string
          previous: string
        data:
          - name: Connection Service name
            mediaTypes:
              - name: Media Type name
                connectorTypes:
                  - name: Connector Type name
                    requiredPorts: 1
                    optionalPorts: 0
                    locations:
                      - ibx: AT1
    200_patchPanelsResponse:
      value:
        pagination:
          offset: 0
          limit: 20
          total: 2
          next: string
          previous: string
        data:
          - number: PP:0325:1175941
            customerRefNumber: ME1:01:040310:0422:RU34:49-72
            type: EQUINIX_PROVIDED
            prewired: true
            availablePortsCount: 4
            availablePorts:
              - 2
              - 3
              - 4
              - 5
            ownedPortsCount: 1
            ownedPorts:
              - number: 1
                ownershipType: USED
                ownerType: CROSS_CONNECT
                ownerUuid: 0
            mediaTypes:
              - CAT3
              - CAT5e
              - CAT6
              - CAT6A
              - CAT6a
              - COAX
              - OS1
              - SINGLE_MODE_FIBER
            dedicatedMediaType: MIXED
            cage:
              spaceId: AT1:03:034720
            cabinet:
              spaceId: AT1:03:034720:0102
            location:
              ibx: AT1
            account:
              accountNumber: "123123123"
