Skip to content

Instantly share code, notes, and snippets.

@ma499
Created October 3, 2019 10:38
Show Gist options
  • Save ma499/6b5dddfbf66bf875dff1fe1cee42d162 to your computer and use it in GitHub Desktop.
Save ma499/6b5dddfbf66bf875dff1fe1cee42d162 to your computer and use it in GitHub Desktop.
components:
schemas:
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
auth-tokens:
allOf:
- $ref: '#/components/schemas/auth-tokens-partial'
- required:
- access_token
- refresh_token
title: AuthTokens
type: object
auth-tokens-partial:
description: AuthToken
properties:
access_token:
type: string
refresh_token:
type: string
title: PartialAuthTokens
type: object
billing-contact:
properties:
type:
type: string
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 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
required:
- type
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-input:
allOf:
- $ref: '#/components/schemas/blackholing-network-feature-config-input-partial'
- required:
- managing_customer
- consuming_customer
- contacts
- network_feature
- network_service_config
- activated
- filtered_prefixes
- type
title: BlackholingNetworkFeatureConfigInput
type: object
blackholing-network-feature-config-input-partial:
description: Blackholing Network Feature Config Request
properties:
activated:
type: boolean
consuming_customer:
description: 'The `id` of the customer 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:
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: PartialBlackholingNetworkFeatureConfigInput
type: object
blackholing-network-feature-config-partial:
description: Blackholing Network Feature Config
properties:
activated:
type: boolean
consuming_customer:
description: 'The `id` of the customer 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:
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-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 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-input:
allOf:
- $ref: '#/components/schemas/closed-user-group-network-service-config-input-partial'
- required:
- managing_customer
- consuming_customer
- network_service
- outer_vlan
- contacts
- connection
- type
title: ClosedUserGroupNetworkServiceConfigInput
type: object
closed-user-group-network-service-config-input-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 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] ]`.
'
items:
items:
format: int32
maximum: 4094
minimum: 0
type: integer
type: array
type: array
purchase_order:
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: PartialClosedUserGroupNetworkServiceConfigInput
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 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:
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-update:
allOf:
- $ref: '#/components/schemas/closed-user-group-network-service-config-update-partial'
- required:
- managing_customer
- consuming_customer
- 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 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] ]`.
'
items:
items:
format: int32
maximum: 4096
minimum: 0
type: integer
type: array
type: array
purchase_order:
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 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:
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-input:
allOf:
- $ref: '#/components/schemas/cloud-network-service-config-input-partial'
- required:
- managing_customer
- consuming_customer
- network_service
- outer_vlan
- contacts
- connection
- cloud_key
- type
title: CloudNetworkServiceConfigInput
type: object
cloud-network-service-config-input-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 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] ]`.
'
items:
items:
format: int32
maximum: 4094
minimum: 0
type: integer
type: array
type: array
purchase_order:
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: PartialCloudNetworkServiceConfigInput
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 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:
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-update:
allOf:
- $ref: '#/components/schemas/cloud-network-service-config-update-partial'
- required:
- managing_customer
- consuming_customer
- 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 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] ]`.
'
items:
items:
format: int32
maximum: 4096
minimum: 0
type: integer
type: array
type: array
purchase_order:
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 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:
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 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:
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 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:
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 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:
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-object:
allOf:
- $ref: '#/components/schemas/contactable-object-partial'
- required:
- contacts
title: ContactableObject
type: object
contactable-object-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: PartialContactableObject
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 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:
description: Name of the demarcation point (set by the IXP)
maxLength: 80
readOnly: true
type: string
pop:
type: string
purchase_order:
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 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:
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 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:
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-input:
allOf:
- $ref: '#/components/schemas/e-line-network-service-config-input-partial'
- required:
- managing_customer
- consuming_customer
- network_service
- outer_vlan
- contacts
- connection
- type
title: ELineNetworkServiceConfigInput
type: object
e-line-network-service-config-input-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 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] ]`.
'
items:
items:
format: int32
maximum: 4094
minimum: 0
type: integer
type: array
type: array
purchase_order:
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: PartialELineNetworkServiceConfigInput
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 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:
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-update:
allOf:
- $ref: '#/components/schemas/e-line-network-service-config-update-partial'
- required:
- managing_customer
- consuming_customer
- 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 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] ]`.
'
items:
items:
format: int32
maximum: 4096
minimum: 0
type: integer
type: array
type: array
purchase_order:
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 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:
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:
properties:
type:
type: string
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
required:
- type
title: PartialExchangeLanNetworkProduct
type: object
exchange-lan-network-service:
properties:
type:
type: string
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:
properties:
type:
type: string
allOf:
- $ref: '#/components/schemas/exchange-lan-network-service-config-partial'
required:
- network_service
- outer_vlan
- managing_customer
- consuming_customer
- contacts
- connection
- type
title: ExchangeLanNetworkServiceConfig
type: object
exchange-lan-network-service-config-input:
properties:
type:
type: string
allOf:
- $ref: '#/components/schemas/exchange-lan-network-service-config-input-partial'
required:
- managing_customer
- consuming_customer
- network_service
- outer_vlan
- contacts
- connection
- type
title: ExchangeLanNetworkServiceConfigInput
type: object
exchange-lan-network-service-config-input-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 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] ]`.
'
items:
items:
format: int32
maximum: 4094
minimum: 0
type: integer
type: array
type: array
purchase_order:
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
required:
- type
title: PartialExchangeLanNetworkServiceConfigInput
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 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:
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
required:
- type
title: PartialExchangeLanNetworkServiceConfig
type: object
exchange-lan-network-service-config-update:
properties:
type:
type: string
allOf:
- $ref: '#/components/schemas/exchange-lan-network-service-config-update-partial'
required:
- managing_customer
- consuming_customer
- contacts
- connection
- 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 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] ]`.
'
items:
items:
format: int32
maximum: 4096
minimum: 0
type: integer
type: array
type: array
purchase_order:
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
required:
- type
title: PartialExchangeLanNetworkServiceConfigUpdate
type: object
exchange-lan-network-service-partial:
description: Exchange Lan Network Service
properties:
consuming_customer:
description: 'The `id` of the customer 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:
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
required:
- type
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:
properties:
type:
type: string
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 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
required:
- type
title: PartialImplementationContact
type: object
inline-ip-address:
allOf:
- $ref: '#/components/schemas/inline-ip-address-partial'
- required:
- managing_customer
- consuming_customer
- address
- prefix_length
- fqdn
- valid_not_before
- valid_not_after
title: InlineIpAddress
type: object
inline-ip-address-partial:
description: IP-Address (Inline)
properties:
address:
type: string
consuming_customer:
description: 'The `id` of the customer 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:
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:
format: int32
maximum: 128
minimum: 0
type: integer
valid_not_after:
format: date-time
type: string
valid_not_before:
format: date-time
type: string
title: PartialInlineIpAddress
type: object
invoiceable-object:
allOf:
- $ref: '#/components/schemas/invoiceable-object-partial'
- required:
- contacts
title: InvoiceableObject
type: object
invoiceable-object-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:
description: 'Purchase Order ID which will be displayed on the invoice.
'
example: 'Project: DC Moon'
maxLength: 80
type: string
title: PartialInvoiceableObject
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 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:
enum:
- 4
- 6
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-input:
allOf:
- $ref: '#/components/schemas/ixp-router-network-feature-config-input-partial'
- required:
- managing_customer
- consuming_customer
- contacts
- network_feature
- network_service_config
- max_prefix
- bgp_session_type
- type
title: IXPRouterNetworkFeatureConfigInput
type: object
ixp-router-network-feature-config-input-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 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:
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: PartialIXPRouterNetworkFeatureConfigInput
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 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:
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-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 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:
properties:
type:
type: string
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 Response
required:
- type
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 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 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-input:
description: Polymorphic Network Feature Config Request
discriminator:
mapping:
route_server: '#/components/schemas/route-server-network-feature-config-input'
propertyName: type
oneOf:
- $ref: '#/components/schemas/route-server-network-feature-config-input'
title: NetworkFeatureConfigInput
network-feature-config-input-partial:
description: Polymorphic Network Feature Config Request
discriminator:
mapping:
route_server: '#/components/schemas/route-server-network-feature-config-input-partial'
propertyName: type
oneOf:
- $ref: '#/components/schemas/route-server-network-feature-config-input-partial'
title: NetworkFeatureConfigInput (partial)
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-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-input:
description: Polymorhic Network Service Config Request
discriminator:
mapping:
exchange_lan: '#/components/schemas/exchange-lan-network-service-config-input'
propertyName: type
oneOf:
- $ref: '#/components/schemas/exchange-lan-network-service-config-input'
title: NetworkServiceConfigInput
network-service-config-input-partial:
description: Polymorhic Network Service Config Request
discriminator:
mapping:
exchange_lan: '#/components/schemas/exchange-lan-network-service-config-input-partial'
propertyName: type
oneOf:
- $ref: '#/components/schemas/exchange-lan-network-service-config-input-partial'
title: NetworkServiceConfigInput (partial)
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-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:
properties:
type:
type: string
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 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
required:
- type
title: PartialNocContact
type: object
ownable-object:
allOf:
- $ref: '#/components/schemas/ownable-object-partial'
- required:
- managing_customer
- consuming_customer
title: OwnableObject
type: object
ownable-object-partial:
description: Ownable
properties:
consuming_customer:
description: 'The `id` of the customer 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: PartialOwnableObject
type: object
peering-contact:
properties:
type:
type: string
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 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
required:
- type
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:
allOf:
- $ref: '#/components/schemas/problem-partial'
- required:
- type
title: Problem
type: object
problem-partial:
description: Problem
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: PartialProblem
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:
properties:
type:
type: string
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
- available_bgp_session_types
- type
title: RouteServerNetworkFeature
type: object
route-server-network-feature-config:
properties:
type:
type: string
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-input:
properties:
type:
type: string
allOf:
- $ref: '#/components/schemas/route-server-network-feature-config-input-partial'
required:
- managing_customer
- consuming_customer
- contacts
- network_feature
- network_service_config
- asn
- session_mode
- bgp_session_type
- type
title: RouteServerNetworkFeatureConfigInput
type: object
route-server-network-feature-config-input-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 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:
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:
description: The cleartext BGP session password
example: bgp-session-test-23
maxLength: 128
type: string
purchase_order:
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
required:
- type
title: PartialRouteServerNetworkFeatureConfigInput
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 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:
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:
description: The cleartext BGP session password
example: bgp-session-test-23
maxLength: 128
type: string
purchase_order:
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
required:
- type
title: PartialRouteServerNetworkFeatureConfig
type: object
route-server-network-feature-config-update:
properties:
type:
type: string
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 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:
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:
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
required:
- type
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.
'
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.
'
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
type:
example: route_server
type: string
required:
- type
title: PartialRouteServerNetworkFeature
type: object
stateful-object:
allOf:
- $ref: '#/components/schemas/stateful-object-partial'
- title: StatefulObject
type: object
stateful-object-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: PartialStatefulObject
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.0.3
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_refresh
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/refresh-token-request'
description: ''
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/auth-tokens'
description: AuthToken
'400':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 400
title:
example: Some fields did not validate.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/validation-error
type: string
type: object
type: object
description: ValidationError
'401':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
- http://localhost:8000/api/docs/v1/problems/not-authenticated
type: string
type: object
type: object
description: Authentication
tags:
- auth
/auth/token:
post:
description: Authenticate a customer identified by `api_key` and `api_secret`.
operationId: auth_token
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/auth-token-request'
description: ''
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/auth-tokens'
description: AuthToken
'400':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 400
title:
example: Some fields did not validate.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/validation-error
type: string
type: object
type: object
description: ValidationError
'401':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
- http://localhost:8000/api/docs/v1/problems/not-authenticated
type: string
type: object
type: object
description: Authentication
tags:
- auth
/connections:
get:
description: List all `connection`s.
operationId: connections_list
parameters:
- 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 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 purchase_order
in: query
name: purchase_order
required: false
schema:
type: string
- description: Filter by contract_ref
in: query
name: contract_ref
required: false
schema:
type: string
- 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
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/connection'
type: array
description: ''
'401':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
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'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
type: object
description: PermissionDenied
'404':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 404
title:
example: Not found.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/not-found
type: string
type: object
type: object
description: NotFound
tags:
- connections
/contacts:
get:
description: List available contacts managed by the authorized customer
operationId: contacts_list
parameters:
- description: Filter by external_ref
in: query
name: external_ref
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 purchase_order
in: query
name: purchase_order
required: false
schema:
type: string
- description: Filter by contract_ref
in: query
name: contract_ref
required: false
schema:
type: string
- 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:
- legal
- noc
- implementation
- billing
- peering
type: string
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/contact'
type: array
description: ''
'401':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
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: ''
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/contact'
description: Polymorphic Contact
'400':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 400
title:
example: Some fields did not validate.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/validation-error
type: string
type: object
type: object
description: ValidationError
'401':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
type: object
description: PermissionDenied
tags:
- contacts
/contacts/{id}:
delete:
description: Remove a contact
operationId: contacts_delete
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'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
type: object
description: PermissionDenied
'404':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 404
title:
example: Not found.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/not-found
type: string
type: object
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'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
type: object
description: PermissionDenied
'404':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 404
title:
example: Not found.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/not-found
type: string
type: object
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-partial'
description: ''
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/contact'
description: Polymorphic Contact
'400':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 400
title:
example: Some fields did not validate.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/validation-error
type: string
type: object
type: object
description: ValidationError
'401':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
type: object
description: PermissionDenied
'404':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 404
title:
example: Not found.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/not-found
type: string
type: object
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: ''
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/contact'
description: Polymorphic Contact
'400':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 400
title:
example: Some fields did not validate.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/validation-error
type: string
type: object
type: object
description: ValidationError
'401':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
type: object
description: PermissionDenied
'404':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 404
title:
example: Not found.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/not-found
type: string
type: object
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 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
- 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
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/customer'
type: array
description: ''
'401':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
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: ''
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/customer'
description: Customer
'400':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 400
title:
example: Some fields did not validate.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/validation-error
type: string
type: object
type: object
description: ValidationError
'401':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
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'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
type: object
description: PermissionDenied
'404':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 404
title:
example: Not found.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/not-found
type: string
type: object
type: object
description: NotFound
tags:
- customers
patch:
description: Update some fields of a 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-update-partial'
description: ''
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/customer'
description: Customer
'400':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 400
title:
example: Some fields did not validate.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/validation-error
type: string
type: object
type: object
description: ValidationError
'401':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 401
title:
example: Signature Expired Error
type:
enum:
- http://localhost:8000/api/docs/v1/problems/signature-expired
- http://localhost:8000/api/docs/v1/problems/authentication-error
type: string
type: object
type: object
description: SignatureExpired
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
type: object
description: PermissionDenied
'404':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 404
title:
example: Not found.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/not-found
type: string
type: object
type: object
description: NotFound
tags:
- customers
put:
description: Update a 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-update'
description: ''
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/customer'
description: Customer
'400':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 400
title:
example: Some fields did not validate.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/validation-error
type: string
type: object
type: object
description: ValidationError
'401':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
type: object
description: PermissionDenied
'404':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 404
title:
example: Not found.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/not-found
type: string
type: object
type: object
description: NotFound
tags:
- customers
/demarcs:
get:
description: List all `demarc`s.
operationId: demarcs_list
parameters:
- 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: integer
- description: Filter by connection
in: query
name: connection
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 purchase_order
in: query
name: purchase_order
required: false
schema:
type: string
- description: Filter by contract_ref
in: query
name: contract_ref
required: false
schema:
type: string
- 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
'
example: production
in: query
name: state
required: false
schema:
type: string
- description: 'Filter by media type (e.g. 10GBASE-LR")
'
example: 10GBASE-LR
in: query
name: media_type
required: false
schema:
type: string
- description: 'Filter elements not in a specific state.
'
example: error
in: query
name: state__is_not
required: false
schema:
type: string
- description: 'Filter by point of presence (PoP).
'
example: '23'
in: query
name: pop
required: false
schema:
type: string
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/demarcation-point'
type: array
description: ''
'401':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
type: object
description: PermissionDenied
tags:
- demarcs
/demarcs/{id}:
get:
description: Read 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'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
type: object
description: PermissionDenied
'404':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 404
title:
example: Not found.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/not-found
type: string
type: object
type: object
description: NotFound
tags:
- demarcs
/devices:
get:
description: List available devices
operationId: devices_list
parameters:
- description: Filter by name
in: query
name: name
required: false
schema:
type: string
- 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 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 facility
in: query
name: facility
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: ''
'401':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
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'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
type: object
description: PermissionDenied
'404':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 404
title:
example: Not found.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/not-found
type: string
type: object
type: object
description: NotFound
tags:
- devices
/facilities:
get:
description: Get a (filtered) list of `facilities`.
operationId: facilities_list
parameters:
- 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
- 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
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/facility'
type: array
description: ''
'401':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
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:
$ref: '#/components/schemas/facility'
description: Facility
'401':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
type: object
description: PermissionDenied
'404':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 404
title:
example: Not found.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/not-found
type: string
type: object
type: object
description: NotFound
tags:
- facilities
/ips:
get:
description: List all ip addresses (and prefixes)
operationId: ips_list
parameters:
- description: Filter by fqdn
in: query
name: fqdn
required: false
schema:
type: string
- description: Filter by version
in: query
name: version
required: false
schema:
type: integer
- 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:
format: date-time
type: string
- description: Filter by valid_not_after
in: query
name: valid_not_after
required: false
schema:
format: date-time
type: string
- description: Filter by exchange_lan_network_service
in: query
name: exchange_lan_network_service
required: false
schema:
type: string
- description: Filter by route_server_network_feature
in: query
name: route_server_network_feature
required: false
schema:
type: string
- description: Filter by ixp_router_network_feature
in: query
name: ixp_router_network_feature
required: false
schema:
type: string
- description: Filter by exchange_lan_network_service_config
in: query
name: exchange_lan_network_service_config
required: false
schema:
type: string
- description: Filter by blackholing_network_feature_config
in: query
name: blackholing_network_feature_config
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 id
explode: false
in: query
name: id
required: false
schema:
example: id1,id2,id3
items:
type: string
type: array
style: form
- 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
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/ip-address'
type: array
description: ''
'401':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
type: object
description: PermissionDenied
tags:
- ips
/ips/{id}:
get:
description: Get a signle ip addresses object.
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'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
type: object
description: PermissionDenied
'404':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 404
title:
example: Not found.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/not-found
type: string
type: object
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-partial'
description: ''
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ip-address'
description: IP-Address
'400':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 400
title:
example: Some fields did not validate.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/validation-error
type: string
type: object
type: object
description: ValidationError
'401':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
type: object
description: PermissionDenied
'404':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 404
title:
example: Not found.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/not-found
type: string
type: object
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: ''
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ip-address'
description: IP-Address
'400':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 400
title:
example: Some fields did not validate.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/validation-error
type: string
type: object
type: object
description: ValidationError
'401':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
type: object
description: PermissionDenied
'404':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 404
title:
example: Not found.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/not-found
type: string
type: object
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 address
in: query
name: address
required: false
schema:
type: string
- description: Filter by assigned_at
in: query
name: assigned_at
required: false
schema:
format: date-time
type: string
- description: Filter by valid_not_before
in: query
name: valid_not_before
required: false
schema:
format: date-time
type: string
- description: Filter by valid_not_after
in: query
name: valid_not_after
required: false
schema:
format: date-time
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 id
explode: false
in: query
name: id
required: false
schema:
example: id1,id2,id3
items:
type: string
type: array
style: form
- description: Filter by network_service_config
in: query
name: network_service_config
required: false
schema:
type: string
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/mac-address'
type: array
description: ''
'401':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
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: ''
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/mac-address'
description: MAC-Address
'400':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 400
title:
example: Some fields did not validate.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/validation-error
type: string
type: object
type: object
description: ValidationError
'401':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
type: object
description: PermissionDenied
tags:
- macs
/macs/{id}:
delete:
description: Remove a mac address
operationId: macs_delete
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'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
type: object
description: PermissionDenied
'404':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 404
title:
example: Not found.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/not-found
type: string
type: object
type: object
description: NotFound
tags:
- macs
get:
description: Get a signle mac address by 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'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
type: object
description: PermissionDenied
'404':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 404
title:
example: Not found.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/not-found
type: string
type: object
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 network_feature
in: query
name: network_feature
required: false
schema:
type: string
- description: Filter by purchase_order
in: query
name: purchase_order
required: false
schema:
type: string
- description: Filter by contract_ref
in: query
name: contract_ref
required: false
schema:
type: string
- description: Filter by external_ref
in: query
name: external_ref
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 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 service_config
in: query
name: service_config
required: false
schema:
type: string
- description: Filter by type
in: query
name: type
required: false
schema:
enum:
- route_server
type: string
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/network-feature-config'
type: array
description: ''
'401':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
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-input'
description: ''
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'
- properties:
status:
example: 400
title:
example: Some fields did not validate.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/validation-error
type: string
type: object
type: object
description: ValidationError
'401':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
type: object
description: PermissionDenied
tags:
- network-feature-configs
/network-feature-configs/{id}:
delete:
description: Remove a network feature config
operationId: network-feature-configs_delete
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'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
type: object
description: PermissionDenied
'404':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 404
title:
example: Not found.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/not-found
type: string
type: object
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'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
type: object
description: PermissionDenied
'404':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 404
title:
example: Not found.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/not-found
type: string
type: object
type: object
description: NotFound
tags:
- network-feature-configs
patch:
description: Update parts of the network feature config
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'
description: ''
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'
- properties:
status:
example: 400
title:
example: Some fields did not validate.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/validation-error
type: string
type: object
type: object
description: ValidationError
'401':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
type: object
description: PermissionDenied
'404':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 404
title:
example: Not found.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/not-found
type: string
type: object
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: ''
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'
- properties:
status:
example: 400
title:
example: Some fields did not validate.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/validation-error
type: string
type: object
type: object
description: ValidationError
'401':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
type: object
description: PermissionDenied
'404':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 404
title:
example: Not found.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/not-found
type: string
type: object
type: object
description: NotFound
tags:
- network-feature-configs
/network-features:
get:
description: List available network features.
operationId: network-features_list
parameters:
- description: Filter by name
in: query
name: name
required: false
schema:
type: string
- 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 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 type
in: query
name: type
required: false
schema:
enum:
- route_server
type: string
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/network-feature'
type: array
description: ''
'401':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
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'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
type: object
description: PermissionDenied
'404':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 404
title:
example: Not found.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/not-found
type: string
type: object
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 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 external_ref
in: query
name: external_ref
required: false
schema:
type: string
- description: Filter by connection
in: query
name: connection
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 purchase_order
in: query
name: purchase_order
required: false
schema:
type: string
- description: Filter by contract_ref
in: query
name: contract_ref
required: false
schema:
type: string
- 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 service
in: query
name: service
required: false
schema:
type: string
- description: Filter by type
in: query
name: type
required: false
schema:
enum:
- exchange_lan
type: string
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/network-service-config'
type: array
description: ''
'401':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
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-input'
description: ''
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'
- properties:
status:
example: 400
title:
example: Some fields did not validate.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/validation-error
type: string
type: object
type: object
description: ValidationError
'401':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
type: object
description: PermissionDenied
tags:
- network-service-configs
/network-service-configs/{id}:
delete:
description: Deconfigure the network service
operationId: network-service-configs_delete
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'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
type: object
description: PermissionDenied
'404':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 404
title:
example: Not found.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/not-found
type: string
type: object
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'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
type: object
description: PermissionDenied
'404':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 404
title:
example: Not found.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/not-found
type: string
type: object
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: ''
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'
- properties:
status:
example: 400
title:
example: Some fields did not validate.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/validation-error
type: string
type: object
type: object
description: ValidationError
'401':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
type: object
description: PermissionDenied
'404':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 404
title:
example: Not found.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/not-found
type: string
type: object
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: ''
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'
- properties:
status:
example: 400
title:
example: Some fields did not validate.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/validation-error
type: string
type: object
type: object
description: ValidationError
'401':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
type: object
description: PermissionDenied
'404':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 404
title:
example: Not found.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/not-found
type: string
type: object
type: object
description: NotFound
tags:
- network-service-configs
/network-services:
get:
description: List available `network-services`.
operationId: network-services_list
parameters:
- description: Filter by product
in: query
name: product
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 purchase_order
in: query
name: purchase_order
required: false
schema:
type: string
- description: Filter by contract_ref
in: query
name: contract_ref
required: false
schema:
type: string
- 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 pop
in: query
name: pop
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
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/network-service'
type: array
description: ''
'401':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
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'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
type: object
description: PermissionDenied
'404':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 404
title:
example: Not found.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/not-found
type: string
type: object
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
explode: false
in: query
name: reachable_devices
required: false
schema:
example: id1,id2,id3
items:
type: string
type: array
style: form
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/point-of-presence'
type: array
description: ''
'401':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
type: object
description: PermissionDenied
tags:
- pops
/pops/{id}:
get:
description: Get a demarcation point
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'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
type: object
description: PermissionDenied
'404':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 404
title:
example: Not found.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/not-found
type: string
type: object
type: object
description: NotFound
tags:
- pops
/products:
get:
description: List all (filtered) products available on the platform
operationId: products_list
parameters:
- description: Filter by name
in: query
name: name
required: false
schema:
type: string
- description: Filter by name__contains
in: query
name: name__contains
required: false
schema:
type: string
- 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 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
- description: Filter by type
in: query
name: type
required: false
schema:
enum:
- exchange_lan
type: string
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/product'
type: array
description: ''
'401':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
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'
- properties:
status:
example: 401
title:
example: Authentication Credentials Invalid
type:
enum:
- http://localhost:8000/api/docs/v1/problems/authentication-error
- http://localhost:8000/api/docs/v1/problems/signature-expired
type: string
type: object
type: object
description: Authentication
'403':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 403
title:
example: You do not have permission to perform this action.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/permission-denied
type: string
type: object
type: object
description: PermissionDenied
'404':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/problem'
- properties:
status:
example: 404
title:
example: Not found.
type:
enum:
- http://localhost:8000/api/docs/v1/problems/not-found
type: string
type: object
type: object
description: NotFound
tags:
- products
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
within a `NetworkService`.
Certain features may need to be configured by a customer to use that
service.
This can be for example a `route server` on an `exchange lan`.
Some of these features are mandatory to configure if you
want to access the platform. Which of these features you have to
configure you can query using: `/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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment