components:
  schemas:
    auth-token:
      allOf:
      - $ref: '#/components/schemas/auth-token-partial'
      - required:
        - access_token
        - refresh_token
        title: AuthToken
        type: object
    auth-token-partial:
      description: AuthToken
      properties:
        access_token:
          type: string
        refresh_token:
          type: string
      title: PartialAuthToken
      type: object
    auth-token-request:
      allOf:
      - $ref: '#/components/schemas/auth-token-request-partial'
      - required:
        - api_key
        - api_secret
        title: AuthTokenRequest
        type: object
    auth-token-request-partial:
      description: AuthTokenRequest
      properties:
        api_key:
          maxLength: 16
          minLength: 16
          type: string
        api_secret:
          maxLength: 86
          minLength: 86
          type: string
      title: PartialAuthTokenRequest
      type: object
    billing-contact:
      allOf:
      - $ref: '#/components/schemas/billing-contact-partial'
      - required:
        - managing_customer
        - consuming_customer
        - legal_company_name
        - address_country
        - address_locality
        - postal_code
        - street_address
        - email
        - vat_number
        - type
        title: BillingContact
        type: object
    billing-contact-partial:
      description: Billing Contact Response
      properties:
        address_country:
          description: ISO 3166-1 alpha-2 country code, for example DE
          example: US
          maxLength: 2
          type: string
        address_locality:
          description: The locality/city. For example, Mountain View.
          example: Mountain View
          maxLength: 40
          type: string
        address_region:
          description: The region. For example, CA
          example: CA
          maxLength: 80
          nullable: true
          type: string
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        email:
          description: The email address for sending the invoice.
          example: invoice@example.org
          maxLength: 80
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        id:
          maxLength: 80
          readOnly: true
          type: string
        legal_company_name:
          description: 'The official name of the organization,

            e.g. the registered company name.

            '
          example: Example Inc.
          maxLength: 80
          type: string
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        post_office_box_number:
          description: The post office box number for PO box addresses.
          example: 2335232
          maxLength: 18
          nullable: true
          type: string
        postal_code:
          description: A postal code. For example, 9404
          example: 9409
          maxLength: 24
          type: string
        street_address:
          description: The street address. For example, 1600 Amphitheatre Pkwy.
          example: 1600 Amphitheatre Pkwy.
          maxLength: 80
          type: string
        type:
          example: billing
          type: string
        vat_number:
          description: 'Value-added tax number, required for

            european reverse charge system.

            '
          example: UK2300000042
          maxLength: 20
          minLength: 2
          nullable: true
          type: string
      title: PartialBillingContact
      type: object
    blackholing-network-feature:
      allOf:
      - $ref: '#/components/schemas/blackholing-network-feature-partial'
      - required:
        - name
        - required
        - required_contact_types
        - flags
        - network_service
        - type
        title: BlackholingNetworkFeature
        type: object
    blackholing-network-feature-config:
      allOf:
      - $ref: '#/components/schemas/blackholing-network-feature-config-partial'
      - required:
        - managing_customer
        - consuming_customer
        - contacts
        - network_feature
        - network_service_config
        - activated
        - filtered_prefixes
        - type
        title: BlackholingNetworkFeatureConfig
        type: object
    blackholing-network-feature-config-partial:
      description: Blackholing Network Feature Config
      properties:
        activated:
          type: boolean
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        contacts:
          description: 'Polymorphic set of contacts. See the documentation

            on the specific `required_contact_types` on what

            contacts to provide.

            '
          example:
          - c-impl:123
          - c-noc:331
          items:
            type: string
          type: array
        contract_ref:
          description: 'A reference to a contract.

            '
          example: contract:31824
          maxLength: 128
          nullable: true
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        filtered_prefixes:
          items:
            type: string
          type: array
        id:
          readOnly: true
          type: string
        ixp_specific_configuration:
          maxLength: 2048
          nullable: true
          type: string
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        network_feature:
          type: string
        network_service_config:
          type: string
        purchase_order:
          default: ''
          description: 'Purchase Order ID which will be displayed on the invoice.

            '
          example: 'Project: DC Moon'
          maxLength: 80
          type: string
        state:
          enum:
          - requested
          - allocated
          - testing
          - production
          - decommission_requested
          - decommissioned
          - archived
          - error
          - operator
          - scheduled
          readOnly: true
          type: string
        status:
          items:
            $ref: '#/components/schemas/status'
          type: array
        type:
          example: blackholing
          type: string
      title: PartialBlackholingNetworkFeatureConfig
      type: object
    blackholing-network-feature-config-request:
      allOf:
      - $ref: '#/components/schemas/blackholing-network-feature-config-request-partial'
      - required:
        - managing_customer
        - consuming_customer
        - contacts
        - network_feature
        - network_service_config
        - activated
        - filtered_prefixes
        - type
        title: BlackholingNetworkFeatureConfigRequest
        type: object
    blackholing-network-feature-config-request-partial:
      description: Blackholing Network Feature Config Request
      properties:
        activated:
          type: boolean
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        contacts:
          description: 'Polymorphic set of contacts. See the documentation

            on the specific `required_contact_types` on what

            contacts to provide.

            '
          example:
          - c-impl:123
          - c-noc:331
          items:
            type: string
          type: array
        contract_ref:
          description: 'A reference to a contract.

            '
          example: contract:31824
          maxLength: 128
          nullable: true
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        filtered_prefixes:
          items:
            type: string
          type: array
        id:
          readOnly: true
          type: string
        ixp_specific_configuration:
          maxLength: 2048
          nullable: true
          type: string
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        network_feature:
          type: string
        network_service_config:
          type: string
        purchase_order:
          default: ''
          description: 'Purchase Order ID which will be displayed on the invoice.

            '
          example: 'Project: DC Moon'
          maxLength: 80
          type: string
        type:
          example: blackholing
          type: string
      title: PartialBlackholingNetworkFeatureConfigRequest
      type: object
    blackholing-network-feature-config-update:
      allOf:
      - $ref: '#/components/schemas/blackholing-network-feature-config-update-partial'
      - required:
        - managing_customer
        - consuming_customer
        - activated
        - filtered_prefixes
        - type
        title: BlackholingNetworkFeatureConfigUpdate
        type: object
    blackholing-network-feature-config-update-partial:
      description: Blackholing Network Feature Config Update
      properties:
        activated:
          type: boolean
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        filtered_prefixes:
          items:
            type: string
          type: array
        ixp_specific_configuration:
          maxLength: 2048
          nullable: true
          type: string
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        type:
          example: blackholing
          type: string
      title: PartialBlackholingNetworkFeatureConfigUpdate
      type: object
    blackholing-network-feature-partial:
      description: Blackholing Network Feature
      properties:
        flags:
          description: 'A list of IXP specific feature flags. This can be used

            to see if e.g. RPKI hard filtering is available.'
          items:
            $ref: '#/components/schemas/ixp-specific-feature-flag'
          type: array
        id:
          readOnly: true
          type: string
        name:
          maxLength: 80
          type: string
        network_service:
          type: string
        required:
          type: boolean
        required_contact_types:
          description: 'The configuration will require at least one of each of the

            specified contact types.


            They can be assigned in the `contacts` list property of the

            network feature configuration.'
          items:
            type: string
          type: array
        type:
          example: blackholing
          type: string
      title: PartialBlackholingNetworkFeature
      type: object
    closed-user-group-network-product:
      allOf:
      - $ref: '#/components/schemas/closed-user-group-network-product-partial'
      - required:
        - name
        - type
        title: ClosedUserGroupNetworkProduct
        type: object
    closed-user-group-network-product-partial:
      description: Closed User Group Network Product
      properties:
        id:
          readOnly: true
          type: string
        name:
          description: Name of the product
          maxLength: 80
          type: string
        type:
          example: closed_user_group
          type: string
      title: PartialClosedUserGroupNetworkProduct
      type: object
    closed-user-group-network-service:
      allOf:
      - $ref: '#/components/schemas/closed-user-group-network-service-partial'
      - required:
        - managing_customer
        - consuming_customer
        - contacts
        - product
        - required_contact_types
        - type
        title: ClosedUserGroupNetworkService
        type: object
    closed-user-group-network-service-config:
      allOf:
      - $ref: '#/components/schemas/closed-user-group-network-service-config-partial'
      - required:
        - network_service
        - outer_vlan
        - managing_customer
        - consuming_customer
        - contacts
        - connection
        - type
        title: ClosedUserGroupNetworkServiceConfig
        type: object
    closed-user-group-network-service-config-partial:
      description: Closed User Group Network Service Config
      properties:
        capacity:
          description: 'The capacity of the service in Mbps. If set to Null,

            the maximum capacity will be used.

            That means, the service can consume up

            to the total bandwidth of the `connection`.


            Typically the service is charged based on the capacity.'
          minimum: 1
          nullable: true
          type: integer
        connection:
          description: 'The id of the connection to use for this service config. This

            associates the service to a LAG. All traffic comming in on the

            connection with the correct VLAN-ID will be transported to this

            service.'
          type: string
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        contacts:
          description: 'Polymorphic set of contacts. See the documentation

            on the specific `required_contact_types` on what

            contacts to provide.

            '
          example:
          - c-impl:123
          - c-noc:331
          items:
            type: string
          type: array
        contract_ref:
          description: 'A reference to a contract.

            '
          example: contract:31824
          maxLength: 128
          nullable: true
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        id:
          readOnly: true
          type: string
        inner_vlan:
          description: This is a VLAN ID.
          format: int32
          maximum: 4096
          minimum: 0
          nullable: true
          type: integer
        macs:
          items:
            type: string
          readOnly: true
          type: array
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        network_feature_configs:
          description: 'A list of ids of network feature configurations.

            '
          example:
          - '12356'
          - '43829'
          items:
            type: string
          readOnly: true
          type: array
        network_service:
          description: The id of the configured network service.
          type: string
        outer_vlan:
          description: 'A vlan id, where `0` is untagged.

            Any value > 0 will be the tagged vlan.

            '
          example: 300
          format: int32
          maximum: 4096
          minimum: 0
          type: integer
        purchase_order:
          default: ''
          description: 'Purchase Order ID which will be displayed on the invoice.

            '
          example: 'Project: DC Moon'
          maxLength: 80
          type: string
        state:
          enum:
          - requested
          - allocated
          - testing
          - production
          - decommission_requested
          - decommissioned
          - archived
          - error
          - operator
          - scheduled
          readOnly: true
          type: string
        status:
          items:
            $ref: '#/components/schemas/status'
          type: array
        type:
          example: closed_user_group
          type: string
      title: PartialClosedUserGroupNetworkServiceConfig
      type: object
    closed-user-group-network-service-config-request:
      allOf:
      - $ref: '#/components/schemas/closed-user-group-network-service-config-request-partial'
      - required:
        - managing_customer
        - consuming_customer
        - network_service
        - outer_vlan
        - contacts
        - connection
        - type
        title: ClosedUserGroupNetworkServiceConfigRequest
        type: object
    closed-user-group-network-service-config-request-partial:
      description: Closed User Group Network Service Config Request
      properties:
        capacity:
          description: 'The capacity of the service in Mbps. If set to Null,

            the maximum capacity will be used.

            That means, the service can consume up

            to the total bandwidth of the `connection`.


            Typically the service is charged based on the capacity.'
          minimum: 1
          nullable: true
          type: integer
        connection:
          description: 'The id of the connection to use for this service config. This

            associates the service to a LAG. All traffic comming in on the

            connection with the correct VLAN-ID will be transported to this

            service.'
          type: string
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        contacts:
          description: 'Polymorphic set of contacts. See the documentation

            on the specific `required_contact_types` on what

            contacts to provide.

            '
          example:
          - c-impl:123
          - c-noc:331
          items:
            type: string
          type: array
        contract_ref:
          description: 'A reference to a contract.

            '
          example: contract:31824
          maxLength: 128
          nullable: true
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        id:
          readOnly: true
          type: string
        inner_vlan:
          description: This is a VLAN ID.
          format: int32
          maximum: 4096
          minimum: 0
          nullable: true
          type: integer
        macs:
          items:
            type: string
          readOnly: true
          type: array
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        network_feature_configs:
          description: 'A list of ids of network feature configurations.

            '
          example:
          - '12356'
          - '43829'
          items:
            type: string
          readOnly: true
          type: array
        network_service:
          description: The id of the network service to configure.
          type: string
        outer_vlan:
          description: 'Request a vlan from a set of ranges.

            A range is represented as a list of integers.

            The range has a max length of 2.


            A set of ranges is a list of lists.


            In case only one bound in the range is present,

            it is interpreted as the exact value. That means that `[23]` is

            equivalent to `[23, 23]`.


            To just let the platform choose for you, provide all

            possible ranges. `[ [0, 4096] ]`.

            '
          example:
          - - 0
            - 4096
          items:
            items:
              format: int32
              maximum: 4094
              minimum: 0
              type: integer
            type: array
          type: array
        purchase_order:
          default: ''
          description: 'Purchase Order ID which will be displayed on the invoice.

            '
          example: 'Project: DC Moon'
          maxLength: 80
          type: string
        type:
          example: closed_user_group
          type: string
      title: PartialClosedUserGroupNetworkServiceConfigRequest
      type: object
    closed-user-group-network-service-config-update:
      allOf:
      - $ref: '#/components/schemas/closed-user-group-network-service-config-update-partial'
      - required:
        - managing_customer
        - consuming_customer
        - outer_vlan
        - contacts
        - connection
        - type
        title: ClosedUserGroupNetworkServiceConfigUpdate
        type: object
    closed-user-group-network-service-config-update-partial:
      description: Closed User Group Network Service Update
      properties:
        capacity:
          description: 'The capacity of the service in Mbps. If set to Null,

            the maximum capacity will be used.

            That means, the service can consume up

            to the total bandwidth of the `connection`.


            Typically the service is charged based on the capacity.'
          minimum: 1
          nullable: true
          type: integer
        connection:
          description: 'The id of the connection to use for this service config. This

            associates the service to a LAG. All traffic comming in on the

            connection with the correct VLAN-ID will be transported to this

            service.'
          type: string
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        contacts:
          description: 'Polymorphic set of contacts. See the documentation

            on the specific `required_contact_types` on what

            contacts to provide.

            '
          example:
          - c-impl:123
          - c-noc:331
          items:
            type: string
          type: array
        contract_ref:
          description: 'A reference to a contract.

            '
          example: contract:31824
          maxLength: 128
          nullable: true
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        id:
          readOnly: true
          type: string
        inner_vlan:
          description: This is a VLAN ID.
          format: int32
          maximum: 4096
          minimum: 0
          nullable: true
          type: integer
        macs:
          items:
            type: string
          readOnly: true
          type: array
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        network_feature_configs:
          description: 'A list of ids of network feature configurations.

            '
          example:
          - '12356'
          - '43829'
          items:
            type: string
          readOnly: true
          type: array
        outer_vlan:
          description: 'Request a vlan from a set of ranges.

            A range is represented as a list of integers.

            The range has a max length of 2.


            A set of ranges is a list of lists.


            In case only one bound in the range is provided,

            it is interpreted as the exact value. `[23]` is

            equivalent to `[23, 23]`.


            To just let the platform choose for you, provide all

            possible ranges. `[ [0, 4096] ]`.

            '
          example:
          - - 0
            - 4096
          items:
            items:
              format: int32
              maximum: 4096
              minimum: 0
              type: integer
            type: array
          type: array
        purchase_order:
          default: ''
          description: 'Purchase Order ID which will be displayed on the invoice.

            '
          example: 'Project: DC Moon'
          maxLength: 80
          type: string
        type:
          example: closed_user_group
          type: string
      title: PartialClosedUserGroupNetworkServiceConfigUpdate
      type: object
    closed-user-group-network-service-partial:
      description: Closed User Group Network Service
      properties:
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        contacts:
          description: 'Polymorphic set of contacts. See the documentation

            on the specific `required_contact_types` on what

            contacts to provide.

            '
          example:
          - c-impl:123
          - c-noc:331
          items:
            type: string
          type: array
        contract_ref:
          description: 'A reference to a contract.

            '
          example: contract:31824
          maxLength: 128
          nullable: true
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        id:
          readOnly: true
          type: string
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        network_features:
          items:
            type: string
          readOnly: true
          type: array
        product:
          type: string
        purchase_order:
          default: ''
          description: 'Purchase Order ID which will be displayed on the invoice.

            '
          example: 'Project: DC Moon'
          maxLength: 80
          type: string
        required_contact_types:
          description: 'The configuration will require at least one of each of the

            specified contact types.

            They can be assigned in the `contacts` list property of the

            config.'
          items:
            type: string
          type: array
        type:
          example: closed_user_group
          type: string
      title: PartialClosedUserGroupNetworkService
      type: object
    cloud-network-product:
      allOf:
      - $ref: '#/components/schemas/cloud-network-product-partial'
      - required:
        - name
        - zone
        - handover_point
        - provider
        - type
        title: CloudNetworkProduct
        type: object
    cloud-network-product-partial:
      description: Cloud Network Product
      properties:
        handover_point:
          maxLength: 80
          type: string
        id:
          readOnly: true
          type: string
        name:
          description: Name of the product
          maxLength: 80
          type: string
        provider:
          type: string
        type:
          example: cloud
          type: string
        zone:
          maxLength: 80
          type: string
      title: PartialCloudNetworkProduct
      type: object
    cloud-network-service:
      allOf:
      - $ref: '#/components/schemas/cloud-network-service-partial'
      - required:
        - managing_customer
        - consuming_customer
        - contacts
        - product
        - required_contact_types
        - cloud_provider_name
        - type
        title: CloudNetworkService
        type: object
    cloud-network-service-config:
      allOf:
      - $ref: '#/components/schemas/cloud-network-service-config-partial'
      - required:
        - network_service
        - outer_vlan
        - managing_customer
        - consuming_customer
        - contacts
        - connection
        - cloud_key
        - type
        title: CloudNetworkServiceConfig
        type: object
    cloud-network-service-config-partial:
      description: Cloud Network Service Config
      properties:
        capacity:
          description: 'The capacity of the service in Mbps. If set to Null,

            the maximum capacity will be used.

            That means, the service can consume up

            to the total bandwidth of the `connection`.


            Typically the service is charged based on the capacity.'
          minimum: 1
          nullable: true
          type: integer
        cloud_key:
          maxLength: 512
          type: string
        connection:
          description: 'The id of the connection to use for this service config. This

            associates the service to a LAG. All traffic comming in on the

            connection with the correct VLAN-ID will be transported to this

            service.'
          type: string
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        contacts:
          description: 'Polymorphic set of contacts. See the documentation

            on the specific `required_contact_types` on what

            contacts to provide.

            '
          example:
          - c-impl:123
          - c-noc:331
          items:
            type: string
          type: array
        contract_ref:
          description: 'A reference to a contract.

            '
          example: contract:31824
          maxLength: 128
          nullable: true
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        id:
          readOnly: true
          type: string
        inner_vlan:
          description: This is a VLAN ID.
          format: int32
          maximum: 4096
          minimum: 0
          nullable: true
          type: integer
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        network_feature_configs:
          description: 'A list of ids of network feature configurations.

            '
          example:
          - '12356'
          - '43829'
          items:
            type: string
          readOnly: true
          type: array
        network_service:
          description: The id of the configured network service.
          type: string
        outer_vlan:
          description: 'A vlan id, where `0` is untagged.

            Any value > 0 will be the tagged vlan.

            '
          example: 300
          format: int32
          maximum: 4096
          minimum: 0
          type: integer
        purchase_order:
          default: ''
          description: 'Purchase Order ID which will be displayed on the invoice.

            '
          example: 'Project: DC Moon'
          maxLength: 80
          type: string
        state:
          enum:
          - requested
          - allocated
          - testing
          - production
          - decommission_requested
          - decommissioned
          - archived
          - error
          - operator
          - scheduled
          readOnly: true
          type: string
        status:
          items:
            $ref: '#/components/schemas/status'
          type: array
        type:
          example: cloud
          type: string
      title: PartialCloudNetworkServiceConfig
      type: object
    cloud-network-service-config-request:
      allOf:
      - $ref: '#/components/schemas/cloud-network-service-config-request-partial'
      - required:
        - managing_customer
        - consuming_customer
        - network_service
        - outer_vlan
        - contacts
        - connection
        - cloud_key
        - type
        title: CloudNetworkServiceConfigRequest
        type: object
    cloud-network-service-config-request-partial:
      description: Cloud Network Service Config Request
      properties:
        capacity:
          description: 'The capacity of the service in Mbps. If set to Null,

            the maximum capacity will be used.

            That means, the service can consume up

            to the total bandwidth of the `connection`.


            Typically the service is charged based on the capacity.'
          minimum: 1
          nullable: true
          type: integer
        cloud_key:
          maxLength: 512
          type: string
        connection:
          description: 'The id of the connection to use for this service config. This

            associates the service to a LAG. All traffic comming in on the

            connection with the correct VLAN-ID will be transported to this

            service.'
          type: string
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        contacts:
          description: 'Polymorphic set of contacts. See the documentation

            on the specific `required_contact_types` on what

            contacts to provide.

            '
          example:
          - c-impl:123
          - c-noc:331
          items:
            type: string
          type: array
        contract_ref:
          description: 'A reference to a contract.

            '
          example: contract:31824
          maxLength: 128
          nullable: true
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        id:
          readOnly: true
          type: string
        inner_vlan:
          description: This is a VLAN ID.
          format: int32
          maximum: 4096
          minimum: 0
          nullable: true
          type: integer
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        network_feature_configs:
          description: 'A list of ids of network feature configurations.

            '
          example:
          - '12356'
          - '43829'
          items:
            type: string
          readOnly: true
          type: array
        network_service:
          description: The id of the network service to configure.
          type: string
        outer_vlan:
          description: 'Request a vlan from a set of ranges.

            A range is represented as a list of integers.

            The range has a max length of 2.


            A set of ranges is a list of lists.


            In case only one bound in the range is present,

            it is interpreted as the exact value. That means that `[23]` is

            equivalent to `[23, 23]`.


            To just let the platform choose for you, provide all

            possible ranges. `[ [0, 4096] ]`.

            '
          example:
          - - 0
            - 4096
          items:
            items:
              format: int32
              maximum: 4094
              minimum: 0
              type: integer
            type: array
          type: array
        purchase_order:
          default: ''
          description: 'Purchase Order ID which will be displayed on the invoice.

            '
          example: 'Project: DC Moon'
          maxLength: 80
          type: string
        type:
          example: cloud
          type: string
      title: PartialCloudNetworkServiceConfigRequest
      type: object
    cloud-network-service-config-update:
      allOf:
      - $ref: '#/components/schemas/cloud-network-service-config-update-partial'
      - required:
        - managing_customer
        - consuming_customer
        - outer_vlan
        - contacts
        - connection
        - cloud_key
        - type
        title: CloudNetworkServiceConfigUpdate
        type: object
    cloud-network-service-config-update-partial:
      description: Cloud Network Service Config Update
      properties:
        capacity:
          description: 'The capacity of the service in Mbps. If set to Null,

            the maximum capacity will be used.

            That means, the service can consume up

            to the total bandwidth of the `connection`.


            Typically the service is charged based on the capacity.'
          minimum: 1
          nullable: true
          type: integer
        cloud_key:
          maxLength: 512
          type: string
        connection:
          description: 'The id of the connection to use for this service config. This

            associates the service to a LAG. All traffic comming in on the

            connection with the correct VLAN-ID will be transported to this

            service.'
          type: string
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        contacts:
          description: 'Polymorphic set of contacts. See the documentation

            on the specific `required_contact_types` on what

            contacts to provide.

            '
          example:
          - c-impl:123
          - c-noc:331
          items:
            type: string
          type: array
        contract_ref:
          description: 'A reference to a contract.

            '
          example: contract:31824
          maxLength: 128
          nullable: true
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        id:
          readOnly: true
          type: string
        inner_vlan:
          description: This is a VLAN ID.
          format: int32
          maximum: 4096
          minimum: 0
          nullable: true
          type: integer
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        network_feature_configs:
          description: 'A list of ids of network feature configurations.

            '
          example:
          - '12356'
          - '43829'
          items:
            type: string
          readOnly: true
          type: array
        outer_vlan:
          description: 'Request a vlan from a set of ranges.

            A range is represented as a list of integers.

            The range has a max length of 2.


            A set of ranges is a list of lists.


            In case only one bound in the range is provided,

            it is interpreted as the exact value. `[23]` is

            equivalent to `[23, 23]`.


            To just let the platform choose for you, provide all

            possible ranges. `[ [0, 4096] ]`.

            '
          example:
          - - 0
            - 4096
          items:
            items:
              format: int32
              maximum: 4096
              minimum: 0
              type: integer
            type: array
          type: array
        purchase_order:
          default: ''
          description: 'Purchase Order ID which will be displayed on the invoice.

            '
          example: 'Project: DC Moon'
          maxLength: 80
          type: string
        type:
          example: cloud
          type: string
      title: PartialCloudNetworkServiceConfigUpdate
      type: object
    cloud-network-service-partial:
      description: Cloud Network Service
      properties:
        cloud_provider_name:
          type: string
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        contacts:
          description: 'Polymorphic set of contacts. See the documentation

            on the specific `required_contact_types` on what

            contacts to provide.

            '
          example:
          - c-impl:123
          - c-noc:331
          items:
            type: string
          type: array
        contract_ref:
          description: 'A reference to a contract.

            '
          example: contract:31824
          maxLength: 128
          nullable: true
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        id:
          readOnly: true
          type: string
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        network_features:
          items:
            type: string
          readOnly: true
          type: array
        product:
          type: string
        purchase_order:
          default: ''
          description: 'Purchase Order ID which will be displayed on the invoice.

            '
          example: 'Project: DC Moon'
          maxLength: 80
          type: string
        required_contact_types:
          description: 'The configuration will require at least one of each of the

            specified contact types.

            They can be assigned in the `contacts` list property of the

            config.'
          items:
            type: string
          type: array
        type:
          example: cloud
          type: string
      title: PartialCloudNetworkService
      type: object
    cloud-provider:
      allOf:
      - $ref: '#/components/schemas/cloud-provider-partial'
      - required:
        - name
        title: CloudProvider
        type: object
    cloud-provider-partial:
      description: Cloud Provider
      properties:
        id:
          readOnly: true
          type: string
        name:
          maxLength: 80
          type: string
      title: PartialCloudProvider
      type: object
    connection:
      allOf:
      - $ref: '#/components/schemas/connection-partial'
      - required:
        - managing_customer
        - consuming_customer
        - contacts
        - mode
        title: Connection
        type: object
    connection-partial:
      description: Connection
      properties:
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        contacts:
          description: 'Polymorphic set of contacts. See the documentation

            on the specific `required_contact_types` on what

            contacts to provide.

            '
          example:
          - c-impl:123
          - c-noc:331
          items:
            type: string
          type: array
        contract_ref:
          description: 'A reference to a contract.

            '
          example: contract:31824
          maxLength: 128
          nullable: true
          type: string
        demarcs:
          description: 'Reference to the demarcs belonging to this connection. Typically

            all demarcs within one connection are distributed over the same

            device.

            '
          example:
          - ID23
          - '42'
          - '5'
          items:
            type: string
          type: array
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        id:
          readOnly: true
          type: string
        lacp_timeout:
          description: 'This sets the LACP Timeout mode. Both ends of the connections
            need

            to be configured the same.

            '
          enum:
          - slow
          - fast
          example: slow
          nullable: true
          type: string
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        mode:
          description: 'Sets the mode of the connection. The mode can be:


            - `lag_lacp`: connection is build as a LAG with LACP enabled

            - `lag_static`: connection is build as LAG with static configuration

            - `flex_ethernet`: connect is build as a FlexEthernet channel

            - `standalone`: only one demarc is allowed in this connection without

            any bundling.

            '
          enum:
          - lag_lacp
          - lag_static
          - flex_ethernet
          - standalone
          example: lag_lacp
          type: string
        name:
          maxLength: 80
          type: string
        purchase_order:
          default: ''
          description: 'Purchase Order ID which will be displayed on the invoice.

            '
          example: 'Project: DC Moon'
          maxLength: 80
          type: string
        speed:
          description: 'Shows the total bandwidth of the connection in Mbit/s.

            '
          example: 20000
          minimum: 0
          nullable: true
          type: integer
        state:
          enum:
          - requested
          - allocated
          - testing
          - production
          - decommission_requested
          - decommissioned
          - archived
          - error
          - operator
          - scheduled
          readOnly: true
          type: string
        status:
          items:
            $ref: '#/components/schemas/status'
          type: array
      title: PartialConnection
      type: object
    connection-request:
      allOf:
      - $ref: '#/components/schemas/connection-request-partial'
      - required:
        - managing_customer
        - consuming_customer
        - contacts
        - mode
        title: ConnectionRequest
        type: object
    connection-request-partial:
      description: Connection Request
      properties:
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        contacts:
          description: 'Polymorphic set of contacts. See the documentation

            on the specific `required_contact_types` on what

            contacts to provide.

            '
          example:
          - c-impl:123
          - c-noc:331
          items:
            type: string
          type: array
        contract_ref:
          description: 'A reference to a contract.

            '
          example: contract:31824
          maxLength: 128
          nullable: true
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        id:
          readOnly: true
          type: string
        lacp_timeout:
          description: 'This sets the LACP Timeout mode. Both ends of the connections
            need

            to be configured the same.

            '
          enum:
          - slow
          - fast
          example: slow
          nullable: true
          type: string
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        mode:
          description: 'Sets the mode of the connection. The mode can be:


            - `lag_lacp`: connection is build as a LAG with LACP enabled

            - `lag_static`: connection is build as LAG with static configuration

            - `flex_ethernet`: connect is build as a FlexEthernet channel

            - `standalone`: only one demarc is allowed in this connection without

            any bundling.

            '
          enum:
          - lag_lacp
          - lag_static
          - flex_ethernet
          - standalone
          example: lag_lacp
          type: string
        purchase_order:
          default: ''
          description: 'Purchase Order ID which will be displayed on the invoice.

            '
          example: 'Project: DC Moon'
          maxLength: 80
          type: string
        speed:
          description: 'Shows the total bandwidth of the connection in Mbit/s.

            '
          example: 20000
          minimum: 0
          nullable: true
          type: integer
      title: PartialConnectionRequest
      type: object
    connection-update:
      allOf:
      - $ref: '#/components/schemas/connection-update-partial'
      - required:
        - managing_customer
        - consuming_customer
        - contacts
        - mode
        title: ConnectionUpdate
        type: object
    connection-update-partial:
      description: Connection Update
      properties:
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        contacts:
          description: 'Polymorphic set of contacts. See the documentation

            on the specific `required_contact_types` on what

            contacts to provide.

            '
          example:
          - c-impl:123
          - c-noc:331
          items:
            type: string
          type: array
        contract_ref:
          description: 'A reference to a contract.

            '
          example: contract:31824
          maxLength: 128
          nullable: true
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        id:
          readOnly: true
          type: string
        lacp_timeout:
          description: 'This sets the LACP Timeout mode. Both ends of the connections
            need

            to be configured the same.

            '
          enum:
          - slow
          - fast
          example: slow
          nullable: true
          type: string
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        mode:
          description: 'Sets the mode of the connection. The mode can be:


            - `lag_lacp`: connection is build as a LAG with LACP enabled

            - `lag_static`: connection is build as LAG with static configuration

            - `flex_ethernet`: connect is build as a FlexEthernet channel

            - `standalone`: only one demarc is allowed in this connection without

            any bundling.

            '
          enum:
          - lag_lacp
          - lag_static
          - flex_ethernet
          - standalone
          example: lag_lacp
          type: string
        purchase_order:
          default: ''
          description: 'Purchase Order ID which will be displayed on the invoice.

            '
          example: 'Project: DC Moon'
          maxLength: 80
          type: string
        speed:
          description: 'Shows the total bandwidth of the connection in Mbit/s.

            '
          example: 20000
          minimum: 0
          nullable: true
          type: integer
      title: PartialConnectionUpdate
      type: object
    contact:
      description: Polymorphic Contact
      discriminator:
        mapping:
          billing: '#/components/schemas/billing-contact'
          implementation: '#/components/schemas/implementation-contact'
          legal: '#/components/schemas/legal-contact'
          noc: '#/components/schemas/noc-contact'
          peering: '#/components/schemas/peering-contact'
        propertyName: type
      oneOf:
      - $ref: '#/components/schemas/legal-contact'
      - $ref: '#/components/schemas/noc-contact'
      - $ref: '#/components/schemas/peering-contact'
      - $ref: '#/components/schemas/implementation-contact'
      - $ref: '#/components/schemas/billing-contact'
      title: Contact
    contact-partial:
      description: Polymorphic Contact
      discriminator:
        mapping:
          billing: '#/components/schemas/billing-contact-partial'
          implementation: '#/components/schemas/implementation-contact-partial'
          legal: '#/components/schemas/legal-contact-partial'
          noc: '#/components/schemas/noc-contact-partial'
          peering: '#/components/schemas/peering-contact-partial'
        propertyName: type
      oneOf:
      - $ref: '#/components/schemas/legal-contact-partial'
      - $ref: '#/components/schemas/noc-contact-partial'
      - $ref: '#/components/schemas/peering-contact-partial'
      - $ref: '#/components/schemas/implementation-contact-partial'
      - $ref: '#/components/schemas/billing-contact-partial'
      title: Contact (partial)
    contactable:
      allOf:
      - $ref: '#/components/schemas/contactable-partial'
      - required:
        - contacts
        title: Contactable
        type: object
    contactable-partial:
      description: Contactable
      properties:
        contacts:
          description: 'Polymorphic set of contacts. See the documentation

            on the specific `required_contact_types` on what

            contacts to provide.

            '
          example:
          - c-impl:123
          - c-noc:331
          items:
            type: string
          type: array
      title: PartialContactable
      type: object
    customer:
      allOf:
      - $ref: '#/components/schemas/customer-partial'
      - required:
        - name
        title: Customer
        type: object
    customer-input:
      allOf:
      - $ref: '#/components/schemas/customer-input-partial'
      - required:
        - name
        title: CustomerInput
        type: object
    customer-input-partial:
      description: Customer Request
      properties:
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 80
          nullable: true
          type: string
        id:
          maxLength: 80
          readOnly: true
          type: string
        name:
          description: 'Name of customer, how it gets represented

            in all customer lists.

            '
          example: Moonpeer Inc.
          maxLength: 80
          type: string
        parent:
          description: 'The `id` of a parent customer. Can be used for creating

            a customer hierachy.

            '
          example: IX:Customer:231
          nullable: true
          type: string
      title: PartialCustomerInput
      type: object
    customer-partial:
      description: Customer
      properties:
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 80
          nullable: true
          type: string
        id:
          maxLength: 80
          readOnly: true
          type: string
        name:
          description: 'Name of customer, how it gets represented

            in all customer lists.

            '
          example: Moonpeer Inc.
          maxLength: 80
          type: string
        parent:
          description: 'The `id` of a parent customer. Can be used for creating

            a customer hierachy.

            '
          example: IX:Customer:231
          nullable: true
          type: string
        state:
          enum:
          - requested
          - allocated
          - testing
          - production
          - decommission_requested
          - decommissioned
          - archived
          - error
          - operator
          - scheduled
          readOnly: true
          type: string
        status:
          items:
            $ref: '#/components/schemas/status'
          type: array
      title: PartialCustomer
      type: object
    customer-update:
      allOf:
      - $ref: '#/components/schemas/customer-update-partial'
      - required:
        - name
        title: CustomerUpdate
        type: object
    customer-update-partial:
      description: Customer Update Request
      properties:
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 80
          nullable: true
          type: string
        id:
          maxLength: 80
          readOnly: true
          type: string
        name:
          description: 'Name of customer, how it gets represented

            in all customer lists.

            '
          example: Moonpeer Inc.
          maxLength: 80
          type: string
        parent:
          description: 'The `id` of a parent customer. Can be used for creating

            a customer hierachy.

            '
          example: IX:Customer:231
          nullable: true
          type: string
      title: PartialCustomerUpdate
      type: object
    demarcation-point:
      allOf:
      - $ref: '#/components/schemas/demarcation-point-partial'
      - required:
        - managing_customer
        - consuming_customer
        - contacts
        - media_type
        - pop
        title: DemarcationPoint
        type: object
    demarcation-point-partial:
      description: Demarc
      properties:
        connection:
          nullable: true
          type: string
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        contacts:
          description: 'Polymorphic set of contacts. See the documentation

            on the specific `required_contact_types` on what

            contacts to provide.

            '
          example:
          - c-impl:123
          - c-noc:331
          items:
            type: string
          type: array
        contract_ref:
          description: 'A reference to a contract.

            '
          example: contract:31824
          maxLength: 128
          nullable: true
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        id:
          readOnly: true
          type: string
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        media_type:
          description: 'The media type of the interface.

            See the device''s capabilities to see what types

            are available.

            '
          example: 10GBASE-LR
          maxLength: 20
          type: string
        name:
          default: ''
          description: Name of the demarcation point (set by the IXP)
          maxLength: 80
          readOnly: true
          type: string
        pop:
          type: string
        purchase_order:
          default: ''
          description: 'Purchase Order ID which will be displayed on the invoice.

            '
          example: 'Project: DC Moon'
          maxLength: 80
          type: string
        speed:
          minimum: 0
          nullable: true
          readOnly: true
          type: integer
        state:
          enum:
          - requested
          - allocated
          - testing
          - production
          - decommission_requested
          - decommissioned
          - archived
          - error
          - operator
          - scheduled
          readOnly: true
          type: string
        status:
          items:
            $ref: '#/components/schemas/status'
          type: array
      title: PartialDemarcationPoint
      type: object
    demarcation-point-request:
      allOf:
      - $ref: '#/components/schemas/demarcation-point-request-partial'
      - required:
        - managing_customer
        - consuming_customer
        - contacts
        - pop
        - media_type
        title: DemarcationPointRequest
        type: object
    demarcation-point-request-partial:
      description: Demarc Request
      properties:
        connection:
          nullable: true
          type: string
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        contacts:
          description: 'Polymorphic set of contacts. See the documentation

            on the specific `required_contact_types` on what

            contacts to provide.

            '
          example:
          - c-impl:123
          - c-noc:331
          items:
            type: string
          type: array
        contract_ref:
          description: 'A reference to a contract.

            '
          example: contract:31824
          maxLength: 128
          nullable: true
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        id:
          readOnly: true
          type: string
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        media_type:
          description: 'The media type of the interface.

            See the device''s capabilities to see what types

            are available.

            '
          example: 10GBASE-LR
          maxLength: 20
          type: string
        pop:
          type: string
        purchase_order:
          default: ''
          description: 'Purchase Order ID which will be displayed on the invoice.

            '
          example: 'Project: DC Moon'
          maxLength: 80
          type: string
        speed:
          minimum: 0
          nullable: true
          readOnly: true
          type: integer
      title: PartialDemarcationPointRequest
      type: object
    demarcation-point-update:
      allOf:
      - $ref: '#/components/schemas/demarcation-point-update-partial'
      - required:
        - managing_customer
        - consuming_customer
        - contacts
        title: DemarcationPointUpdate
        type: object
    demarcation-point-update-partial:
      description: Demarc Update
      properties:
        connection:
          nullable: true
          type: string
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        contacts:
          description: 'Polymorphic set of contacts. See the documentation

            on the specific `required_contact_types` on what

            contacts to provide.

            '
          example:
          - c-impl:123
          - c-noc:331
          items:
            type: string
          type: array
        contract_ref:
          description: 'A reference to a contract.

            '
          example: contract:31824
          maxLength: 128
          nullable: true
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        id:
          readOnly: true
          type: string
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        purchase_order:
          default: ''
          description: 'Purchase Order ID which will be displayed on the invoice.

            '
          example: 'Project: DC Moon'
          maxLength: 80
          type: string
        speed:
          minimum: 0
          nullable: true
          readOnly: true
          type: integer
      title: PartialDemarcationPointUpdate
      type: object
    device:
      allOf:
      - $ref: '#/components/schemas/device-partial'
      - required:
        - name
        title: Device
        type: object
    device-capability:
      allOf:
      - $ref: '#/components/schemas/device-capability-partial'
      - title: DeviceCapability
        type: object
    device-capability-partial:
      description: Device Capability
      properties:
        availability:
          description: 'Count of available ports on device

            '
          example: 23
          format: int32
          maximum: 2147483647
          minimum: 0
          readOnly: true
          type: integer
        max_lag:
          description: Maximum count of ports which can be bundled to a max_lag
          example: 8
          format: int32
          maximum: 32767
          minimum: 0
          readOnly: true
          type: integer
        media_type:
          description: 'The media type of the port (e.g. 1000BASE-LX, 10GBASE-LR,
            ...)

            '
          example: 1000BASE-LX
          maxLength: 20
          readOnly: true
          type: string
        qinq_capable:
          description: 'Ports supports inner vlan tag (QinQ)

            '
          example: true
          readOnly: true
          type: boolean
        speed:
          description: 'Speed of port in Mbit/s

            '
          example: 1000
          readOnly: true
          type: integer
      title: PartialDeviceCapability
      type: object
    device-connection:
      allOf:
      - $ref: '#/components/schemas/device-connection-partial'
      - required:
        - max_capacity
        - device
        - connected_device
        title: DeviceConnection
        type: object
    device-connection-partial:
      description: Device Connection
      properties:
        connected_device:
          type: string
        device:
          type: string
        id:
          readOnly: true
          type: string
        max_capacity:
          format: int32
          maximum: 2147483647
          minimum: 0
          type: integer
      title: PartialDeviceConnection
      type: object
    device-partial:
      description: Device
      properties:
        capabilities:
          items:
            $ref: '#/components/schemas/device-capability'
          type: array
        id:
          readOnly: true
          type: string
        name:
          description: 'Name of the device

            '
          example: edge2.moon.space-ix.net
          maxLength: 180
          type: string
        physical_facility:
          description: 'Identifier of the facilitiy where the device

            is physically based.'
          readOnly: true
          type: string
      title: PartialDevice
      type: object
    e-line-network-product:
      allOf:
      - $ref: '#/components/schemas/e-line-network-product-partial'
      - required:
        - name
        - type
        title: ELineNetworkProduct
        type: object
    e-line-network-product-partial:
      description: E-Line Network Product
      properties:
        id:
          readOnly: true
          type: string
        name:
          description: Name of the product
          maxLength: 80
          type: string
        type:
          example: eline
          type: string
      title: PartialELineNetworkProduct
      type: object
    e-line-network-service:
      allOf:
      - $ref: '#/components/schemas/e-line-network-service-partial'
      - required:
        - managing_customer
        - consuming_customer
        - contacts
        - product
        - required_contact_types
        - type
        title: ELineNetworkService
        type: object
    e-line-network-service-config:
      allOf:
      - $ref: '#/components/schemas/e-line-network-service-config-partial'
      - required:
        - network_service
        - outer_vlan
        - managing_customer
        - consuming_customer
        - contacts
        - connection
        - type
        title: ELineNetworkServiceConfig
        type: object
    e-line-network-service-config-partial:
      description: ELine Network Service Config
      properties:
        capacity:
          description: 'The capacity of the service in Mbps. If set to Null,

            the maximum capacity will be used.

            That means, the service can consume up

            to the total bandwidth of the `connection`.


            Typically the service is charged based on the capacity.'
          minimum: 1
          nullable: true
          type: integer
        connection:
          description: 'The id of the connection to use for this service config. This

            associates the service to a LAG. All traffic comming in on the

            connection with the correct VLAN-ID will be transported to this

            service.'
          type: string
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        contacts:
          description: 'Polymorphic set of contacts. See the documentation

            on the specific `required_contact_types` on what

            contacts to provide.

            '
          example:
          - c-impl:123
          - c-noc:331
          items:
            type: string
          type: array
        contract_ref:
          description: 'A reference to a contract.

            '
          example: contract:31824
          maxLength: 128
          nullable: true
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        id:
          readOnly: true
          type: string
        inner_vlan:
          description: This is a VLAN ID.
          format: int32
          maximum: 4096
          minimum: 0
          nullable: true
          type: integer
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        network_feature_configs:
          description: 'A list of ids of network feature configurations.

            '
          example:
          - '12356'
          - '43829'
          items:
            type: string
          readOnly: true
          type: array
        network_service:
          description: The id of the configured network service.
          type: string
        outer_vlan:
          description: 'A vlan id, where `0` is untagged.

            Any value > 0 will be the tagged vlan.

            '
          example: 300
          format: int32
          maximum: 4096
          minimum: 0
          type: integer
        purchase_order:
          default: ''
          description: 'Purchase Order ID which will be displayed on the invoice.

            '
          example: 'Project: DC Moon'
          maxLength: 80
          type: string
        state:
          enum:
          - requested
          - allocated
          - testing
          - production
          - decommission_requested
          - decommissioned
          - archived
          - error
          - operator
          - scheduled
          readOnly: true
          type: string
        status:
          items:
            $ref: '#/components/schemas/status'
          type: array
        type:
          example: eline
          type: string
      title: PartialELineNetworkServiceConfig
      type: object
    e-line-network-service-config-request:
      allOf:
      - $ref: '#/components/schemas/e-line-network-service-config-request-partial'
      - required:
        - managing_customer
        - consuming_customer
        - network_service
        - outer_vlan
        - contacts
        - connection
        - type
        title: ELineNetworkServiceConfigRequest
        type: object
    e-line-network-service-config-request-partial:
      description: ELine Network Service Config Request
      properties:
        capacity:
          description: 'The capacity of the service in Mbps. If set to Null,

            the maximum capacity will be used.

            That means, the service can consume up

            to the total bandwidth of the `connection`.


            Typically the service is charged based on the capacity.'
          minimum: 1
          nullable: true
          type: integer
        connection:
          description: 'The id of the connection to use for this service config. This

            associates the service to a LAG. All traffic comming in on the

            connection with the correct VLAN-ID will be transported to this

            service.'
          type: string
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        contacts:
          description: 'Polymorphic set of contacts. See the documentation

            on the specific `required_contact_types` on what

            contacts to provide.

            '
          example:
          - c-impl:123
          - c-noc:331
          items:
            type: string
          type: array
        contract_ref:
          description: 'A reference to a contract.

            '
          example: contract:31824
          maxLength: 128
          nullable: true
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        id:
          readOnly: true
          type: string
        inner_vlan:
          description: This is a VLAN ID.
          format: int32
          maximum: 4096
          minimum: 0
          nullable: true
          type: integer
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        network_feature_configs:
          description: 'A list of ids of network feature configurations.

            '
          example:
          - '12356'
          - '43829'
          items:
            type: string
          readOnly: true
          type: array
        network_service:
          description: The id of the network service to configure.
          type: string
        outer_vlan:
          description: 'Request a vlan from a set of ranges.

            A range is represented as a list of integers.

            The range has a max length of 2.


            A set of ranges is a list of lists.


            In case only one bound in the range is present,

            it is interpreted as the exact value. That means that `[23]` is

            equivalent to `[23, 23]`.


            To just let the platform choose for you, provide all

            possible ranges. `[ [0, 4096] ]`.

            '
          example:
          - - 0
            - 4096
          items:
            items:
              format: int32
              maximum: 4094
              minimum: 0
              type: integer
            type: array
          type: array
        purchase_order:
          default: ''
          description: 'Purchase Order ID which will be displayed on the invoice.

            '
          example: 'Project: DC Moon'
          maxLength: 80
          type: string
        type:
          example: eline
          type: string
      title: PartialELineNetworkServiceConfigRequest
      type: object
    e-line-network-service-config-update:
      allOf:
      - $ref: '#/components/schemas/e-line-network-service-config-update-partial'
      - required:
        - managing_customer
        - consuming_customer
        - outer_vlan
        - contacts
        - connection
        - type
        title: ELineNetworkServiceConfigUpdate
        type: object
    e-line-network-service-config-update-partial:
      description: ELine Network Service Config Update
      properties:
        capacity:
          description: 'The capacity of the service in Mbps. If set to Null,

            the maximum capacity will be used.

            That means, the service can consume up

            to the total bandwidth of the `connection`.


            Typically the service is charged based on the capacity.'
          minimum: 1
          nullable: true
          type: integer
        connection:
          description: 'The id of the connection to use for this service config. This

            associates the service to a LAG. All traffic comming in on the

            connection with the correct VLAN-ID will be transported to this

            service.'
          type: string
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        contacts:
          description: 'Polymorphic set of contacts. See the documentation

            on the specific `required_contact_types` on what

            contacts to provide.

            '
          example:
          - c-impl:123
          - c-noc:331
          items:
            type: string
          type: array
        contract_ref:
          description: 'A reference to a contract.

            '
          example: contract:31824
          maxLength: 128
          nullable: true
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        id:
          readOnly: true
          type: string
        inner_vlan:
          description: This is a VLAN ID.
          format: int32
          maximum: 4096
          minimum: 0
          nullable: true
          type: integer
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        network_feature_configs:
          description: 'A list of ids of network feature configurations.

            '
          example:
          - '12356'
          - '43829'
          items:
            type: string
          readOnly: true
          type: array
        outer_vlan:
          description: 'Request a vlan from a set of ranges.

            A range is represented as a list of integers.

            The range has a max length of 2.


            A set of ranges is a list of lists.


            In case only one bound in the range is provided,

            it is interpreted as the exact value. `[23]` is

            equivalent to `[23, 23]`.


            To just let the platform choose for you, provide all

            possible ranges. `[ [0, 4096] ]`.

            '
          example:
          - - 0
            - 4096
          items:
            items:
              format: int32
              maximum: 4096
              minimum: 0
              type: integer
            type: array
          type: array
        purchase_order:
          default: ''
          description: 'Purchase Order ID which will be displayed on the invoice.

            '
          example: 'Project: DC Moon'
          maxLength: 80
          type: string
        type:
          example: eline
          type: string
      title: PartialELineNetworkServiceConfigUpdate
      type: object
    e-line-network-service-partial:
      description: E-Line Network Service
      properties:
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        contacts:
          description: 'Polymorphic set of contacts. See the documentation

            on the specific `required_contact_types` on what

            contacts to provide.

            '
          example:
          - c-impl:123
          - c-noc:331
          items:
            type: string
          type: array
        contract_ref:
          description: 'A reference to a contract.

            '
          example: contract:31824
          maxLength: 128
          nullable: true
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        id:
          readOnly: true
          type: string
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        network_features:
          items:
            type: string
          readOnly: true
          type: array
        product:
          type: string
        purchase_order:
          default: ''
          description: 'Purchase Order ID which will be displayed on the invoice.

            '
          example: 'Project: DC Moon'
          maxLength: 80
          type: string
        required_contact_types:
          description: 'The configuration will require at least one of each of the

            specified contact types.

            They can be assigned in the `contacts` list property of the

            config.'
          items:
            type: string
          type: array
        type:
          example: eline
          type: string
      title: PartialELineNetworkService
      type: object
    event:
      allOf:
      - $ref: '#/components/schemas/event-partial'
      - required:
        - serial
        - type
        - payload
        - timestamp
        title: Event
        type: object
    event-partial:
      description: Event
      properties:
        customer:
          readOnly: true
          type: string
        payload:
          type: object
        serial:
          type: integer
        timestamp:
          format: date-time
          type: string
        type:
          type: string
      title: PartialEvent
      type: object
    exchange-lan-network-product:
      allOf:
      - $ref: '#/components/schemas/exchange-lan-network-product-partial'
      - required:
        - name
        - type
        title: ExchangeLanNetworkProduct
        type: object
    exchange-lan-network-product-partial:
      description: Exchange Lan Network Product
      properties:
        id:
          readOnly: true
          type: string
        metro_area:
          description: 'The metro area the product is available

            '
          example: MUC
          maxLength: 3
          nullable: true
          type: string
        name:
          description: Name of the product
          maxLength: 80
          type: string
        type:
          example: exchange_lan
          type: string
      title: PartialExchangeLanNetworkProduct
      type: object
    exchange-lan-network-service:
      allOf:
      - $ref: '#/components/schemas/exchange-lan-network-service-partial'
      - required:
        - managing_customer
        - consuming_customer
        - contacts
        - product
        - required_contact_types
        - name
        - metro_area
        - type
        title: ExchangeLanNetworkService
        type: object
    exchange-lan-network-service-config:
      allOf:
      - $ref: '#/components/schemas/exchange-lan-network-service-config-partial'
      - required:
        - network_service
        - outer_vlan
        - managing_customer
        - consuming_customer
        - contacts
        - connection
        - asns
        - type
        title: ExchangeLanNetworkServiceConfig
        type: object
    exchange-lan-network-service-config-partial:
      description: Exchange Lan Network Service Config
      properties:
        asns:
          items:
            format: int64
            maximum: 4294967295
            minimum: 0
            type: integer
          type: array
        capacity:
          description: 'The capacity of the service in Mbps. If set to Null,

            the maximum capacity will be used.

            That means, the service can consume up

            to the total bandwidth of the `connection`.


            Typically the service is charged based on the capacity.'
          minimum: 1
          nullable: true
          type: integer
        connection:
          description: 'The id of the connection to use for this service config. This

            associates the service to a LAG. All traffic comming in on the

            connection with the correct VLAN-ID will be transported to this

            service.'
          type: string
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        contacts:
          description: 'Polymorphic set of contacts. See the documentation

            on the specific `required_contact_types` on what

            contacts to provide.

            '
          example:
          - c-impl:123
          - c-noc:331
          items:
            type: string
          type: array
        contract_ref:
          description: 'A reference to a contract.

            '
          example: contract:31824
          maxLength: 128
          nullable: true
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        id:
          readOnly: true
          type: string
        inner_vlan:
          description: This is a VLAN ID.
          format: int32
          maximum: 4096
          minimum: 0
          nullable: true
          type: integer
        ips:
          items:
            type: string
          readOnly: true
          type: array
        macs:
          items:
            type: string
          type: array
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        network_feature_configs:
          description: 'A list of ids of network feature configurations.

            '
          example:
          - '12356'
          - '43829'
          items:
            type: string
          readOnly: true
          type: array
        network_service:
          description: The id of the configured network service.
          type: string
        outer_vlan:
          description: 'A vlan id, where `0` is untagged.

            Any value > 0 will be the tagged vlan.

            '
          example: 300
          format: int32
          maximum: 4096
          minimum: 0
          type: integer
        purchase_order:
          default: ''
          description: 'Purchase Order ID which will be displayed on the invoice.

            '
          example: 'Project: DC Moon'
          maxLength: 80
          type: string
        state:
          enum:
          - requested
          - allocated
          - testing
          - production
          - decommission_requested
          - decommissioned
          - archived
          - error
          - operator
          - scheduled
          readOnly: true
          type: string
        status:
          items:
            $ref: '#/components/schemas/status'
          type: array
        type:
          example: exchange_lan
          type: string
      title: PartialExchangeLanNetworkServiceConfig
      type: object
    exchange-lan-network-service-config-request:
      allOf:
      - $ref: '#/components/schemas/exchange-lan-network-service-config-request-partial'
      - required:
        - managing_customer
        - consuming_customer
        - network_service
        - outer_vlan
        - contacts
        - connection
        - asns
        - type
        title: ExchangeLanNetworkServiceConfigRequest
        type: object
    exchange-lan-network-service-config-request-partial:
      description: Exchange Lan Network Service Config Request
      properties:
        asns:
          items:
            format: int64
            maximum: 4294967295
            minimum: 0
            type: integer
          type: array
        capacity:
          description: 'The capacity of the service in Mbps. If set to Null,

            the maximum capacity will be used.

            That means, the service can consume up

            to the total bandwidth of the `connection`.


            Typically the service is charged based on the capacity.'
          minimum: 1
          nullable: true
          type: integer
        connection:
          description: 'The id of the connection to use for this service config. This

            associates the service to a LAG. All traffic comming in on the

            connection with the correct VLAN-ID will be transported to this

            service.'
          type: string
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        contacts:
          description: 'Polymorphic set of contacts. See the documentation

            on the specific `required_contact_types` on what

            contacts to provide.

            '
          example:
          - c-impl:123
          - c-noc:331
          items:
            type: string
          type: array
        contract_ref:
          description: 'A reference to a contract.

            '
          example: contract:31824
          maxLength: 128
          nullable: true
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        id:
          readOnly: true
          type: string
        inner_vlan:
          description: This is a VLAN ID.
          format: int32
          maximum: 4096
          minimum: 0
          nullable: true
          type: integer
        ips:
          items:
            type: string
          readOnly: true
          type: array
        macs:
          items:
            type: string
          type: array
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        network_feature_configs:
          description: 'A list of ids of network feature configurations.

            '
          example:
          - '12356'
          - '43829'
          items:
            type: string
          readOnly: true
          type: array
        network_service:
          description: The id of the network service to configure.
          type: string
        outer_vlan:
          description: 'Request a vlan from a set of ranges.

            A range is represented as a list of integers.

            The range has a max length of 2.


            A set of ranges is a list of lists.


            In case only one bound in the range is present,

            it is interpreted as the exact value. That means that `[23]` is

            equivalent to `[23, 23]`.


            To just let the platform choose for you, provide all

            possible ranges. `[ [0, 4096] ]`.

            '
          example:
          - - 0
            - 4096
          items:
            items:
              format: int32
              maximum: 4094
              minimum: 0
              type: integer
            type: array
          type: array
        purchase_order:
          default: ''
          description: 'Purchase Order ID which will be displayed on the invoice.

            '
          example: 'Project: DC Moon'
          maxLength: 80
          type: string
        type:
          example: exchange_lan
          type: string
      title: PartialExchangeLanNetworkServiceConfigRequest
      type: object
    exchange-lan-network-service-config-update:
      allOf:
      - $ref: '#/components/schemas/exchange-lan-network-service-config-update-partial'
      - required:
        - managing_customer
        - consuming_customer
        - outer_vlan
        - contacts
        - connection
        - asns
        - type
        title: ExchangeLanNetworkServiceConfigUpdate
        type: object
    exchange-lan-network-service-config-update-partial:
      description: Exchange Lan Network Service Config Update
      properties:
        asns:
          items:
            format: int64
            maximum: 4294967295
            minimum: 0
            type: integer
          type: array
        capacity:
          description: 'The capacity of the service in Mbps. If set to Null,

            the maximum capacity will be used.

            That means, the service can consume up

            to the total bandwidth of the `connection`.


            Typically the service is charged based on the capacity.'
          minimum: 1
          nullable: true
          type: integer
        connection:
          description: 'The id of the connection to use for this service config. This

            associates the service to a LAG. All traffic comming in on the

            connection with the correct VLAN-ID will be transported to this

            service.'
          type: string
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        contacts:
          description: 'Polymorphic set of contacts. See the documentation

            on the specific `required_contact_types` on what

            contacts to provide.

            '
          example:
          - c-impl:123
          - c-noc:331
          items:
            type: string
          type: array
        contract_ref:
          description: 'A reference to a contract.

            '
          example: contract:31824
          maxLength: 128
          nullable: true
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        id:
          readOnly: true
          type: string
        inner_vlan:
          description: This is a VLAN ID.
          format: int32
          maximum: 4096
          minimum: 0
          nullable: true
          type: integer
        ips:
          items:
            type: string
          readOnly: true
          type: array
        macs:
          items:
            type: string
          type: array
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        network_feature_configs:
          description: 'A list of ids of network feature configurations.

            '
          example:
          - '12356'
          - '43829'
          items:
            type: string
          readOnly: true
          type: array
        outer_vlan:
          description: 'Request a vlan from a set of ranges.

            A range is represented as a list of integers.

            The range has a max length of 2.


            A set of ranges is a list of lists.


            In case only one bound in the range is provided,

            it is interpreted as the exact value. `[23]` is

            equivalent to `[23, 23]`.


            To just let the platform choose for you, provide all

            possible ranges. `[ [0, 4096] ]`.

            '
          example:
          - - 0
            - 4096
          items:
            items:
              format: int32
              maximum: 4096
              minimum: 0
              type: integer
            type: array
          type: array
        purchase_order:
          default: ''
          description: 'Purchase Order ID which will be displayed on the invoice.

            '
          example: 'Project: DC Moon'
          maxLength: 80
          type: string
        type:
          example: exchange_lan
          type: string
      title: PartialExchangeLanNetworkServiceConfigUpdate
      type: object
    exchange-lan-network-service-partial:
      description: Exchange Lan Network Service
      properties:
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        contacts:
          description: 'Polymorphic set of contacts. See the documentation

            on the specific `required_contact_types` on what

            contacts to provide.

            '
          example:
          - c-impl:123
          - c-noc:331
          items:
            type: string
          type: array
        contract_ref:
          description: 'A reference to a contract.

            '
          example: contract:31824
          maxLength: 128
          nullable: true
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        id:
          readOnly: true
          type: string
        ips:
          items:
            type: string
          readOnly: true
          type: array
        ixfdb_ixid:
          description: id of ixfdb
          nullable: true
          type: integer
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        metro_area:
          description: '3 Letter (IATA) Airport Code of the MetroArea where

            the exchange lan network service is available.

            '
          example: FRA
          maxLength: 3
          type: string
        name:
          description: Exchange dependend service name, will be shown on the invoice.
          maxLength: 40
          type: string
        network_features:
          items:
            type: string
          readOnly: true
          type: array
        peeringdb_ixid:
          description: PeeringDB ixid
          nullable: true
          type: integer
        product:
          type: string
        purchase_order:
          default: ''
          description: 'Purchase Order ID which will be displayed on the invoice.

            '
          example: 'Project: DC Moon'
          maxLength: 80
          type: string
        required_contact_types:
          description: 'The configuration will require at least one of each of the

            specified contact types.

            They can be assigned in the `contacts` list property of the

            config.'
          items:
            type: string
          type: array
        type:
          example: exchange_lan
          type: string
      title: PartialExchangeLanNetworkService
      type: object
    facility:
      allOf:
      - $ref: '#/components/schemas/facility-partial'
      - required:
        - name
        - metro_area
        - address_country
        - address_locality
        - address_region
        - postal_code
        - street_address
        - organisation_name
        title: Facility
        type: object
    facility-partial:
      description: Facility
      properties:
        address_country:
          description: 'ISO 3166-1 alpha-2 country code, for example DE

            '
          example: US
          maxLength: 2
          type: string
        address_locality:
          description: The locality/city. For example, Mountain View.
          example: Mountain View
          maxLength: 80
          type: string
        address_region:
          description: The region. For example, CA
          example: CA
          maxLength: 80
          type: string
        cluster:
          description: Group of facilities within the same building/campus
          example: 60 Hudson, NYC
          maxLength: 80
          nullable: true
          type: string
        id:
          readOnly: true
          type: string
        metro_area:
          description: '3 Letter (IATA) Airport Code of the MetroArea where the DC
            is in.

            '
          example: FRA
          maxLength: 3
          type: string
        name:
          description: 'Name of the Datacenter, how the DC calls itself.

            '
          example: Crater DC Moon 1
          maxLength: 80
          type: string
        organisation_name:
          description: Name of Datacenter operator
          example: Moon Datacenters
          maxLength: 80
          type: string
        peeringdb_facility_id:
          description: '[PeeringDB](https://www.peeringdb.com) facitlity ID,

            can be extracted from the url https://www.peeringdb.com/fac/$id

            '
          example: 103
          format: int32
          maximum: 2147483647
          minimum: 0
          nullable: true
          type: integer
        postal_code:
          description: A postal code. For example, 9404
          example: '9409'
          maxLength: 18
          type: string
        street_address:
          description: The street address. For example, 1600 Amphitheatre Pkwy.
          example: 1600 Amphitheatre Pkwy.
          maxLength: 80
          type: string
      title: PartialFacility
      type: object
    implementation-contact:
      allOf:
      - $ref: '#/components/schemas/implementation-contact-partial'
      - required:
        - managing_customer
        - consuming_customer
        - name
        - email
        - type
        title: ImplementationContact
        type: object
    implementation-contact-partial:
      description: Implementation Contact Response
      properties:
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        email:
          description: Email address of the implementation contact.
          example: implementation@example.org
          maxLength: 80
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        id:
          maxLength: 80
          readOnly: true
          type: string
        legal_company_name:
          description: 'Name of the company the implentation person is

            working for, e.g. a third party company.

            '
          example: Moonoc Network Services LLS.
          maxLength: 80
          nullable: true
          type: string
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        name:
          description: Name of implementation contact
          example: John Dough
          maxLength: 80
          type: string
        telephone:
          description: The telephone number in E.164 Phone Number Formatting
          example: '+442071838750'
          maxLength: 80
          nullable: true
          type: string
        type:
          example: implementation
          type: string
      title: PartialImplementationContact
      type: object
    invoiceable:
      allOf:
      - $ref: '#/components/schemas/invoiceable-partial'
      - required:
        - contacts
        title: Invoiceable
        type: object
    invoiceable-partial:
      description: Invoiceable
      properties:
        contacts:
          description: 'Polymorphic set of contacts. See the documentation

            on the specific `required_contact_types` on what

            contacts to provide.

            '
          example:
          - c-impl:123
          - c-noc:331
          items:
            type: string
          type: array
        contract_ref:
          description: 'A reference to a contract.

            '
          example: contract:31824
          maxLength: 128
          nullable: true
          type: string
        purchase_order:
          default: ''
          description: 'Purchase Order ID which will be displayed on the invoice.

            '
          example: 'Project: DC Moon'
          maxLength: 80
          type: string
      title: PartialInvoiceable
      type: object
    ip-address:
      allOf:
      - $ref: '#/components/schemas/ip-address-partial'
      - required:
        - managing_customer
        - consuming_customer
        title: IpAddress
        type: object
    ip-address-partial:
      description: IP-Address
      properties:
        address:
          description: 'IPv4 or IPv6 Address in the following format:

            - IPv4: [dot-decimal notation](https://en.wikipedia.org/wiki/Dot-decimal_notation)

            - IPv6:

            '
          example: 23.142.52.0
          readOnly: true
          type: string
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        fqdn:
          maxLength: 100
          nullable: true
          type: string
        id:
          readOnly: true
          type: string
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        prefix_length:
          description: 'The CIDR ip prefix length

            '
          example: 23
          format: int32
          maximum: 128
          minimum: 0
          readOnly: true
          type: integer
        valid_not_after:
          format: date-time
          readOnly: true
          type: string
        valid_not_before:
          format: date-time
          readOnly: true
          type: string
        version:
          readOnly: true
          type: integer
      title: PartialIpAddress
      type: object
    ixp-router-network-feature:
      allOf:
      - $ref: '#/components/schemas/ixp-router-network-feature-partial'
      - required:
        - name
        - required
        - required_contact_types
        - flags
        - network_service
        - asn
        - fqdn
        - type
        title: IXPRouterNetworkFeature
        type: object
    ixp-router-network-feature-config:
      allOf:
      - $ref: '#/components/schemas/ixp-router-network-feature-config-partial'
      - required:
        - managing_customer
        - consuming_customer
        - contacts
        - network_feature
        - network_service_config
        - max_prefix
        - bgp_session_type
        - type
        title: IXPRouterNetworkFeatureConfig
        type: object
    ixp-router-network-feature-config-partial:
      description: IXP Router Network Feature Config
      properties:
        bgp_session_type:
          enum:
          - active
          - passive
          type: string
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        contacts:
          description: 'Polymorphic set of contacts. See the documentation

            on the specific `required_contact_types` on what

            contacts to provide.

            '
          example:
          - c-impl:123
          - c-noc:331
          items:
            type: string
          type: array
        contract_ref:
          description: 'A reference to a contract.

            '
          example: contract:31824
          maxLength: 128
          nullable: true
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        id:
          readOnly: true
          type: string
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        max_prefix:
          minimum: 0
          type: integer
        network_feature:
          type: string
        network_service_config:
          type: string
        password:
          maxLength: 128
          nullable: true
          type: string
        purchase_order:
          default: ''
          description: 'Purchase Order ID which will be displayed on the invoice.

            '
          example: 'Project: DC Moon'
          maxLength: 80
          type: string
        state:
          enum:
          - requested
          - allocated
          - testing
          - production
          - decommission_requested
          - decommissioned
          - archived
          - error
          - operator
          - scheduled
          readOnly: true
          type: string
        status:
          items:
            $ref: '#/components/schemas/status'
          type: array
        type:
          example: ixp_router
          type: string
      title: PartialIXPRouterNetworkFeatureConfig
      type: object
    ixp-router-network-feature-config-request:
      allOf:
      - $ref: '#/components/schemas/ixp-router-network-feature-config-request-partial'
      - required:
        - managing_customer
        - consuming_customer
        - contacts
        - network_feature
        - network_service_config
        - max_prefix
        - bgp_session_type
        - type
        title: IXPRouterNetworkFeatureConfigRequest
        type: object
    ixp-router-network-feature-config-request-partial:
      description: IXP Router Network Feature Config Request
      properties:
        bgp_session_type:
          enum:
          - active
          - passive
          type: string
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        contacts:
          description: 'Polymorphic set of contacts. See the documentation

            on the specific `required_contact_types` on what

            contacts to provide.

            '
          example:
          - c-impl:123
          - c-noc:331
          items:
            type: string
          type: array
        contract_ref:
          description: 'A reference to a contract.

            '
          example: contract:31824
          maxLength: 128
          nullable: true
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        id:
          readOnly: true
          type: string
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        max_prefix:
          minimum: 0
          type: integer
        network_feature:
          type: string
        network_service_config:
          type: string
        password:
          maxLength: 128
          nullable: true
          type: string
        purchase_order:
          default: ''
          description: 'Purchase Order ID which will be displayed on the invoice.

            '
          example: 'Project: DC Moon'
          maxLength: 80
          type: string
        type:
          example: ixp_router
          type: string
      title: PartialIXPRouterNetworkFeatureConfigRequest
      type: object
    ixp-router-network-feature-config-update:
      allOf:
      - $ref: '#/components/schemas/ixp-router-network-feature-config-update-partial'
      - required:
        - managing_customer
        - consuming_customer
        - max_prefix
        - bgp_session_type
        - type
        title: IXPRouterNetworkFeatureConfigUpdate
        type: object
    ixp-router-network-feature-config-update-partial:
      description: IXP Router Network Feature Config Update
      properties:
        bgp_session_type:
          enum:
          - active
          - passive
          type: string
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        max_prefix:
          minimum: 0
          type: integer
        password:
          maxLength: 128
          nullable: true
          type: string
        type:
          example: ixp_router
          type: string
      title: PartialIXPRouterNetworkFeatureConfigUpdate
      type: object
    ixp-router-network-feature-partial:
      description: IXP Router Network Feature
      properties:
        asn:
          minimum: 0
          type: integer
        flags:
          description: 'A list of IXP specific feature flags. This can be used

            to see if e.g. RPKI hard filtering is available.'
          items:
            $ref: '#/components/schemas/ixp-specific-feature-flag'
          type: array
        fqdn:
          maxLength: 80
          type: string
        id:
          readOnly: true
          type: string
        ips:
          items:
            type: string
          readOnly: true
          type: array
        name:
          maxLength: 80
          type: string
        network_service:
          type: string
        required:
          type: boolean
        required_contact_types:
          description: 'The configuration will require at least one of each of the

            specified contact types.


            They can be assigned in the `contacts` list property of the

            network feature configuration.'
          items:
            type: string
          type: array
        type:
          example: ixp_router
          type: string
      title: PartialIXPRouterNetworkFeature
      type: object
    ixp-specific-feature-flag:
      allOf:
      - $ref: '#/components/schemas/ixp-specific-feature-flag-partial'
      - required:
        - name
        - description
        title: IXPSpecificFeatureFlag
        type: object
    ixp-specific-feature-flag-partial:
      description: IXP-Specific Feature Flag
      properties:
        description:
          description: 'The description of the feature flag.

            '
          example: RPKI Hard Filtering is available
          maxLength: 80
          type: string
        name:
          description: 'The name of the feature flag.

            '
          example: RPKI
          maxLength: 20
          type: string
      title: PartialIXPSpecificFeatureFlag
      type: object
    legal-contact:
      allOf:
      - $ref: '#/components/schemas/legal-contact-partial'
      - required:
        - managing_customer
        - consuming_customer
        - legal_company_name
        - address_country
        - address_locality
        - postal_code
        - street_address
        - email
        - type
        title: LegalContact
        type: object
    legal-contact-partial:
      description: Legal Contact
      properties:
        address_country:
          description: ISO 3166-1 alpha-2 country code, for example DE
          example: US
          maxLength: 2
          type: string
        address_locality:
          description: The locality/city. For example, Mountain View.
          example: Mountain View
          maxLength: 40
          type: string
        address_region:
          description: The region. For example, CA
          example: CA
          maxLength: 80
          nullable: true
          type: string
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        email:
          description: 'The email of the legal company entity.

            '
          example: info@moon-peer.net
          maxLength: 80
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        id:
          maxLength: 80
          readOnly: true
          type: string
        legal_company_name:
          description: 'The official name of the organization,

            e.g. the registered company name.

            '
          example: Example Inc.
          maxLength: 80
          type: string
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        post_office_box_number:
          description: The post office box number for PO box addresses.
          example: 2335232
          maxLength: 18
          nullable: true
          type: string
        postal_code:
          description: A postal code. For example, 9404
          example: 9409
          maxLength: 24
          type: string
        street_address:
          description: The street address. For example, 1600 Amphitheatre Pkwy.
          example: 1600 Amphitheatre Pkwy.
          maxLength: 80
          type: string
        type:
          example: legal
          type: string
      title: PartialLegalContact
      type: object
    mac-address:
      allOf:
      - $ref: '#/components/schemas/mac-address-partial'
      - required:
        - managing_customer
        - consuming_customer
        - address
        title: MacAddress
        type: object
    mac-address-partial:
      description: MAC-Address
      properties:
        address:
          description: 'MAC Address Value, formatted hexadecimal values with colons.

            '
          example: 42:23:bc:8e:b8:b0
          type: string
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        id:
          readOnly: true
          type: string
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        valid_not_after:
          format: date-time
          nullable: true
          type: string
        valid_not_before:
          format: date-time
          nullable: true
          type: string
      title: PartialMacAddress
      type: object
    network-feature:
      description: Polymorphic Network Feature
      discriminator:
        mapping:
          route_server: '#/components/schemas/route-server-network-feature'
        propertyName: type
      oneOf:
      - $ref: '#/components/schemas/route-server-network-feature'
      title: NetworkFeature
    network-feature-config:
      description: Polymorphic Network Feature Config
      discriminator:
        mapping:
          route_server: '#/components/schemas/route-server-network-feature-config'
        propertyName: type
      oneOf:
      - $ref: '#/components/schemas/route-server-network-feature-config'
      title: NetworkFeatureConfig
    network-feature-config-partial:
      description: Polymorphic Network Feature Config
      discriminator:
        mapping:
          route_server: '#/components/schemas/route-server-network-feature-config-partial'
        propertyName: type
      oneOf:
      - $ref: '#/components/schemas/route-server-network-feature-config-partial'
      title: NetworkFeatureConfig (partial)
    network-feature-config-request:
      description: Polymorphic Network Feature Config Request
      discriminator:
        mapping:
          route_server: '#/components/schemas/route-server-network-feature-config-request'
        propertyName: type
      oneOf:
      - $ref: '#/components/schemas/route-server-network-feature-config-request'
      title: NetworkFeatureConfigRequest
    network-feature-config-request-partial:
      description: Polymorphic Network Feature Config Request
      discriminator:
        mapping:
          route_server: '#/components/schemas/route-server-network-feature-config-request-partial'
        propertyName: type
      oneOf:
      - $ref: '#/components/schemas/route-server-network-feature-config-request-partial'
      title: NetworkFeatureConfigRequest (partial)
    network-feature-config-update:
      description: Polymorphic Network Feauture Config Update
      discriminator:
        mapping:
          route_server: '#/components/schemas/route-server-network-feature-config-update'
        propertyName: type
      oneOf:
      - $ref: '#/components/schemas/route-server-network-feature-config-update'
      title: NetworkFeatureConfigUpdate
    network-feature-config-update-partial:
      description: Polymorphic Network Feauture Config Update
      discriminator:
        mapping:
          route_server: '#/components/schemas/route-server-network-feature-config-update-partial'
        propertyName: type
      oneOf:
      - $ref: '#/components/schemas/route-server-network-feature-config-update-partial'
      title: NetworkFeatureConfigUpdate (partial)
    network-feature-partial:
      description: Polymorphic Network Feature
      discriminator:
        mapping:
          route_server: '#/components/schemas/route-server-network-feature-partial'
        propertyName: type
      oneOf:
      - $ref: '#/components/schemas/route-server-network-feature-partial'
      title: NetworkFeature (partial)
    network-service:
      description: Polymorphic Network Services
      discriminator:
        mapping:
          exchange_lan: '#/components/schemas/exchange-lan-network-service'
        propertyName: type
      oneOf:
      - $ref: '#/components/schemas/exchange-lan-network-service'
      title: NetworkService
    network-service-config:
      description: Polymorphic Network Service Config
      discriminator:
        mapping:
          exchange_lan: '#/components/schemas/exchange-lan-network-service-config'
        propertyName: type
      oneOf:
      - $ref: '#/components/schemas/exchange-lan-network-service-config'
      title: NetworkServiceConfig
    network-service-config-partial:
      description: Polymorphic Network Service Config
      discriminator:
        mapping:
          exchange_lan: '#/components/schemas/exchange-lan-network-service-config-partial'
        propertyName: type
      oneOf:
      - $ref: '#/components/schemas/exchange-lan-network-service-config-partial'
      title: NetworkServiceConfig (partial)
    network-service-config-request:
      description: Polymorhic Network Service Config Request
      discriminator:
        mapping:
          exchange_lan: '#/components/schemas/exchange-lan-network-service-config-request'
        propertyName: type
      oneOf:
      - $ref: '#/components/schemas/exchange-lan-network-service-config-request'
      title: NetworkServiceConfigRequest
    network-service-config-request-partial:
      description: Polymorhic Network Service Config Request
      discriminator:
        mapping:
          exchange_lan: '#/components/schemas/exchange-lan-network-service-config-request-partial'
        propertyName: type
      oneOf:
      - $ref: '#/components/schemas/exchange-lan-network-service-config-request-partial'
      title: NetworkServiceConfigRequest (partial)
    network-service-config-update:
      description: Polymorphic Network Service Config
      discriminator:
        mapping:
          exchange_lan: '#/components/schemas/exchange-lan-network-service-config-update'
        propertyName: type
      oneOf:
      - $ref: '#/components/schemas/exchange-lan-network-service-config-update'
      title: NetworkServiceConfigUpdate
    network-service-config-update-partial:
      description: Polymorphic Network Service Config
      discriminator:
        mapping:
          exchange_lan: '#/components/schemas/exchange-lan-network-service-config-update-partial'
        propertyName: type
      oneOf:
      - $ref: '#/components/schemas/exchange-lan-network-service-config-update-partial'
      title: NetworkServiceConfigUpdate (partial)
    network-service-partial:
      description: Polymorphic Network Services
      discriminator:
        mapping:
          exchange_lan: '#/components/schemas/exchange-lan-network-service-partial'
        propertyName: type
      oneOf:
      - $ref: '#/components/schemas/exchange-lan-network-service-partial'
      title: NetworkService (partial)
    noc-contact:
      allOf:
      - $ref: '#/components/schemas/noc-contact-partial'
      - required:
        - managing_customer
        - consuming_customer
        - email
        - type
        title: NocContact
        type: object
    noc-contact-partial:
      description: NOC Contact Response
      properties:
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        email:
          description: 'The email of the NOC. Typically noc@<customer>

            '
          example: noc@moon-peer.net
          maxLength: 80
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        id:
          maxLength: 80
          readOnly: true
          type: string
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        telephone:
          description: The telephone number in E.164 Phone Number Formatting
          example: '+442071838750'
          maxLength: 40
          nullable: true
          type: string
        type:
          example: noc
          type: string
      title: PartialNocContact
      type: object
    ownable:
      allOf:
      - $ref: '#/components/schemas/ownable-partial'
      - required:
        - managing_customer
        - consuming_customer
        title: Ownable
        type: object
    ownable-partial:
      description: Ownable
      properties:
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
      title: PartialOwnable
      type: object
    peering-contact:
      allOf:
      - $ref: '#/components/schemas/peering-contact-partial'
      - required:
        - managing_customer
        - consuming_customer
        - email
        - type
        title: PeeringContact
        type: object
    peering-contact-partial:
      description: Peering Contact Response
      properties:
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        email:
          description: 'The peering email of the customer. Typically peering@<customer>

            '
          example: peering@moon-peer.net
          maxLength: 80
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        id:
          maxLength: 80
          readOnly: true
          type: string
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        type:
          example: peering
          type: string
      title: PartialPeeringContact
      type: object
    point-of-presence:
      allOf:
      - $ref: '#/components/schemas/point-of-presence-partial'
      - required:
        - name
        - reachable_facilities
        - available_devices
        title: PointOfPresence
        type: object
    point-of-presence-device:
      allOf:
      - $ref: '#/components/schemas/point-of-presence-device-partial'
      - title: PointOfPresenceDevice
        type: object
    point-of-presence-device-partial:
      description: Device with `presence` annotation
      properties:
        id:
          readOnly: true
          type: string
        presence:
          readOnly: true
          type: string
      title: PartialPointOfPresenceDevice
      type: object
    point-of-presence-partial:
      description: Point Of Presence
      properties:
        available_devices:
          items:
            type: string
          type: array
        id:
          readOnly: true
          type: string
        name:
          maxLength: 40
          type: string
        physical_facility:
          readOnly: true
          type: string
        reachable_facilities:
          items:
            type: string
          type: array
      title: PartialPointOfPresence
      type: object
    problem-response:
      allOf:
      - $ref: '#/components/schemas/problem-response-partial'
      - required:
        - type
        title: ProblemResponse
        type: object
    problem-response-partial:
      description: Encodes a problem into an appropriate response body.
      properties:
        detail:
          description: 'A human-readable explanation specific to this

            occurrence of the problem.'
          type: string
        instance:
          description: 'A URI reference that identifies the specific

            occurrence of the problem.  It may or may not yield

            further information if dereferenced.'
          type: string
        status:
          description: 'The HTTP status code ([RFC7231], Section 6)

            generated by the origin server for this occurrence

            of the problem.'
          minimum: 100
          type: integer
        title:
          description: 'A short, human-readable summary of the problem type.


            It SHOULD NOT change from occurrence to

            occurrence of the problem, except for purposes

            of localization (e.g., using proactive content

            negotiation; see [RFC7231], Section 3.4).

            '
          example: Some fields have validation errors.
          type: string
        type:
          description: 'A URI reference (see RFC3986) that identifies the

            problem type.


            This specification encourages that, when

            dereferenced, it provide human-readable documentation

            for the problem type (e.g., using HTML

            [W3C.REC-html5-20141028]).


            When this member is not present, its value is assumed

            to be "about:blank".

            '
          example: about:blank
          type: string
      title: PartialProblemResponse
      type: object
    product:
      description: Polymorphic Product
      discriminator:
        mapping:
          exchange_lan: '#/components/schemas/exchange-lan-network-product'
        propertyName: type
      oneOf:
      - $ref: '#/components/schemas/exchange-lan-network-product'
      title: Product
    product-partial:
      description: Polymorphic Product
      discriminator:
        mapping:
          exchange_lan: '#/components/schemas/exchange-lan-network-product-partial'
        propertyName: type
      oneOf:
      - $ref: '#/components/schemas/exchange-lan-network-product-partial'
      title: Product (partial)
    refresh-token-request:
      allOf:
      - $ref: '#/components/schemas/refresh-token-request-partial'
      - required:
        - refresh_token
        title: RefreshTokenRequest
        type: object
    refresh-token-request-partial:
      description: RefreshTokenRequest
      properties:
        refresh_token:
          type: string
      title: PartialRefreshTokenRequest
      type: object
    route-server-network-feature:
      allOf:
      - $ref: '#/components/schemas/route-server-network-feature-partial'
      - required:
        - name
        - required
        - required_contact_types
        - flags
        - network_service
        - asn
        - fqdn
        - looking_glass_url
        - address_families
        - session_mode
        - available_bgp_session_types
        - type
        title: RouteServerNetworkFeature
        type: object
    route-server-network-feature-config:
      allOf:
      - $ref: '#/components/schemas/route-server-network-feature-config-partial'
      - required:
        - managing_customer
        - consuming_customer
        - contacts
        - network_feature
        - network_service_config
        - asn
        - session_mode
        - bgp_session_type
        - type
        title: RouteServerNetworkFeatureConfig
        type: object
    route-server-network-feature-config-partial:
      description: Route Server Network Feature Config
      properties:
        as_set_v4:
          description: 'AS-Set of the customer for IPv4 prefix filtering.

            This is used to generate

            filters on the router servers.

            Only valid referenced prefixes within the AS-Set

            are allowed inbound to the route server. All other routes are

            filtered.


            This field is *required* with session mode `public`

            if the route server network feature supports the `af_inet`

            address family.


            Important: The format has to be: "AS-SET@IRR". IRR is the database

            where the AS-SET is registred. Typically used IRR''s are RADB, RIPE,

            NTTCOM, APNIC, ALTDB, LEVEL3, ARIN, AFRINIC, LACNIC

            '
          example: MOON-AS@RIPE
          maxLength: 100
          nullable: true
          type: string
        as_set_v6:
          description: 'AS-Set of the customer for IPv6. This is used to generate
            filters

            on the router servers. Only valid referenced prefixes within

            the AS-Set are allowed inbound to the route server.

            All other routes are filtered.


            This field is *required* with session mode `public`

            if the route server network feature supports the `af_inet6`

            address family.


            Important: The format has to be: "AS-SET@IRR". IRR is the database

            where the AS-SET is registred. Typically used IRR''s are RADB, RIPE,

            NTTCOM, APNIC, ALTDB, LEVEL3, ARIN, AFRINIC, LACNIC

            '
          example: MOON-AS@RIPE
          maxLength: 100
          nullable: true
          type: string
        asn:
          description: 'The ASN of the peer.

            '
          example: 4200000023
          format: int64
          maximum: 4294967295
          minimum: 0
          type: integer
        bgp_session_type:
          description: 'The session type describes which of the both parties will
            open the

            connection. If set to passive, the customer router needs to open

            the connection. If its set to active, the route server will open

            the connection. The standard behavior on most IX''s is passive.

            '
          enum:
          - active
          - passive
          example: passive
          type: string
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        contacts:
          description: 'Polymorphic set of contacts. See the documentation

            on the specific `required_contact_types` on what

            contacts to provide.

            '
          example:
          - c-impl:123
          - c-noc:331
          items:
            type: string
          type: array
        contract_ref:
          description: 'A reference to a contract.

            '
          example: contract:31824
          maxLength: 128
          nullable: true
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        id:
          readOnly: true
          type: string
        insert_ixp_asn:
          default: true
          description: 'Insert the ASN of the IXP into the AS path. This function
            is only

            used in special cases. In 99% of all cases, it should be false.

            '
          type: boolean
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        max_prefix_v4:
          description: 'Announcing more than `max_prefix` IPv4 prefixes the bgp

            session will be droped.

            '
          example: 5000
          minimum: 0
          nullable: true
          type: integer
        max_prefix_v6:
          description: 'Announcing more than `max_prefix` IPv6 prefixes the bgp

            session will be droped.

            '
          example: 5000
          minimum: 0
          nullable: true
          type: integer
        network_feature:
          type: string
        network_service_config:
          type: string
        password:
          default: ''
          description: The cleartext BGP session password
          example: bgp-session-test-23
          maxLength: 128
          type: string
        purchase_order:
          default: ''
          description: 'Purchase Order ID which will be displayed on the invoice.

            '
          example: 'Project: DC Moon'
          maxLength: 80
          type: string
        session_mode:
          description: 'Set the session mode with the routeserver.

            '
          enum:
          - public
          - collector
          example: public
          type: string
        state:
          enum:
          - requested
          - allocated
          - testing
          - production
          - decommission_requested
          - decommissioned
          - archived
          - error
          - operator
          - scheduled
          readOnly: true
          type: string
        status:
          items:
            $ref: '#/components/schemas/status'
          type: array
        type:
          example: route_server
          type: string
      title: PartialRouteServerNetworkFeatureConfig
      type: object
    route-server-network-feature-config-request:
      allOf:
      - $ref: '#/components/schemas/route-server-network-feature-config-request-partial'
      - required:
        - managing_customer
        - consuming_customer
        - contacts
        - network_feature
        - network_service_config
        - asn
        - session_mode
        - bgp_session_type
        - type
        title: RouteServerNetworkFeatureConfigRequest
        type: object
    route-server-network-feature-config-request-partial:
      description: Route Server Network Feature Config Request
      properties:
        as_set_v4:
          description: 'AS-Set of the customer for IPv4 prefix filtering.

            This is used to generate

            filters on the router servers.

            Only valid referenced prefixes within the AS-Set

            are allowed inbound to the route server. All other routes are

            filtered.


            This field is *required* with session mode `public`

            if the route server network feature supports the `af_inet`

            address family.


            Important: The format has to be: "AS-SET@IRR". IRR is the database

            where the AS-SET is registred. Typically used IRR''s are RADB, RIPE,

            NTTCOM, APNIC, ALTDB, LEVEL3, ARIN, AFRINIC, LACNIC

            '
          example: MOON-AS@RIPE
          maxLength: 100
          nullable: true
          type: string
        as_set_v6:
          description: 'AS-Set of the customer for IPv6. This is used to generate
            filters

            on the router servers. Only valid referenced prefixes within

            the AS-Set are allowed inbound to the route server.

            All other routes are filtered.


            This field is *required* with session mode `public`

            if the route server network feature supports the `af_inet6`

            address family.


            Important: The format has to be: "AS-SET@IRR". IRR is the database

            where the AS-SET is registred. Typically used IRR''s are RADB, RIPE,

            NTTCOM, APNIC, ALTDB, LEVEL3, ARIN, AFRINIC, LACNIC

            '
          example: MOON-AS@RIPE
          maxLength: 100
          nullable: true
          type: string
        asn:
          description: 'The ASN of the peer.

            '
          example: 4200000023
          format: int64
          maximum: 4294967295
          minimum: 0
          type: integer
        bgp_session_type:
          description: 'The session type describes which of the both parties will
            open the

            connection. If set to passive, the customer router needs to open

            the connection. If its set to active, the route server will open

            the connection. The standard behavior on most IX''s is passive.

            '
          enum:
          - active
          - passive
          example: passive
          type: string
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        contacts:
          description: 'Polymorphic set of contacts. See the documentation

            on the specific `required_contact_types` on what

            contacts to provide.

            '
          example:
          - c-impl:123
          - c-noc:331
          items:
            type: string
          type: array
        contract_ref:
          description: 'A reference to a contract.

            '
          example: contract:31824
          maxLength: 128
          nullable: true
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        id:
          readOnly: true
          type: string
        insert_ixp_asn:
          default: true
          description: 'Insert the ASN of the IXP into the AS path. This function
            is only

            used in special cases. In 99% of all cases, it should be false.

            '
          type: boolean
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        max_prefix_v4:
          description: 'Announcing more than `max_prefix` IPv4 prefixes the bgp

            session will be droped.

            '
          example: 5000
          minimum: 0
          nullable: true
          type: integer
        max_prefix_v6:
          description: 'Announcing more than `max_prefix` IPv6 prefixes the bgp

            session will be droped.

            '
          example: 5000
          minimum: 0
          nullable: true
          type: integer
        network_feature:
          type: string
        network_service_config:
          type: string
        password:
          default: ''
          description: The cleartext BGP session password
          example: bgp-session-test-23
          maxLength: 128
          type: string
        purchase_order:
          default: ''
          description: 'Purchase Order ID which will be displayed on the invoice.

            '
          example: 'Project: DC Moon'
          maxLength: 80
          type: string
        session_mode:
          description: 'Set the session mode with the routeserver.

            '
          enum:
          - public
          - collector
          example: public
          type: string
        type:
          example: route_server
          type: string
      title: PartialRouteServerNetworkFeatureConfigRequest
      type: object
    route-server-network-feature-config-update:
      allOf:
      - $ref: '#/components/schemas/route-server-network-feature-config-update-partial'
      - required:
        - managing_customer
        - consuming_customer
        - asn
        - session_mode
        - bgp_session_type
        - type
        title: RouteServerNetworkFeatureConfigUpdate
        type: object
    route-server-network-feature-config-update-partial:
      description: Route Server Network Feature Config Update
      properties:
        as_set_v4:
          description: 'AS-Set of the customer for IPv4 prefix filtering.

            This is used to generate

            filters on the router servers.

            Only valid referenced prefixes within the AS-Set

            are allowed inbound to the route server. All other routes are

            filtered.


            This field is *required* with session mode `public`

            if the route server network feature supports the `af_inet`

            address family.


            Important: The format has to be: "AS-SET@IRR". IRR is the database

            where the AS-SET is registred. Typically used IRR''s are RADB, RIPE,

            NTTCOM, APNIC, ALTDB, LEVEL3, ARIN, AFRINIC, LACNIC

            '
          example: MOON-AS@RIPE
          maxLength: 100
          nullable: true
          type: string
        as_set_v6:
          description: 'AS-Set of the customer for IPv6. This is used to generate
            filters

            on the router servers. Only valid referenced prefixes within

            the AS-Set are allowed inbound to the route server.

            All other routes are filtered.


            This field is *required* with session mode `public`

            if the route server network feature supports the `af_inet6`

            address family.


            Important: The format has to be: "AS-SET@IRR". IRR is the database

            where the AS-SET is registred. Typically used IRR''s are RADB, RIPE,

            NTTCOM, APNIC, ALTDB, LEVEL3, ARIN, AFRINIC, LACNIC

            '
          example: MOON-AS@RIPE
          maxLength: 100
          nullable: true
          type: string
        asn:
          description: 'The ASN of the peer.

            '
          example: 4200000023
          format: int64
          maximum: 4294967295
          minimum: 0
          type: integer
        bgp_session_type:
          description: 'The session type describes which of the both parties will
            open the

            connection. If set to passive, the customer router needs to open

            the connection. If its set to active, the route server will open

            the connection. The standard behavior on most IX''s is passive.

            '
          enum:
          - active
          - passive
          example: passive
          type: string
        consuming_customer:
          description: 'The `id` of the customer account consuming a service.


            Used to be `owning_customer`.

            '
          example: '2381982'
          type: string
        external_ref:
          description: Reference field, free to use for the API user.
          example: IX:Service:23042
          maxLength: 128
          nullable: true
          type: string
        insert_ixp_asn:
          default: true
          description: 'Insert the ASN of the IXP into the AS path. This function
            is only

            used in special cases. In 99% of all cases, it should be false.

            '
          type: boolean
        managing_customer:
          description: 'The `id` of the customer responsible for managing the service
            via

            the API.

            Used to be `billing_customer`.

            '
          example: '238189294'
          type: string
        max_prefix_v4:
          description: 'Announcing more than `max_prefix` IPv4 prefixes the bgp

            session will be droped.

            '
          example: 5000
          minimum: 0
          nullable: true
          type: integer
        max_prefix_v6:
          description: 'Announcing more than `max_prefix` IPv6 prefixes the bgp

            session will be droped.

            '
          example: 5000
          minimum: 0
          nullable: true
          type: integer
        password:
          default: ''
          description: The cleartext BGP session password
          example: bgp-session-test-23
          maxLength: 128
          type: string
        session_mode:
          description: 'Set the session mode with the routeserver.

            '
          enum:
          - public
          - collector
          example: public
          type: string
        type:
          example: route_server
          type: string
      title: PartialRouteServerNetworkFeatureConfigUpdate
      type: object
    route-server-network-feature-partial:
      description: Route Server Network Feature
      properties:
        address_families:
          description: 'When creating a route server feature config, remember

            to specify which address family or families to use.

            '
          example:
          - af_inet
          items:
            enum:
            - af_inet
            - af_inet6
            type: string
          type: array
        asn:
          minimum: 0
          type: integer
        available_bgp_session_types:
          description: 'The route server provides the following session modes.

            '
          example:
          - passive
          items:
            enum:
            - active
            - passive
            type: string
          type: array
        flags:
          description: 'A list of IXP specific feature flags. This can be used

            to see if e.g. RPKI hard filtering is available.'
          items:
            $ref: '#/components/schemas/ixp-specific-feature-flag'
          type: array
        fqdn:
          description: 'The FQDN of the route server.

            '
          example: rs1.moon-ix.net
          maxLength: 80
          type: string
        id:
          readOnly: true
          type: string
        ips:
          items:
            type: string
          readOnly: true
          type: array
        looking_glass_url:
          description: 'The url of the looking glass.

            '
          example: https://lg.moon-ix.net/rs1
          type: string
        name:
          maxLength: 80
          type: string
        network_service:
          type: string
        required:
          type: boolean
        required_contact_types:
          description: 'The configuration will require at least one of each of the

            specified contact types.


            They can be assigned in the `contacts` list property of the

            network feature configuration.'
          items:
            type: string
          type: array
        session_mode:
          description: 'When creating a route server feature config, remember

            to specify the same session_mode as the route server.

            '
          enum:
          - public
          - collector
          example: public
          type: string
        type:
          example: route_server
          type: string
      title: PartialRouteServerNetworkFeature
      type: object
    stateful:
      allOf:
      - $ref: '#/components/schemas/stateful-partial'
      - title: Stateful
        type: object
    stateful-partial:
      description: A stateful object
      properties:
        state:
          enum:
          - requested
          - allocated
          - testing
          - production
          - decommission_requested
          - decommissioned
          - archived
          - error
          - operator
          - scheduled
          readOnly: true
          type: string
        status:
          items:
            $ref: '#/components/schemas/status'
          type: array
      title: PartialStateful
      type: object
    status:
      allOf:
      - $ref: '#/components/schemas/status-partial'
      - required:
        - severity
        - tag
        - message
        - attrs
        - timestamp
        title: Status
        type: object
    status-partial:
      description: Status Message
      properties:
        attrs:
          type: object
        message:
          type: string
        severity:
          description: 'We are using syslog severity levels: 0 = Emergency,

            1 = Alert, 2 = Critical, 3 = Error, 4 = Warning,

            5 = Notice, 6 = Informational, 7 = Debug.

            '
          example: 2
          format: int32
          maximum: 7
          minimum: 0
          type: integer
        tag:
          type: string
        timestamp:
          format: date-time
          type: string
      title: PartialStatus
      type: object
info:
  contact:
    email: team@ix-api.net
    url: https://ix-api.net
  description: This API allows to config/change/delete Internet Exchange services
  title: IX-API
  version: 1.2.7
openapi: 3.0.0
paths:
  /auth/refresh:
    post:
      description: 'Reauthenticate the API user, issue a new `access_token`

        and `refresh_token` pair by providing the `refresh_token`

        in the request body.'
      operationId: auth_token_refresh
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/refresh-token-request'
        description: RefreshTokenRequest
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/auth-token'
          description: AuthToken
        '400':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 400
                    title:
                      example: Some fields did not validate.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/validation-error.html
                      type: string
                  type: object
          description: ValidationError
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      - https://errors.ix-api.net/v1/not-authenticated.html
                      type: string
                  type: object
          description: Authentication
      tags:
      - auth
  /auth/token:
    post:
      description: 'Authenticate a customer identified by

        `api_key` and `api_secret`.'
      operationId: auth_token_create
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/auth-token-request'
        description: AuthTokenRequest
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/auth-token'
          description: AuthToken
        '400':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 400
                    title:
                      example: Some fields did not validate.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/validation-error.html
                      type: string
                  type: object
          description: ValidationError
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      - https://errors.ix-api.net/v1/not-authenticated.html
                      type: string
                  type: object
          description: Authentication
      tags:
      - auth
  /connections:
    get:
      description: List all `connection`s.
      operationId: connections_list
      parameters:
      - description: Filter by id
        explode: false
        in: query
        name: id
        required: false
        schema:
          example: id1,id2,id3
          items:
            type: string
          type: array
        style: form
      - description: Filter by state
        in: query
        name: state
        required: false
        schema:
          type: string
      - description: Filter by state__is_not
        in: query
        name: state__is_not
        required: false
        schema:
          type: string
      - description: Filter by mode
        in: query
        name: mode
        required: false
        schema:
          type: string
      - description: Filter by mode__is_not
        in: query
        name: mode__is_not
        required: false
        schema:
          type: string
      - description: Filter by demarc
        in: query
        name: demarc
        required: false
        schema:
          type: string
      - description: Filter by name
        in: query
        name: name
        required: false
        schema:
          type: string
      - description: Filter by external_ref
        in: query
        name: external_ref
        required: false
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/connection'
                type: array
          description: 'List of: Connection'
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
      tags:
      - connections
  /connections/{id}:
    get:
      description: Read a `connection`.
      operationId: connections_read
      parameters:
      - description: Get by id
        in: path
        name: id
        required: true
        schema:
          description: ''
          title: ''
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connection'
          description: Connection
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
        '404':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 404
                    title:
                      example: Not found.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/not-found.html
                      type: string
                  type: object
          description: NotFound
      tags:
      - connections
  /contacts:
    get:
      description: List available contacts managed by the authorized customer.
      operationId: contacts_list
      parameters:
      - description: Filter by id
        explode: false
        in: query
        name: id
        required: false
        schema:
          example: id1,id2,id3
          items:
            type: string
          type: array
        style: form
      - description: Filter by managing_customer
        in: query
        name: managing_customer
        required: false
        schema:
          type: string
      - description: Filter by consuming_customer
        in: query
        name: consuming_customer
        required: false
        schema:
          type: string
      - description: Filter by external_ref
        in: query
        name: external_ref
        required: false
        schema:
          type: string
      - description: Filter by type
        in: query
        name: type
        required: false
        schema:
          enum:
          - legal
          - noc
          - peering
          - implementation
          - billing
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/contact'
                type: array
          description: 'List of: Polymorphic Contact'
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
      tags:
      - contacts
    post:
      description: 'Create a new contact.


        Please remember to set the correct `type` of the contact

        when sending the request. Available types are `noc`, `billing`,

        `legal` and `implementation`.'
      operationId: contacts_create
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/contact'
        description: Polymorphic Contact
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/contact'
          description: Polymorphic Contact
        '400':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 400
                    title:
                      example: Some fields did not validate.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/validation-error.html
                      type: string
                  type: object
          description: ValidationError
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
      tags:
      - contacts
  /contacts/{id}:
    delete:
      description: Remove a contact
      operationId: contacts_destroy
      parameters:
      - description: Get by id
        in: path
        name: id
        required: true
        schema:
          description: ''
          title: ''
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/contact'
          description: Polymorphic Contact
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
        '404':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 404
                    title:
                      example: Not found.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/not-found.html
                      type: string
                  type: object
          description: NotFound
      tags:
      - contacts
    get:
      description: Get a contact by it's id
      operationId: contacts_read
      parameters:
      - description: Get by id
        in: path
        name: id
        required: true
        schema:
          description: ''
          title: ''
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/contact'
          description: Polymorphic Contact
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
        '404':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 404
                    title:
                      example: Not found.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/not-found.html
                      type: string
                  type: object
          description: NotFound
      tags:
      - contacts
    patch:
      description: Update parts of a contact
      operationId: contacts_partial_update
      parameters:
      - description: Get by id
        in: path
        name: id
        required: true
        schema:
          description: ''
          title: ''
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/contact'
        description: Polymorphic Contact
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/contact'
          description: Polymorphic Contact
        '400':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 400
                    title:
                      example: Some fields did not validate.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/validation-error.html
                      type: string
                  type: object
          description: ValidationError
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
        '404':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 404
                    title:
                      example: Not found.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/not-found.html
                      type: string
                  type: object
          description: NotFound
      tags:
      - contacts
    put:
      description: Update a contact
      operationId: contacts_update
      parameters:
      - description: Get by id
        in: path
        name: id
        required: true
        schema:
          description: ''
          title: ''
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/contact'
        description: Polymorphic Contact
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/contact'
          description: Polymorphic Contact
        '400':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 400
                    title:
                      example: Some fields did not validate.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/validation-error.html
                      type: string
                  type: object
          description: ValidationError
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
        '404':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 404
                    title:
                      example: Not found.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/not-found.html
                      type: string
                  type: object
          description: NotFound
      tags:
      - contacts
  /customers:
    get:
      description: 'Retrieve a list of customers.


        This includes all customers the current authorized customer

        is managing and the current customer itself.'
      operationId: customers_list
      parameters:
      - description: Filter by id
        explode: false
        in: query
        name: id
        required: false
        schema:
          example: id1,id2,id3
          items:
            type: string
          type: array
        style: form
      - description: Filter by state
        in: query
        name: state
        required: false
        schema:
          type: string
      - description: Filter by state__is_not
        in: query
        name: state__is_not
        required: false
        schema:
          type: string
      - description: Filter by parent
        in: query
        name: parent
        required: false
        schema:
          type: string
      - description: Filter by external_ref
        in: query
        name: external_ref
        required: false
        schema:
          type: string
      - description: Filter by name
        in: query
        name: name
        required: false
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/customer'
                type: array
          description: 'List of: Customer'
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
      tags:
      - customers
    post:
      description: 'Create a new customer.


        Please remember that a customer may require some `contacts`

        to be created. Otherwise it will stay in an `error` state.'
      operationId: customers_create
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/customer-input'
        description: Customer Request
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customer'
          description: Customer
        '400':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 400
                    title:
                      example: Some fields did not validate.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/validation-error.html
                      type: string
                  type: object
          description: ValidationError
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
      tags:
      - customers
  /customers/{id}:
    get:
      description: Get a single customer.
      operationId: customers_read
      parameters:
      - description: Get by id
        in: path
        name: id
        required: true
        schema:
          description: ''
          title: ''
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customer'
          description: Customer
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
        '404':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 404
                    title:
                      example: Not found.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/not-found.html
                      type: string
                  type: object
          description: NotFound
      tags:
      - customers
    patch:
      description: Update the entire customer.
      operationId: customers_partial_update
      parameters:
      - description: Get by id
        in: path
        name: id
        required: true
        schema:
          description: ''
          title: ''
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/customer-partial'
        description: Customer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customer'
          description: Customer
        '400':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 400
                    title:
                      example: Some fields did not validate.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/validation-error.html
                      type: string
                  type: object
          description: ValidationError
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
        '404':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 404
                    title:
                      example: Not found.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/not-found.html
                      type: string
                  type: object
          description: NotFound
      tags:
      - customers
    put:
      description: Update the entire customer.
      operationId: customers_update
      parameters:
      - description: Get by id
        in: path
        name: id
        required: true
        schema:
          description: ''
          title: ''
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/customer'
        description: Customer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customer'
          description: Customer
        '400':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 400
                    title:
                      example: Some fields did not validate.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/validation-error.html
                      type: string
                  type: object
          description: ValidationError
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
        '404':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 404
                    title:
                      example: Not found.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/not-found.html
                      type: string
                  type: object
          description: NotFound
      tags:
      - customers
  /demarcs:
    get:
      description: List all `demarc`s.
      operationId: demarcs_list
      parameters:
      - description: Filter by id
        explode: false
        in: query
        name: id
        required: false
        schema:
          example: id1,id2,id3
          items:
            type: string
          type: array
        style: form
      - description: Filter by state
        in: query
        name: state
        required: false
        schema:
          type: string
      - description: Filter by state__is_not
        in: query
        name: state__is_not
        required: false
        schema:
          type: string
      - description: Filter by media_type
        in: query
        name: media_type
        required: false
        schema:
          type: string
      - description: Filter by pop
        in: query
        name: pop
        required: false
        schema:
          type: string
      - description: Filter by name
        in: query
        name: name
        required: false
        schema:
          type: string
      - description: Filter by external_ref
        in: query
        name: external_ref
        required: false
        schema:
          type: string
      - description: Filter by speed
        in: query
        name: speed
        required: false
        schema:
          type: string
      - description: Filter by connection
        in: query
        name: connection
        required: false
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/demarcation-point'
                type: array
          description: 'List of: Demarc'
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
      tags:
      - demarcs
  /demarcs/{id}:
    get:
      description: Retrieve a `demarc`
      operationId: demarcs_read
      parameters:
      - description: Get by id
        in: path
        name: id
        required: true
        schema:
          description: ''
          title: ''
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/demarcation-point'
          description: Demarc
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
        '404':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 404
                    title:
                      example: Not found.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/not-found.html
                      type: string
                  type: object
          description: NotFound
      tags:
      - demarcs
  /devices:
    get:
      description: List available devices
      operationId: devices_list
      parameters:
      - description: Filter by id
        explode: false
        in: query
        name: id
        required: false
        schema:
          example: id1,id2,id3
          items:
            type: string
          type: array
        style: form
      - description: Filter by name
        in: query
        name: name
        required: false
        schema:
          type: string
      - description: Filter by capability_media_type
        in: query
        name: capability_media_type
        required: false
        schema:
          type: string
      - description: Filter by capability_speed
        in: query
        name: capability_speed
        required: false
        schema:
          type: integer
      - description: Filter by capability_speed__lt
        in: query
        name: capability_speed__lt
        required: false
        schema:
          type: integer
      - description: Filter by capability_speed__lte
        in: query
        name: capability_speed__lte
        required: false
        schema:
          type: integer
      - description: Filter by capability_speed__gt
        in: query
        name: capability_speed__gt
        required: false
        schema:
          type: integer
      - description: Filter by capability_speed__gte
        in: query
        name: capability_speed__gte
        required: false
        schema:
          type: integer
      - description: Filter by faclitiy
        in: query
        name: faclitiy
        required: false
        schema:
          type: string
      - description: Filter by product
        in: query
        name: product
        required: false
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/device'
                type: array
          description: 'List of: Device'
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
      tags:
      - devices
  /devices/{id}:
    get:
      description: Get a specific device identified by id
      operationId: devices_read
      parameters:
      - description: Get by id
        in: path
        name: id
        required: true
        schema:
          description: ''
          title: ''
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/device'
          description: Device
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
        '404':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 404
                    title:
                      example: Not found.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/not-found.html
                      type: string
                  type: object
          description: NotFound
      tags:
      - devices
  /facilities:
    get:
      description: Get a (filtered) list of `facilities`.
      operationId: facilities_list
      parameters:
      - description: Filter by id
        explode: false
        in: query
        name: id
        required: false
        schema:
          example: id1,id2,id3
          items:
            type: string
          type: array
        style: form
      - description: Filter by cluster
        in: query
        name: cluster
        required: false
        schema:
          type: string
      - description: Filter by device
        in: query
        name: device
        required: false
        schema:
          type: string
      - description: Filter by capability_speed
        in: query
        name: capability_speed
        required: false
        schema:
          type: integer
      - description: Filter by capability_speed__lt
        in: query
        name: capability_speed__lt
        required: false
        schema:
          type: integer
      - description: Filter by capability_speed__lte
        in: query
        name: capability_speed__lte
        required: false
        schema:
          type: integer
      - description: Filter by capability_speed__gt
        in: query
        name: capability_speed__gt
        required: false
        schema:
          type: integer
      - description: Filter by capability_speed__gte
        in: query
        name: capability_speed__gte
        required: false
        schema:
          type: integer
      - description: Filter by organisation_name
        in: query
        name: organisation_name
        required: false
        schema:
          type: string
      - description: Filter by metro_area
        in: query
        name: metro_area
        required: false
        schema:
          type: string
      - description: Filter by address_country
        in: query
        name: address_country
        required: false
        schema:
          type: string
      - description: Filter by address_locality
        in: query
        name: address_locality
        required: false
        schema:
          type: string
      - description: Filter by postal_code
        in: query
        name: postal_code
        required: false
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/facility'
                type: array
          description: 'List of: Facility'
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
      tags:
      - facilities
  /facilities/{id}:
    get:
      description: Retrieve a facility by id
      operationId: facilities_read
      parameters:
      - description: Get by id
        in: path
        name: id
        required: true
        schema:
          description: ''
          title: ''
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/facility'
                type: array
          description: 'List of: Facility'
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
        '404':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 404
                    title:
                      example: Not found.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/not-found.html
                      type: string
                  type: object
          description: NotFound
      tags:
      - facilities
  /ips:
    get:
      description: List all ip addresses (and prefixes).
      operationId: ips_list
      parameters:
      - description: Filter by id
        explode: false
        in: query
        name: id
        required: false
        schema:
          example: id1,id2,id3
          items:
            type: string
          type: array
        style: form
      - description: Filter by managing_customer
        in: query
        name: managing_customer
        required: false
        schema:
          type: string
      - description: Filter by consuming_customer
        in: query
        name: consuming_customer
        required: false
        schema:
          type: string
      - description: Filter by external_ref
        in: query
        name: external_ref
        required: false
        schema:
          type: string
      - description: Filter by network_service
        in: query
        name: network_service
        required: false
        schema:
          type: string
      - description: Filter by network_service_config
        in: query
        name: network_service_config
        required: false
        schema:
          type: string
      - description: Filter by network_feature
        in: query
        name: network_feature
        required: false
        schema:
          type: string
      - description: Filter by network_feature_config
        in: query
        name: network_feature_config
        required: false
        schema:
          type: string
      - description: Filter by version
        in: query
        name: version
        required: false
        schema:
          type: integer
      - description: Filter by fqdn
        in: query
        name: fqdn
        required: false
        schema:
          type: string
      - description: Filter by prefix_length
        in: query
        name: prefix_length
        required: false
        schema:
          type: integer
      - description: Filter by valid_not_before
        in: query
        name: valid_not_before
        required: false
        schema:
          type: string
      - description: Filter by valid_not_after
        in: query
        name: valid_not_after
        required: false
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/ip-address'
                type: array
          description: 'List of: IP-Address'
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
      tags:
      - ips
  /ips/{id}:
    get:
      description: Get a single ip addresses by it's id.
      operationId: ips_read
      parameters:
      - description: Get by id
        in: path
        name: id
        required: true
        schema:
          description: ''
          title: ''
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ip-address'
          description: IP-Address
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
        '404':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 404
                    title:
                      example: Not found.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/not-found.html
                      type: string
                  type: object
          description: NotFound
      tags:
      - ips
    patch:
      description: 'Update parts of an ip address.


        As with the `PUT` opertaion, IP addresses, where you

        don''t have update rights, will yield a `resource access denied`

        error when attempting an update.'
      operationId: ips_partial_update
      parameters:
      - description: Get by id
        in: path
        name: id
        required: true
        schema:
          description: ''
          title: ''
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ip-address'
        description: IP-Address
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ip-address'
          description: IP-Address
        '400':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 400
                    title:
                      example: Some fields did not validate.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/validation-error.html
                      type: string
                  type: object
          description: ValidationError
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
        '404':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 404
                    title:
                      example: Not found.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/not-found.html
                      type: string
                  type: object
          description: NotFound
      tags:
      - ips
    put:
      description: 'Update an ip address object.


        You can only update

        IP addresses within your current scope. Not all

        addresses you can read you can update.'
      operationId: ips_update
      parameters:
      - description: Get by id
        in: path
        name: id
        required: true
        schema:
          description: ''
          title: ''
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ip-address'
        description: IP-Address
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ip-address'
          description: IP-Address
        '400':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 400
                    title:
                      example: Some fields did not validate.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/validation-error.html
                      type: string
                  type: object
          description: ValidationError
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
        '404':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 404
                    title:
                      example: Not found.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/not-found.html
                      type: string
                  type: object
          description: NotFound
      tags:
      - ips
  /macs:
    get:
      description: List all mac addresses managed by the authorized customer.
      operationId: macs_list
      parameters:
      - description: Filter by id
        explode: false
        in: query
        name: id
        required: false
        schema:
          example: id1,id2,id3
          items:
            type: string
          type: array
        style: form
      - description: Filter by managing_customer
        in: query
        name: managing_customer
        required: false
        schema:
          type: string
      - description: Filter by consuming_customer
        in: query
        name: consuming_customer
        required: false
        schema:
          type: string
      - description: Filter by external_ref
        in: query
        name: external_ref
        required: false
        schema:
          type: string
      - description: Filter by network_service_config
        in: query
        name: network_service_config
        required: false
        schema:
          type: string
      - description: Filter by address
        in: query
        name: address
        required: false
        schema:
          type: string
      - description: Filter by assigned_at
        in: query
        name: assigned_at
        required: false
        schema:
          type: string
      - description: Filter by valid_not_before
        in: query
        name: valid_not_before
        required: false
        schema:
          type: string
      - description: Filter by valid_not_after
        in: query
        name: valid_not_after
        required: false
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/mac-address'
          description: MAC-Address
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
      tags:
      - macs
    post:
      description: Create a new mac address.
      operationId: macs_create
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/mac-address'
        description: MAC-Address
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/mac-address'
          description: MAC-Address
        '400':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 400
                    title:
                      example: Some fields did not validate.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/validation-error.html
                      type: string
                  type: object
          description: ValidationError
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
      tags:
      - macs
  /macs/{id}:
    delete:
      description: Remove a mac address.
      operationId: macs_destroy
      parameters:
      - description: Get by id
        in: path
        name: id
        required: true
        schema:
          description: ''
          title: ''
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/mac-address'
          description: MAC-Address
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
        '404':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 404
                    title:
                      example: Not found.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/not-found.html
                      type: string
                  type: object
          description: NotFound
      tags:
      - macs
    get:
      description: Get a single mac address by it's id.
      operationId: macs_read
      parameters:
      - description: Get by id
        in: path
        name: id
        required: true
        schema:
          description: ''
          title: ''
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/mac-address'
          description: MAC-Address
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
        '404':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 404
                    title:
                      example: Not found.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/not-found.html
                      type: string
                  type: object
          description: NotFound
      tags:
      - macs
  /network-feature-configs:
    get:
      description: Get all network feature configs.
      operationId: network-feature-configs_list
      parameters:
      - description: Filter by id
        explode: false
        in: query
        name: id
        required: false
        schema:
          example: id1,id2,id3
          items:
            type: string
          type: array
        style: form
      - description: Filter by state
        in: query
        name: state
        required: false
        schema:
          type: string
      - description: Filter by state__is_not
        in: query
        name: state__is_not
        required: false
        schema:
          type: string
      - description: Filter by managing_customer
        in: query
        name: managing_customer
        required: false
        schema:
          type: string
      - description: Filter by consuming_customer
        in: query
        name: consuming_customer
        required: false
        schema:
          type: string
      - description: Filter by external_ref
        in: query
        name: external_ref
        required: false
        schema:
          type: string
      - description: Filter by type
        in: query
        name: type
        required: false
        schema:
          enum:
          - blackholing
          - route_server
          - ixp_router
          type: string
      - description: Filter by service_config
        in: query
        name: service_config
        required: false
        schema:
          type: string
      - description: Filter by network_feature
        in: query
        name: network_feature
        required: false
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/network-feature-config'
                type: array
          description: 'List of: Polymorphic Network Feature Config'
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
      tags:
      - network-feature-configs
    post:
      description: 'Create a new feature configuration.


        Remeber to provide a feature `type` and the id of the

        `network_feature` you want to configure.

        Additionally you have to provide the `network_service_config`

        where you want to use the network feature.


        You can query the available features from the

        `/api/v1/network-features` resource.'
      operationId: network-feature-configs_create
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/network-feature-config-request'
        description: Polymorphic Network Feature Config Request
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/network-feature-config'
          description: Polymorphic Network Feature Config
        '400':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 400
                    title:
                      example: Some fields did not validate.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/validation-error.html
                      type: string
                  type: object
          description: ValidationError
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
      tags:
      - network-feature-configs
  /network-feature-configs/{id}:
    delete:
      description: Remove a network feature config
      operationId: network-feature-configs_destroy
      parameters:
      - description: Get by id
        in: path
        name: id
        required: true
        schema:
          description: ''
          title: ''
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/network-feature-config'
          description: Polymorphic Network Feature Config
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
        '404':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 404
                    title:
                      example: Not found.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/not-found.html
                      type: string
                  type: object
          description: NotFound
      tags:
      - network-feature-configs
    get:
      description: Get a single network feature config.
      operationId: network-feature-configs_read
      parameters:
      - description: Get by id
        in: path
        name: id
        required: true
        schema:
          description: ''
          title: ''
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/network-feature-config'
          description: Polymorphic Network Feature Config
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
        '404':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 404
                    title:
                      example: Not found.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/not-found.html
                      type: string
                  type: object
          description: NotFound
      tags:
      - network-feature-configs
    patch:
      description: Update parts of a network feature configuration
      operationId: network-feature-configs_partial_update
      parameters:
      - description: Get by id
        in: path
        name: id
        required: true
        schema:
          description: ''
          title: ''
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/network-feature-config-update-partial'
        description: Polymorphic Network Feauture Config Update
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/network-feature-config'
          description: Polymorphic Network Feature Config
        '400':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 400
                    title:
                      example: Some fields did not validate.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/validation-error.html
                      type: string
                  type: object
          description: ValidationError
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
        '404':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 404
                    title:
                      example: Not found.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/not-found.html
                      type: string
                  type: object
          description: NotFound
      tags:
      - network-feature-configs
    put:
      description: Update a network feature configuration
      operationId: network-feature-configs_update
      parameters:
      - description: Get by id
        in: path
        name: id
        required: true
        schema:
          description: ''
          title: ''
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/network-feature-config-update'
        description: Polymorphic Network Feauture Config Update
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/network-feature-config'
          description: Polymorphic Network Feature Config
        '400':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 400
                    title:
                      example: Some fields did not validate.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/validation-error.html
                      type: string
                  type: object
          description: ValidationError
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
        '404':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 404
                    title:
                      example: Not found.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/not-found.html
                      type: string
                  type: object
          description: NotFound
      tags:
      - network-feature-configs
  /network-features:
    get:
      description: List available network features.
      operationId: network-features_list
      parameters:
      - description: Filter by id
        explode: false
        in: query
        name: id
        required: false
        schema:
          example: id1,id2,id3
          items:
            type: string
          type: array
        style: form
      - description: Filter by type
        in: query
        name: type
        required: false
        schema:
          enum:
          - blackholing
          - route_server
          - ixp_router
          type: string
      - description: Filter by required
        in: query
        name: required
        required: false
        schema:
          type: string
      - description: Filter by network_service
        in: query
        name: network_service
        required: false
        schema:
          type: string
      - description: Filter by name
        in: query
        name: name
        required: false
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/network-feature'
                type: array
          description: 'List of: Polymorphic Network Feature'
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
      tags:
      - network-features
  /network-features/{id}:
    get:
      description: Get a single network feature by it's id.
      operationId: network-features_read
      parameters:
      - description: Get by id
        in: path
        name: id
        required: true
        schema:
          description: ''
          title: ''
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/network-feature'
          description: Polymorphic Network Feature
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
        '404':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 404
                    title:
                      example: Not found.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/not-found.html
                      type: string
                  type: object
          description: NotFound
      tags:
      - network-features
  /network-service-configs:
    get:
      description: Get all `network-service-config`s.
      operationId: network-service-configs_list
      parameters:
      - description: Filter by id
        explode: false
        in: query
        name: id
        required: false
        schema:
          example: id1,id2,id3
          items:
            type: string
          type: array
        style: form
      - description: Filter by state
        in: query
        name: state
        required: false
        schema:
          type: string
      - description: Filter by state__is_not
        in: query
        name: state__is_not
        required: false
        schema:
          type: string
      - description: Filter by managing_customer
        in: query
        name: managing_customer
        required: false
        schema:
          type: string
      - description: Filter by consuming_customer
        in: query
        name: consuming_customer
        required: false
        schema:
          type: string
      - description: Filter by external_ref
        in: query
        name: external_ref
        required: false
        schema:
          type: string
      - description: Filter by type
        in: query
        name: type
        required: false
        schema:
          enum:
          - exchange_lan
          - closed_user_group
          - eline
          - cloud
          type: string
      - description: Filter by inner_vlan
        in: query
        name: inner_vlan
        required: false
        schema:
          type: integer
      - description: Filter by outer_vlan
        in: query
        name: outer_vlan
        required: false
        schema:
          type: integer
      - description: Filter by capacity
        in: query
        name: capacity
        required: false
        schema:
          type: integer
      - description: Filter by connection
        in: query
        name: connection
        required: false
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/network-service-config'
                type: array
          description: 'List of: Polymorphic Network Service Config'
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
      tags:
      - network-service-configs
    post:
      description: Create a `network-service-config`.
      operationId: network-service-configs_create
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/network-service-config-request'
        description: Polymorhic Network Service Config Request
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/network-service-config'
          description: Polymorphic Network Service Config
        '400':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 400
                    title:
                      example: Some fields did not validate.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/validation-error.html
                      type: string
                  type: object
          description: ValidationError
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
      tags:
      - network-service-configs
  /network-service-configs/{id}:
    delete:
      description: Deconfigure the network service.
      operationId: network-service-configs_destroy
      parameters:
      - description: Get by id
        in: path
        name: id
        required: true
        schema:
          description: ''
          title: ''
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/network-service-config'
          description: Polymorphic Network Service Config
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
        '404':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 404
                    title:
                      example: Not found.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/not-found.html
                      type: string
                  type: object
          description: NotFound
      tags:
      - network-service-configs
    get:
      description: Get a `network-service-config`
      operationId: network-service-configs_read
      parameters:
      - description: Get by id
        in: path
        name: id
        required: true
        schema:
          description: ''
          title: ''
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/network-service-config'
          description: Polymorphic Network Service Config
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
        '404':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 404
                    title:
                      example: Not found.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/not-found.html
                      type: string
                  type: object
          description: NotFound
      tags:
      - network-service-configs
    patch:
      description: Update parts of an exisiting `network-service-config`.
      operationId: network-service-configs_partial_update
      parameters:
      - description: Get by id
        in: path
        name: id
        required: true
        schema:
          description: ''
          title: ''
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/network-service-config-update-partial'
        description: Polymorphic Network Service Config
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/network-service-config'
          description: Polymorphic Network Service Config
        '400':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 400
                    title:
                      example: Some fields did not validate.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/validation-error.html
                      type: string
                  type: object
          description: ValidationError
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
        '404':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 404
                    title:
                      example: Not found.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/not-found.html
                      type: string
                  type: object
          description: NotFound
      tags:
      - network-service-configs
    put:
      description: Update an exisiting `network-service-config`
      operationId: network-service-configs_update
      parameters:
      - description: Get by id
        in: path
        name: id
        required: true
        schema:
          description: ''
          title: ''
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/network-service-config-update'
        description: Polymorphic Network Service Config
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/network-service-config'
          description: Polymorphic Network Service Config
        '400':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 400
                    title:
                      example: Some fields did not validate.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/validation-error.html
                      type: string
                  type: object
          description: ValidationError
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
        '404':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 404
                    title:
                      example: Not found.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/not-found.html
                      type: string
                  type: object
          description: NotFound
      tags:
      - network-service-configs
  /network-services:
    get:
      description: List available `network-services`.
      operationId: network-services_list
      parameters:
      - description: Filter by id
        explode: false
        in: query
        name: id
        required: false
        schema:
          example: id1,id2,id3
          items:
            type: string
          type: array
        style: form
      - description: Filter by managing_customer
        in: query
        name: managing_customer
        required: false
        schema:
          type: string
      - description: Filter by consuming_customer
        in: query
        name: consuming_customer
        required: false
        schema:
          type: string
      - description: Filter by external_ref
        in: query
        name: external_ref
        required: false
        schema:
          type: string
      - description: Filter by type
        in: query
        name: type
        required: false
        schema:
          enum:
          - exchange_lan
          - closed_user_group
          - eline
          - cloud
          type: string
      - description: Filter by pop
        in: query
        name: pop
        required: false
        schema:
          type: string
      - description: Filter by product
        in: query
        name: product
        required: false
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/network-service'
                type: array
          description: 'List of: Polymorphic Network Services'
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
      tags:
      - network-services
  /network-services/{id}:
    get:
      description: Get a specific `network-service` by id.
      operationId: network-services_read
      parameters:
      - description: Get by id
        in: path
        name: id
        required: true
        schema:
          description: ''
          title: ''
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/network-service'
          description: Polymorphic Network Services
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
        '404':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 404
                    title:
                      example: Not found.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/not-found.html
                      type: string
                  type: object
          description: NotFound
      tags:
      - network-services
  /pops:
    get:
      description: List all PoPs
      operationId: pops_list
      parameters:
      - description: Filter by id
        explode: false
        in: query
        name: id
        required: false
        schema:
          example: id1,id2,id3
          items:
            type: string
          type: array
        style: form
      - description: Filter by physical_facility
        in: query
        name: physical_facility
        required: false
        schema:
          type: string
      - description: Filter by reachable_facility
        in: query
        name: reachable_facility
        required: false
        schema:
          type: string
      - description: Filter by reachable_devices
        in: query
        name: reachable_devices
        required: false
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/point-of-presence'
                type: array
          description: 'List of: Point Of Presence'
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
      tags:
      - pops
  /pops/{id}:
    get:
      description: Get a single point of presence
      operationId: pops_read
      parameters:
      - description: Get by id
        in: path
        name: id
        required: true
        schema:
          description: ''
          title: ''
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/point-of-presence'
          description: Point Of Presence
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
        '404':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 404
                    title:
                      example: Not found.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/not-found.html
                      type: string
                  type: object
          description: NotFound
      tags:
      - pops
  /products:
    get:
      description: List all (filtered) products available on the platform
      operationId: products_list
      parameters:
      - description: Filter by id
        explode: false
        in: query
        name: id
        required: false
        schema:
          example: id1,id2,id3
          items:
            type: string
          type: array
        style: form
      - description: Filter by type
        in: query
        name: type
        required: false
        schema:
          enum:
          - exchange_lan
          - closed_user_group
          - eline
          - cloud
          type: string
      - description: Filter by name
        in: query
        name: name
        required: false
        schema:
          type: string
      - description: Filter by metro_area
        in: query
        name: metro_area
        required: false
        schema:
          type: string
      - description: Filter by provider
        in: query
        name: provider
        required: false
        schema:
          type: string
      - description: Filter by handover_point
        in: query
        name: handover_point
        required: false
        schema:
          type: string
      - description: Filter by zone
        in: query
        name: zone
        required: false
        schema:
          type: string
      - description: Filter by device
        in: query
        name: device
        required: false
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/product'
                type: array
          description: 'List of: Polymorphic Product'
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
      tags:
      - products
  /products/{id}:
    get:
      description: Get a specific product by id
      operationId: products_read
      parameters:
      - description: Get by id
        in: path
        name: id
        required: true
        schema:
          description: ''
          title: ''
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/product'
          description: Polymorphic Product
        '401':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 401
                    title:
                      example: Authentication Credentials Invalid
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/authentication-error.html
                      - https://errors.ix-api.net/v1/signature-expired.html
                      type: string
                  type: object
          description: Authentication
        '403':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 403
                    title:
                      example: You do not have permission to perform this action.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/permission-denied.html
                      type: string
                  type: object
          description: PermissionDenied
        '404':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/problem-response'
                - properties:
                    status:
                      example: 404
                    title:
                      example: Not found.
                    type:
                      enum:
                      - https://errors.ix-api.net/v1/not-found.html
                      type: string
                  type: object
          description: NotFound
      tags:
      - products
servers:
- url: /api/v1
tags:
- description: 'Open an authorized session with the IX-API by

    sending an `api_key` and `api_secret` pair to the

    `/api/v1/tokens` resource.


    This is equivalent to a ''login'' endpoint.


    Upon success, you will receive an `access_token` and

    a `refreh_token`. The refresh token can be used for

    regenerating the lifetime limited access token.


    Use the `access_token` as `Bearer` in your `Authorziation` header

    for getting access to the API.


    The `auth_token` (and `refresh_token`) have limited lifetimes.

    As both are JWTs, you can directy get this information from them.


    When the session (`access_token`) expires, you can (within

    the lifetime of the `refresh_token`) reauthenticate by

    providing only the `refresh_token`.


    Make a `POST` request to the `/api/v1/auth/refresh` resource.'
  name: auth
- description: 'A `Connection` is a functional group of physical connections

    collected together into a LAG (aka trunk).


    A `connection` with only one `demarc` can be also configured as

    standalone which means no LAG configuration on the switch.'
  name: connections
- description: 'A `Contact` is a role undertaking a specific responsibility

    within a customer, typically a department or agent of the

    customer company.


    These can be `implementation`, `noc`, `legal`, `peering`

    or `billing`.


    A contact is bound to the customer by the `consuming_customer`

    property.'
  name: contacts
- description: 'A `Customer` is a company using services from an IXP.

    The customers can have a hierarchy. A customer can have

    subcustomers. Each customer needs to have different contacts,

    depending on the exchange and the service he wants to use.


    For a customer to become operational, you need to provide a

    `legal` contact.'
  name: customers
- description: 'A `Demarc` (demarcation point) is the point at which customer and

    IXP networks meet, eg a physical port / socket, generally with a

    specified bandwidth.


    Demarcs are listed on a LoA (Letter of Authorisation).

    Exchange customers need this information to order a cross connect

    from the datacenter operator to be interconnected to the exchange.


    Due to the reason a `demarc` is patched to a switch, it comes with

    necessary extra informations like speed and optics `type`.

    A `demarc` is always associated to one `pop`.'
  name: demarcs
- description: 'A `Device` is a network hardware device, typically a Switch, which

    is located at a specified facility and connected to one or more

    PoPs.


    They may be physically located at their related PoPs or remotely

    available.'
  name: devices
- description: 'A `Facility` is a data centre, with a determined physical address,

    from which a defined set of PoPs can be accessed'
  name: facilities
- description: 'An `IP` is a IPv4 or 6 addresses, with a given validity period.

    Some services require IP addresses to work.


    When you are joining an `exchange_lan` network service

    for example, addresses on the peering lan will be assigned

    to you.'
  name: ips
- description: 'A `MAC` is a MAC addresses with a given validity period.


    Some services require MAC addresses to work.


    The address itself can not be updated after creation.

    However: It can be expired by changing the `valid_not_before`

    and `valid_not_after` properties.'
  name: macs
- description: 'A `NetworkFeatureConfig` is a customer''s configuration for

    usage of a `NetworkFeature`.'
  name: network-feature-configs
- description: "`NetworkFeatures` are functionality made available to customers\n\
    within a `NetworkService`.\nCertain features may need to be configured by a customer\
    \ to use\nthat service.\n\nThis can be for example a `route server` on an `exchange\
    \ lan`.\n\nSome of these features are mandatory to configure if you\nwant to access\
    \ the platform. Which of these features you have to\nconfigure you can query using:\n\
    \    `/api/v1/network-features?required=true`"
  name: network-features
- description: 'A `NetworkServiceConfig` is a customer''s configuration for usage

    of a `NetworkService`, eg the configuration of a (subset of a)

    connection for that customer''s traffic


    The `type` of the config determines the service you are

    configuring.


    You can find the services available to you on the platform,

    by querying the `/api/v1/network-services` resource.'
  name: network-service-configs
- description: 'A `NetworkService` is an instances of a `Product` accessible by one

    or multiple users, depending on the type of product


    For example, each Exchange Network LAN is considered as a shared

    instance of the related LAN''s `Product`'
  name: network-services
- description: 'A `PoP` is a location within a Facility which is connected to a

    single Network Infrastructure and has defined reachability of

    other facilities.


    A single room may contain multiple PoPs, each linking to a

    different infrastructure.'
  name: pops
- description: 'A `Product` is a network or peering-related product of a defined

    type sold by an IXP to its `Customers`'
  name: products
