components: schemas: auth-token: allOf: - $ref: '#/components/schemas/auth-token-partial' - required: - access_token - refresh_token title: AuthToken type: object auth-token-partial: description: AuthToken properties: access_token: type: string refresh_token: type: string title: PartialAuthToken type: object auth-token-request: allOf: - $ref: '#/components/schemas/auth-token-request-partial' - required: - api_key - api_secret title: AuthTokenRequest type: object auth-token-request-partial: description: AuthTokenRequest properties: api_key: maxLength: 16 minLength: 16 type: string api_secret: maxLength: 86 minLength: 86 type: string title: PartialAuthTokenRequest type: object billing-contact: allOf: - $ref: '#/components/schemas/billing-contact-partial' - required: - managing_customer - consuming_customer - legal_company_name - address_country - address_locality - postal_code - street_address - email - vat_number - type title: BillingContact type: object billing-contact-partial: description: Billing Contact Response properties: address_country: description: ISO 3166-1 alpha-2 country code, for example DE example: US maxLength: 2 type: string address_locality: description: The locality/city. For example, Mountain View. example: Mountain View maxLength: 40 type: string address_region: description: The region. For example, CA example: CA maxLength: 80 nullable: true type: string consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string email: description: The email address for sending the invoice. example: invoice@example.org maxLength: 80 type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string id: maxLength: 80 readOnly: true type: string legal_company_name: description: 'The official name of the organization, e.g. the registered company name. ' example: Example Inc. maxLength: 80 type: string managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string post_office_box_number: description: The post office box number for PO box addresses. example: 2335232 maxLength: 80 nullable: true type: string postal_code: description: A postal code. For example, 9404 example: 9409 maxLength: 24 type: string street_address: description: The street address. For example, 1600 Amphitheatre Pkwy. example: 1600 Amphitheatre Pkwy. maxLength: 80 type: string type: example: billing type: string vat_number: description: 'Value-added tax number, required for european reverse charge system. ' example: UK2300000042 maxLength: 20 minLength: 2 nullable: true type: string title: PartialBillingContact type: object blackholing-network-feature: allOf: - $ref: '#/components/schemas/blackholing-network-feature-partial' - required: - name - required - required_contact_types - flags - network_service - type title: BlackholingNetworkFeature type: object blackholing-network-feature-config: allOf: - $ref: '#/components/schemas/blackholing-network-feature-config-partial' - required: - managing_customer - consuming_customer - contacts - network_feature - network_service_config - activated - filtered_prefixes - type title: BlackholingNetworkFeatureConfig type: object blackholing-network-feature-config-partial: description: Blackholing Network Feature Config properties: activated: type: boolean consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string contacts: description: 'Polymorphic set of contacts. See the documentation on the specific `required_contact_types` on what contacts to provide. ' example: - c-impl:123 - c-noc:331 items: type: string type: array contract_ref: description: 'A reference to a contract. ' example: contract:31824 maxLength: 128 nullable: true type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string filtered_prefixes: items: type: string type: array id: readOnly: true type: string ixp_specific_configuration: maxLength: 2048 nullable: true type: string managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string network_feature: type: string network_service_config: type: string purchase_order: default: '' description: 'Purchase Order ID which will be displayed on the invoice. ' example: 'Project: DC Moon' maxLength: 80 type: string state: enum: - requested - allocated - testing - production - decommission_requested - decommissioned - archived - error - operator - scheduled readOnly: true type: string status: items: $ref: '#/components/schemas/status' type: array type: example: blackholing type: string title: PartialBlackholingNetworkFeatureConfig type: object blackholing-network-feature-config-request: allOf: - $ref: '#/components/schemas/blackholing-network-feature-config-request-partial' - required: - managing_customer - consuming_customer - contacts - network_feature - network_service_config - activated - filtered_prefixes - type title: BlackholingNetworkFeatureConfigRequest type: object blackholing-network-feature-config-request-partial: description: Blackholing Network Feature Config Request properties: activated: type: boolean consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string contacts: description: 'Polymorphic set of contacts. See the documentation on the specific `required_contact_types` on what contacts to provide. ' example: - c-impl:123 - c-noc:331 items: type: string type: array contract_ref: description: 'A reference to a contract. ' example: contract:31824 maxLength: 128 nullable: true type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string filtered_prefixes: items: type: string type: array id: readOnly: true type: string ixp_specific_configuration: maxLength: 2048 nullable: true type: string managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string network_feature: type: string network_service_config: type: string purchase_order: default: '' description: 'Purchase Order ID which will be displayed on the invoice. ' example: 'Project: DC Moon' maxLength: 80 type: string type: example: blackholing type: string title: PartialBlackholingNetworkFeatureConfigRequest type: object blackholing-network-feature-config-update: allOf: - $ref: '#/components/schemas/blackholing-network-feature-config-update-partial' - required: - managing_customer - consuming_customer - activated - filtered_prefixes - type title: BlackholingNetworkFeatureConfigUpdate type: object blackholing-network-feature-config-update-partial: description: Blackholing Network Feature Config Update properties: activated: type: boolean consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string filtered_prefixes: items: type: string type: array ixp_specific_configuration: maxLength: 2048 nullable: true type: string managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string type: example: blackholing type: string title: PartialBlackholingNetworkFeatureConfigUpdate type: object blackholing-network-feature-partial: description: Blackholing Network Feature properties: flags: description: 'A list of IXP specific feature flags. This can be used to see if e.g. RPKI hard filtering is available.' items: $ref: '#/components/schemas/ixp-specific-feature-flag' type: array id: readOnly: true type: string name: maxLength: 80 type: string network_service: type: string required: type: boolean required_contact_types: description: 'The configuration will require at least one of each of the specified contact types. They can be assigned in the `contacts` list property of the network feature configuration.' items: type: string type: array type: example: blackholing type: string title: PartialBlackholingNetworkFeature type: object closed-user-group-network-product: allOf: - $ref: '#/components/schemas/closed-user-group-network-product-partial' - required: - name - type title: ClosedUserGroupNetworkProduct type: object closed-user-group-network-product-partial: description: Closed User Group Network Product properties: id: readOnly: true type: string name: description: Name of the product maxLength: 80 type: string type: example: closed_user_group type: string title: PartialClosedUserGroupNetworkProduct type: object closed-user-group-network-service: allOf: - $ref: '#/components/schemas/closed-user-group-network-service-partial' - required: - managing_customer - consuming_customer - contacts - product - required_contact_types - type title: ClosedUserGroupNetworkService type: object closed-user-group-network-service-config: allOf: - $ref: '#/components/schemas/closed-user-group-network-service-config-partial' - required: - network_service - outer_vlan - managing_customer - consuming_customer - contacts - connection - type title: ClosedUserGroupNetworkServiceConfig type: object closed-user-group-network-service-config-partial: description: Closed User Group Network Service Config properties: capacity: description: 'The capacity of the service in Mbps. If set to Null, the maximum capacity will be used. That means, the service can consume up to the total bandwidth of the `connection`. Typically the service is charged based on the capacity.' minimum: 1 nullable: true type: integer connection: description: 'The id of the connection to use for this service config. This associates the service to a LAG. All traffic comming in on the connection with the correct VLAN-ID will be transported to this service.' type: string consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string contacts: description: 'Polymorphic set of contacts. See the documentation on the specific `required_contact_types` on what contacts to provide. ' example: - c-impl:123 - c-noc:331 items: type: string type: array contract_ref: description: 'A reference to a contract. ' example: contract:31824 maxLength: 128 nullable: true type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string id: readOnly: true type: string inner_vlan: description: This is a VLAN ID. format: int32 maximum: 4096 minimum: 0 nullable: true type: integer macs: items: type: string readOnly: true type: array managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string network_feature_configs: description: 'A list of ids of network feature configurations. ' example: - '12356' - '43829' items: type: string readOnly: true type: array network_service: description: The id of the configured network service. type: string outer_vlan: description: 'A vlan id, where `0` is untagged. Any value > 0 will be the tagged vlan. ' example: 300 format: int32 maximum: 4096 minimum: 0 type: integer purchase_order: default: '' description: 'Purchase Order ID which will be displayed on the invoice. ' example: 'Project: DC Moon' maxLength: 80 type: string state: enum: - requested - allocated - testing - production - decommission_requested - decommissioned - archived - error - operator - scheduled readOnly: true type: string status: items: $ref: '#/components/schemas/status' type: array type: example: closed_user_group type: string title: PartialClosedUserGroupNetworkServiceConfig type: object closed-user-group-network-service-config-request: allOf: - $ref: '#/components/schemas/closed-user-group-network-service-config-request-partial' - required: - managing_customer - consuming_customer - network_service - outer_vlan - contacts - connection - type title: ClosedUserGroupNetworkServiceConfigRequest type: object closed-user-group-network-service-config-request-partial: description: Closed User Group Network Service Config Request properties: capacity: description: 'The capacity of the service in Mbps. If set to Null, the maximum capacity will be used. That means, the service can consume up to the total bandwidth of the `connection`. Typically the service is charged based on the capacity.' minimum: 1 nullable: true type: integer connection: description: 'The id of the connection to use for this service config. This associates the service to a LAG. All traffic comming in on the connection with the correct VLAN-ID will be transported to this service.' type: string consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string contacts: description: 'Polymorphic set of contacts. See the documentation on the specific `required_contact_types` on what contacts to provide. ' example: - c-impl:123 - c-noc:331 items: type: string type: array contract_ref: description: 'A reference to a contract. ' example: contract:31824 maxLength: 128 nullable: true type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string id: readOnly: true type: string inner_vlan: description: This is a VLAN ID. format: int32 maximum: 4096 minimum: 0 nullable: true type: integer macs: items: type: string readOnly: true type: array managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string network_feature_configs: description: 'A list of ids of network feature configurations. ' example: - '12356' - '43829' items: type: string readOnly: true type: array network_service: description: The id of the network service to configure. type: string outer_vlan: description: 'Request a vlan from a set of ranges. A range is represented as a list of integers. The range has a max length of 2. A set of ranges is a list of lists. In case only one bound in the range is present, it is interpreted as the exact value. That means that `[23]` is equivalent to `[23, 23]`. To just let the platform choose for you, provide all possible ranges. `[ [0, 4096] ]`. ' example: - - 0 - 4096 items: items: format: int32 maximum: 4094 minimum: 0 type: integer type: array type: array purchase_order: default: '' description: 'Purchase Order ID which will be displayed on the invoice. ' example: 'Project: DC Moon' maxLength: 80 type: string type: example: closed_user_group type: string title: PartialClosedUserGroupNetworkServiceConfigRequest type: object closed-user-group-network-service-config-update: allOf: - $ref: '#/components/schemas/closed-user-group-network-service-config-update-partial' - required: - managing_customer - consuming_customer - outer_vlan - contacts - connection - type title: ClosedUserGroupNetworkServiceConfigUpdate type: object closed-user-group-network-service-config-update-partial: description: Closed User Group Network Service Update properties: capacity: description: 'The capacity of the service in Mbps. If set to Null, the maximum capacity will be used. That means, the service can consume up to the total bandwidth of the `connection`. Typically the service is charged based on the capacity.' minimum: 1 nullable: true type: integer connection: description: 'The id of the connection to use for this service config. This associates the service to a LAG. All traffic comming in on the connection with the correct VLAN-ID will be transported to this service.' type: string consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string contacts: description: 'Polymorphic set of contacts. See the documentation on the specific `required_contact_types` on what contacts to provide. ' example: - c-impl:123 - c-noc:331 items: type: string type: array contract_ref: description: 'A reference to a contract. ' example: contract:31824 maxLength: 128 nullable: true type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string id: readOnly: true type: string inner_vlan: description: This is a VLAN ID. format: int32 maximum: 4096 minimum: 0 nullable: true type: integer macs: items: type: string readOnly: true type: array managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string network_feature_configs: description: 'A list of ids of network feature configurations. ' example: - '12356' - '43829' items: type: string readOnly: true type: array outer_vlan: description: 'Request a vlan from a set of ranges. A range is represented as a list of integers. The range has a max length of 2. A set of ranges is a list of lists. In case only one bound in the range is provided, it is interpreted as the exact value. `[23]` is equivalent to `[23, 23]`. To just let the platform choose for you, provide all possible ranges. `[ [0, 4096] ]`. ' example: - - 0 - 4096 items: items: format: int32 maximum: 4096 minimum: 0 type: integer type: array type: array purchase_order: default: '' description: 'Purchase Order ID which will be displayed on the invoice. ' example: 'Project: DC Moon' maxLength: 80 type: string type: example: closed_user_group type: string title: PartialClosedUserGroupNetworkServiceConfigUpdate type: object closed-user-group-network-service-partial: description: Closed User Group Network Service properties: consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string contacts: description: 'Polymorphic set of contacts. See the documentation on the specific `required_contact_types` on what contacts to provide. ' example: - c-impl:123 - c-noc:331 items: type: string type: array contract_ref: description: 'A reference to a contract. ' example: contract:31824 maxLength: 128 nullable: true type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string id: readOnly: true type: string managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string network_features: items: type: string readOnly: true type: array product: type: string purchase_order: default: '' description: 'Purchase Order ID which will be displayed on the invoice. ' example: 'Project: DC Moon' maxLength: 80 type: string required_contact_types: description: 'The configuration will require at least one of each of the specified contact types. They can be assigned in the `contacts` list property of the config.' items: type: string type: array type: example: closed_user_group type: string title: PartialClosedUserGroupNetworkService type: object cloud-network-product: allOf: - $ref: '#/components/schemas/cloud-network-product-partial' - required: - name - zone - handover_point - provider - type title: CloudNetworkProduct type: object cloud-network-product-partial: description: Cloud Network Product properties: handover_point: maxLength: 80 type: string id: readOnly: true type: string name: description: Name of the product maxLength: 80 type: string provider: type: string type: example: cloud type: string zone: maxLength: 80 type: string title: PartialCloudNetworkProduct type: object cloud-network-service: allOf: - $ref: '#/components/schemas/cloud-network-service-partial' - required: - managing_customer - consuming_customer - contacts - product - required_contact_types - cloud_provider_name - type title: CloudNetworkService type: object cloud-network-service-config: allOf: - $ref: '#/components/schemas/cloud-network-service-config-partial' - required: - network_service - outer_vlan - managing_customer - consuming_customer - contacts - connection - cloud_key - type title: CloudNetworkServiceConfig type: object cloud-network-service-config-partial: description: Cloud Network Service Config properties: capacity: description: 'The capacity of the service in Mbps. If set to Null, the maximum capacity will be used. That means, the service can consume up to the total bandwidth of the `connection`. Typically the service is charged based on the capacity.' minimum: 1 nullable: true type: integer cloud_key: maxLength: 512 type: string connection: description: 'The id of the connection to use for this service config. This associates the service to a LAG. All traffic comming in on the connection with the correct VLAN-ID will be transported to this service.' type: string consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string contacts: description: 'Polymorphic set of contacts. See the documentation on the specific `required_contact_types` on what contacts to provide. ' example: - c-impl:123 - c-noc:331 items: type: string type: array contract_ref: description: 'A reference to a contract. ' example: contract:31824 maxLength: 128 nullable: true type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string id: readOnly: true type: string inner_vlan: description: This is a VLAN ID. format: int32 maximum: 4096 minimum: 0 nullable: true type: integer managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string network_feature_configs: description: 'A list of ids of network feature configurations. ' example: - '12356' - '43829' items: type: string readOnly: true type: array network_service: description: The id of the configured network service. type: string outer_vlan: description: 'A vlan id, where `0` is untagged. Any value > 0 will be the tagged vlan. ' example: 300 format: int32 maximum: 4096 minimum: 0 type: integer purchase_order: default: '' description: 'Purchase Order ID which will be displayed on the invoice. ' example: 'Project: DC Moon' maxLength: 80 type: string state: enum: - requested - allocated - testing - production - decommission_requested - decommissioned - archived - error - operator - scheduled readOnly: true type: string status: items: $ref: '#/components/schemas/status' type: array type: example: cloud type: string title: PartialCloudNetworkServiceConfig type: object cloud-network-service-config-request: allOf: - $ref: '#/components/schemas/cloud-network-service-config-request-partial' - required: - managing_customer - consuming_customer - network_service - outer_vlan - contacts - connection - cloud_key - type title: CloudNetworkServiceConfigRequest type: object cloud-network-service-config-request-partial: description: Cloud Network Service Config Request properties: capacity: description: 'The capacity of the service in Mbps. If set to Null, the maximum capacity will be used. That means, the service can consume up to the total bandwidth of the `connection`. Typically the service is charged based on the capacity.' minimum: 1 nullable: true type: integer cloud_key: maxLength: 512 type: string connection: description: 'The id of the connection to use for this service config. This associates the service to a LAG. All traffic comming in on the connection with the correct VLAN-ID will be transported to this service.' type: string consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string contacts: description: 'Polymorphic set of contacts. See the documentation on the specific `required_contact_types` on what contacts to provide. ' example: - c-impl:123 - c-noc:331 items: type: string type: array contract_ref: description: 'A reference to a contract. ' example: contract:31824 maxLength: 128 nullable: true type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string id: readOnly: true type: string inner_vlan: description: This is a VLAN ID. format: int32 maximum: 4096 minimum: 0 nullable: true type: integer managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string network_feature_configs: description: 'A list of ids of network feature configurations. ' example: - '12356' - '43829' items: type: string readOnly: true type: array network_service: description: The id of the network service to configure. type: string outer_vlan: description: 'Request a vlan from a set of ranges. A range is represented as a list of integers. The range has a max length of 2. A set of ranges is a list of lists. In case only one bound in the range is present, it is interpreted as the exact value. That means that `[23]` is equivalent to `[23, 23]`. To just let the platform choose for you, provide all possible ranges. `[ [0, 4096] ]`. ' example: - - 0 - 4096 items: items: format: int32 maximum: 4094 minimum: 0 type: integer type: array type: array purchase_order: default: '' description: 'Purchase Order ID which will be displayed on the invoice. ' example: 'Project: DC Moon' maxLength: 80 type: string type: example: cloud type: string title: PartialCloudNetworkServiceConfigRequest type: object cloud-network-service-config-update: allOf: - $ref: '#/components/schemas/cloud-network-service-config-update-partial' - required: - managing_customer - consuming_customer - outer_vlan - contacts - connection - cloud_key - type title: CloudNetworkServiceConfigUpdate type: object cloud-network-service-config-update-partial: description: Cloud Network Service Config Update properties: capacity: description: 'The capacity of the service in Mbps. If set to Null, the maximum capacity will be used. That means, the service can consume up to the total bandwidth of the `connection`. Typically the service is charged based on the capacity.' minimum: 1 nullable: true type: integer cloud_key: maxLength: 512 type: string connection: description: 'The id of the connection to use for this service config. This associates the service to a LAG. All traffic comming in on the connection with the correct VLAN-ID will be transported to this service.' type: string consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string contacts: description: 'Polymorphic set of contacts. See the documentation on the specific `required_contact_types` on what contacts to provide. ' example: - c-impl:123 - c-noc:331 items: type: string type: array contract_ref: description: 'A reference to a contract. ' example: contract:31824 maxLength: 128 nullable: true type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string id: readOnly: true type: string inner_vlan: description: This is a VLAN ID. format: int32 maximum: 4096 minimum: 0 nullable: true type: integer managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string network_feature_configs: description: 'A list of ids of network feature configurations. ' example: - '12356' - '43829' items: type: string readOnly: true type: array outer_vlan: description: 'Request a vlan from a set of ranges. A range is represented as a list of integers. The range has a max length of 2. A set of ranges is a list of lists. In case only one bound in the range is provided, it is interpreted as the exact value. `[23]` is equivalent to `[23, 23]`. To just let the platform choose for you, provide all possible ranges. `[ [0, 4096] ]`. ' example: - - 0 - 4096 items: items: format: int32 maximum: 4096 minimum: 0 type: integer type: array type: array purchase_order: default: '' description: 'Purchase Order ID which will be displayed on the invoice. ' example: 'Project: DC Moon' maxLength: 80 type: string type: example: cloud type: string title: PartialCloudNetworkServiceConfigUpdate type: object cloud-network-service-partial: description: Cloud Network Service properties: cloud_provider_name: type: string consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string contacts: description: 'Polymorphic set of contacts. See the documentation on the specific `required_contact_types` on what contacts to provide. ' example: - c-impl:123 - c-noc:331 items: type: string type: array contract_ref: description: 'A reference to a contract. ' example: contract:31824 maxLength: 128 nullable: true type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string id: readOnly: true type: string managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string network_features: items: type: string readOnly: true type: array product: type: string purchase_order: default: '' description: 'Purchase Order ID which will be displayed on the invoice. ' example: 'Project: DC Moon' maxLength: 80 type: string required_contact_types: description: 'The configuration will require at least one of each of the specified contact types. They can be assigned in the `contacts` list property of the config.' items: type: string type: array type: example: cloud type: string title: PartialCloudNetworkService type: object cloud-provider: allOf: - $ref: '#/components/schemas/cloud-provider-partial' - required: - name title: CloudProvider type: object cloud-provider-partial: description: Cloud Provider properties: id: readOnly: true type: string name: maxLength: 80 type: string title: PartialCloudProvider type: object connection: allOf: - $ref: '#/components/schemas/connection-partial' - required: - managing_customer - consuming_customer - contacts - mode title: Connection type: object connection-partial: description: Connection properties: consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string contacts: description: 'Polymorphic set of contacts. See the documentation on the specific `required_contact_types` on what contacts to provide. ' example: - c-impl:123 - c-noc:331 items: type: string type: array contract_ref: description: 'A reference to a contract. ' example: contract:31824 maxLength: 128 nullable: true type: string demarcs: description: 'Reference to the demarcs belonging to this connection. Typically all demarcs within one connection are distributed over the same device. ' example: - ID23 - '42' - '5' items: type: string type: array external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string id: readOnly: true type: string lacp_timeout: description: 'This sets the LACP Timeout mode. Both ends of the connections need to be configured the same. ' enum: - slow - fast example: slow nullable: true type: string managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string mode: description: 'Sets the mode of the connection. The mode can be: - `lag_lacp`: connection is build as a LAG with LACP enabled - `lag_static`: connection is build as LAG with static configuration - `flex_ethernet`: connect is build as a FlexEthernet channel - `standalone`: only one demarc is allowed in this connection without any bundling. ' enum: - lag_lacp - lag_static - flex_ethernet - standalone example: lag_lacp type: string name: maxLength: 80 type: string purchase_order: default: '' description: 'Purchase Order ID which will be displayed on the invoice. ' example: 'Project: DC Moon' maxLength: 80 type: string speed: description: 'Shows the total bandwidth of the connection in Mbit/s. ' example: 20000 minimum: 0 nullable: true type: integer state: enum: - requested - allocated - testing - production - decommission_requested - decommissioned - archived - error - operator - scheduled readOnly: true type: string status: items: $ref: '#/components/schemas/status' type: array title: PartialConnection type: object connection-request: allOf: - $ref: '#/components/schemas/connection-request-partial' - required: - managing_customer - consuming_customer - contacts - mode title: ConnectionRequest type: object connection-request-partial: description: Connection Request properties: consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string contacts: description: 'Polymorphic set of contacts. See the documentation on the specific `required_contact_types` on what contacts to provide. ' example: - c-impl:123 - c-noc:331 items: type: string type: array contract_ref: description: 'A reference to a contract. ' example: contract:31824 maxLength: 128 nullable: true type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string id: readOnly: true type: string lacp_timeout: description: 'This sets the LACP Timeout mode. Both ends of the connections need to be configured the same. ' enum: - slow - fast example: slow nullable: true type: string managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string mode: description: 'Sets the mode of the connection. The mode can be: - `lag_lacp`: connection is build as a LAG with LACP enabled - `lag_static`: connection is build as LAG with static configuration - `flex_ethernet`: connect is build as a FlexEthernet channel - `standalone`: only one demarc is allowed in this connection without any bundling. ' enum: - lag_lacp - lag_static - flex_ethernet - standalone example: lag_lacp type: string purchase_order: default: '' description: 'Purchase Order ID which will be displayed on the invoice. ' example: 'Project: DC Moon' maxLength: 80 type: string speed: description: 'Shows the total bandwidth of the connection in Mbit/s. ' example: 20000 minimum: 0 nullable: true type: integer title: PartialConnectionRequest type: object connection-update: allOf: - $ref: '#/components/schemas/connection-update-partial' - required: - managing_customer - consuming_customer - contacts - mode title: ConnectionUpdate type: object connection-update-partial: description: Connection Update properties: consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string contacts: description: 'Polymorphic set of contacts. See the documentation on the specific `required_contact_types` on what contacts to provide. ' example: - c-impl:123 - c-noc:331 items: type: string type: array contract_ref: description: 'A reference to a contract. ' example: contract:31824 maxLength: 128 nullable: true type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string id: readOnly: true type: string lacp_timeout: description: 'This sets the LACP Timeout mode. Both ends of the connections need to be configured the same. ' enum: - slow - fast example: slow nullable: true type: string managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string mode: description: 'Sets the mode of the connection. The mode can be: - `lag_lacp`: connection is build as a LAG with LACP enabled - `lag_static`: connection is build as LAG with static configuration - `flex_ethernet`: connect is build as a FlexEthernet channel - `standalone`: only one demarc is allowed in this connection without any bundling. ' enum: - lag_lacp - lag_static - flex_ethernet - standalone example: lag_lacp type: string purchase_order: default: '' description: 'Purchase Order ID which will be displayed on the invoice. ' example: 'Project: DC Moon' maxLength: 80 type: string speed: description: 'Shows the total bandwidth of the connection in Mbit/s. ' example: 20000 minimum: 0 nullable: true type: integer title: PartialConnectionUpdate type: object contact: description: Polymorphic Contact discriminator: mapping: billing: '#/components/schemas/billing-contact' implementation: '#/components/schemas/implementation-contact' legal: '#/components/schemas/legal-contact' noc: '#/components/schemas/noc-contact' peering: '#/components/schemas/peering-contact' propertyName: type oneOf: - $ref: '#/components/schemas/legal-contact' - $ref: '#/components/schemas/noc-contact' - $ref: '#/components/schemas/peering-contact' - $ref: '#/components/schemas/implementation-contact' - $ref: '#/components/schemas/billing-contact' title: Contact contact-partial: description: Polymorphic Contact discriminator: mapping: billing: '#/components/schemas/billing-contact-partial' implementation: '#/components/schemas/implementation-contact-partial' legal: '#/components/schemas/legal-contact-partial' noc: '#/components/schemas/noc-contact-partial' peering: '#/components/schemas/peering-contact-partial' propertyName: type oneOf: - $ref: '#/components/schemas/legal-contact-partial' - $ref: '#/components/schemas/noc-contact-partial' - $ref: '#/components/schemas/peering-contact-partial' - $ref: '#/components/schemas/implementation-contact-partial' - $ref: '#/components/schemas/billing-contact-partial' title: Contact (partial) contactable: allOf: - $ref: '#/components/schemas/contactable-partial' - required: - contacts title: Contactable type: object contactable-partial: description: Contactable properties: contacts: description: 'Polymorphic set of contacts. See the documentation on the specific `required_contact_types` on what contacts to provide. ' example: - c-impl:123 - c-noc:331 items: type: string type: array title: PartialContactable type: object customer: allOf: - $ref: '#/components/schemas/customer-partial' - required: - name title: Customer type: object customer-input: allOf: - $ref: '#/components/schemas/customer-input-partial' - required: - name title: CustomerInput type: object customer-input-partial: description: Customer Request properties: external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 80 nullable: true type: string id: maxLength: 80 readOnly: true type: string name: description: 'Name of customer, how it gets represented in all customer lists. ' example: Moonpeer Inc. maxLength: 80 type: string parent: description: 'The `id` of a parent customer. Can be used for creating a customer hierachy. ' example: IX:Customer:231 nullable: true type: string title: PartialCustomerInput type: object customer-partial: description: Customer properties: external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 80 nullable: true type: string id: maxLength: 80 readOnly: true type: string name: description: 'Name of customer, how it gets represented in all customer lists. ' example: Moonpeer Inc. maxLength: 80 type: string parent: description: 'The `id` of a parent customer. Can be used for creating a customer hierachy. ' example: IX:Customer:231 nullable: true type: string state: enum: - requested - allocated - testing - production - decommission_requested - decommissioned - archived - error - operator - scheduled readOnly: true type: string status: items: $ref: '#/components/schemas/status' type: array title: PartialCustomer type: object customer-update: allOf: - $ref: '#/components/schemas/customer-update-partial' - required: - name title: CustomerUpdate type: object customer-update-partial: description: Customer Update Request properties: external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 80 nullable: true type: string id: maxLength: 80 readOnly: true type: string name: description: 'Name of customer, how it gets represented in all customer lists. ' example: Moonpeer Inc. maxLength: 80 type: string parent: description: 'The `id` of a parent customer. Can be used for creating a customer hierachy. ' example: IX:Customer:231 nullable: true type: string title: PartialCustomerUpdate type: object demarcation-point: allOf: - $ref: '#/components/schemas/demarcation-point-partial' - required: - managing_customer - consuming_customer - contacts - media_type - pop title: DemarcationPoint type: object demarcation-point-partial: description: Demarc properties: connection: nullable: true type: string consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string contacts: description: 'Polymorphic set of contacts. See the documentation on the specific `required_contact_types` on what contacts to provide. ' example: - c-impl:123 - c-noc:331 items: type: string type: array contract_ref: description: 'A reference to a contract. ' example: contract:31824 maxLength: 128 nullable: true type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string id: readOnly: true type: string managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string media_type: description: 'The media type of the interface. See the device''s capabilities to see what types are available. ' example: 10GBASE-LR maxLength: 20 type: string name: default: '' description: Name of the demarcation point (set by the IXP) maxLength: 80 readOnly: true type: string pop: type: string purchase_order: default: '' description: 'Purchase Order ID which will be displayed on the invoice. ' example: 'Project: DC Moon' maxLength: 80 type: string speed: minimum: 0 nullable: true readOnly: true type: integer state: enum: - requested - allocated - testing - production - decommission_requested - decommissioned - archived - error - operator - scheduled readOnly: true type: string status: items: $ref: '#/components/schemas/status' type: array title: PartialDemarcationPoint type: object demarcation-point-request: allOf: - $ref: '#/components/schemas/demarcation-point-request-partial' - required: - managing_customer - consuming_customer - contacts - pop - media_type title: DemarcationPointRequest type: object demarcation-point-request-partial: description: Demarc Request properties: connection: nullable: true type: string consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string contacts: description: 'Polymorphic set of contacts. See the documentation on the specific `required_contact_types` on what contacts to provide. ' example: - c-impl:123 - c-noc:331 items: type: string type: array contract_ref: description: 'A reference to a contract. ' example: contract:31824 maxLength: 128 nullable: true type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string id: readOnly: true type: string managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string media_type: description: 'The media type of the interface. See the device''s capabilities to see what types are available. ' example: 10GBASE-LR maxLength: 20 type: string pop: type: string purchase_order: default: '' description: 'Purchase Order ID which will be displayed on the invoice. ' example: 'Project: DC Moon' maxLength: 80 type: string speed: minimum: 0 nullable: true readOnly: true type: integer title: PartialDemarcationPointRequest type: object demarcation-point-update: allOf: - $ref: '#/components/schemas/demarcation-point-update-partial' - required: - managing_customer - consuming_customer - contacts title: DemarcationPointUpdate type: object demarcation-point-update-partial: description: Demarc Update properties: connection: nullable: true type: string consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string contacts: description: 'Polymorphic set of contacts. See the documentation on the specific `required_contact_types` on what contacts to provide. ' example: - c-impl:123 - c-noc:331 items: type: string type: array contract_ref: description: 'A reference to a contract. ' example: contract:31824 maxLength: 128 nullable: true type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string id: readOnly: true type: string managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string purchase_order: default: '' description: 'Purchase Order ID which will be displayed on the invoice. ' example: 'Project: DC Moon' maxLength: 80 type: string speed: minimum: 0 nullable: true readOnly: true type: integer title: PartialDemarcationPointUpdate type: object device: allOf: - $ref: '#/components/schemas/device-partial' - required: - name title: Device type: object device-capability: allOf: - $ref: '#/components/schemas/device-capability-partial' - title: DeviceCapability type: object device-capability-partial: description: Device Capability properties: availability: description: 'Count of available ports on device ' example: 23 format: int32 maximum: 2147483647 minimum: 0 readOnly: true type: integer max_lag: description: Maximum count of ports which can be bundled to a max_lag example: 8 format: int32 maximum: 32767 minimum: 0 readOnly: true type: integer media_type: description: 'The media type of the port (e.g. 1000BASE-LX, 10GBASE-LR, ...) ' example: 1000BASE-LX maxLength: 20 readOnly: true type: string qinq_capable: description: 'Ports supports inner vlan tag (QinQ) ' example: true readOnly: true type: boolean speed: description: 'Speed of port in Mbit/s ' example: 1000 readOnly: true type: integer title: PartialDeviceCapability type: object device-connection: allOf: - $ref: '#/components/schemas/device-connection-partial' - required: - max_capacity - device - connected_device title: DeviceConnection type: object device-connection-partial: description: Device Connection properties: connected_device: type: string device: type: string id: readOnly: true type: string max_capacity: format: int32 maximum: 2147483647 minimum: 0 type: integer title: PartialDeviceConnection type: object device-partial: description: Device properties: capabilities: items: $ref: '#/components/schemas/device-capability' type: array id: readOnly: true type: string name: description: 'Name of the device ' example: edge2.moon.space-ix.net maxLength: 180 type: string physical_facility: description: 'Identifier of the facilitiy where the device is physically based.' readOnly: true type: string title: PartialDevice type: object e-line-network-product: allOf: - $ref: '#/components/schemas/e-line-network-product-partial' - required: - name - type title: ELineNetworkProduct type: object e-line-network-product-partial: description: E-Line Network Product properties: id: readOnly: true type: string name: description: Name of the product maxLength: 80 type: string type: example: eline type: string title: PartialELineNetworkProduct type: object e-line-network-service: allOf: - $ref: '#/components/schemas/e-line-network-service-partial' - required: - managing_customer - consuming_customer - contacts - product - required_contact_types - type title: ELineNetworkService type: object e-line-network-service-config: allOf: - $ref: '#/components/schemas/e-line-network-service-config-partial' - required: - network_service - outer_vlan - managing_customer - consuming_customer - contacts - connection - type title: ELineNetworkServiceConfig type: object e-line-network-service-config-partial: description: ELine Network Service Config properties: capacity: description: 'The capacity of the service in Mbps. If set to Null, the maximum capacity will be used. That means, the service can consume up to the total bandwidth of the `connection`. Typically the service is charged based on the capacity.' minimum: 1 nullable: true type: integer connection: description: 'The id of the connection to use for this service config. This associates the service to a LAG. All traffic comming in on the connection with the correct VLAN-ID will be transported to this service.' type: string consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string contacts: description: 'Polymorphic set of contacts. See the documentation on the specific `required_contact_types` on what contacts to provide. ' example: - c-impl:123 - c-noc:331 items: type: string type: array contract_ref: description: 'A reference to a contract. ' example: contract:31824 maxLength: 128 nullable: true type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string id: readOnly: true type: string inner_vlan: description: This is a VLAN ID. format: int32 maximum: 4096 minimum: 0 nullable: true type: integer managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string network_feature_configs: description: 'A list of ids of network feature configurations. ' example: - '12356' - '43829' items: type: string readOnly: true type: array network_service: description: The id of the configured network service. type: string outer_vlan: description: 'A vlan id, where `0` is untagged. Any value > 0 will be the tagged vlan. ' example: 300 format: int32 maximum: 4096 minimum: 0 type: integer purchase_order: default: '' description: 'Purchase Order ID which will be displayed on the invoice. ' example: 'Project: DC Moon' maxLength: 80 type: string state: enum: - requested - allocated - testing - production - decommission_requested - decommissioned - archived - error - operator - scheduled readOnly: true type: string status: items: $ref: '#/components/schemas/status' type: array type: example: eline type: string title: PartialELineNetworkServiceConfig type: object e-line-network-service-config-request: allOf: - $ref: '#/components/schemas/e-line-network-service-config-request-partial' - required: - managing_customer - consuming_customer - network_service - outer_vlan - contacts - connection - type title: ELineNetworkServiceConfigRequest type: object e-line-network-service-config-request-partial: description: ELine Network Service Config Request properties: capacity: description: 'The capacity of the service in Mbps. If set to Null, the maximum capacity will be used. That means, the service can consume up to the total bandwidth of the `connection`. Typically the service is charged based on the capacity.' minimum: 1 nullable: true type: integer connection: description: 'The id of the connection to use for this service config. This associates the service to a LAG. All traffic comming in on the connection with the correct VLAN-ID will be transported to this service.' type: string consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string contacts: description: 'Polymorphic set of contacts. See the documentation on the specific `required_contact_types` on what contacts to provide. ' example: - c-impl:123 - c-noc:331 items: type: string type: array contract_ref: description: 'A reference to a contract. ' example: contract:31824 maxLength: 128 nullable: true type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string id: readOnly: true type: string inner_vlan: description: This is a VLAN ID. format: int32 maximum: 4096 minimum: 0 nullable: true type: integer managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string network_feature_configs: description: 'A list of ids of network feature configurations. ' example: - '12356' - '43829' items: type: string readOnly: true type: array network_service: description: The id of the network service to configure. type: string outer_vlan: description: 'Request a vlan from a set of ranges. A range is represented as a list of integers. The range has a max length of 2. A set of ranges is a list of lists. In case only one bound in the range is present, it is interpreted as the exact value. That means that `[23]` is equivalent to `[23, 23]`. To just let the platform choose for you, provide all possible ranges. `[ [0, 4096] ]`. ' example: - - 0 - 4096 items: items: format: int32 maximum: 4094 minimum: 0 type: integer type: array type: array purchase_order: default: '' description: 'Purchase Order ID which will be displayed on the invoice. ' example: 'Project: DC Moon' maxLength: 80 type: string type: example: eline type: string title: PartialELineNetworkServiceConfigRequest type: object e-line-network-service-config-update: allOf: - $ref: '#/components/schemas/e-line-network-service-config-update-partial' - required: - managing_customer - consuming_customer - outer_vlan - contacts - connection - type title: ELineNetworkServiceConfigUpdate type: object e-line-network-service-config-update-partial: description: ELine Network Service Config Update properties: capacity: description: 'The capacity of the service in Mbps. If set to Null, the maximum capacity will be used. That means, the service can consume up to the total bandwidth of the `connection`. Typically the service is charged based on the capacity.' minimum: 1 nullable: true type: integer connection: description: 'The id of the connection to use for this service config. This associates the service to a LAG. All traffic comming in on the connection with the correct VLAN-ID will be transported to this service.' type: string consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string contacts: description: 'Polymorphic set of contacts. See the documentation on the specific `required_contact_types` on what contacts to provide. ' example: - c-impl:123 - c-noc:331 items: type: string type: array contract_ref: description: 'A reference to a contract. ' example: contract:31824 maxLength: 128 nullable: true type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string id: readOnly: true type: string inner_vlan: description: This is a VLAN ID. format: int32 maximum: 4096 minimum: 0 nullable: true type: integer managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string network_feature_configs: description: 'A list of ids of network feature configurations. ' example: - '12356' - '43829' items: type: string readOnly: true type: array outer_vlan: description: 'Request a vlan from a set of ranges. A range is represented as a list of integers. The range has a max length of 2. A set of ranges is a list of lists. In case only one bound in the range is provided, it is interpreted as the exact value. `[23]` is equivalent to `[23, 23]`. To just let the platform choose for you, provide all possible ranges. `[ [0, 4096] ]`. ' example: - - 0 - 4096 items: items: format: int32 maximum: 4096 minimum: 0 type: integer type: array type: array purchase_order: default: '' description: 'Purchase Order ID which will be displayed on the invoice. ' example: 'Project: DC Moon' maxLength: 80 type: string type: example: eline type: string title: PartialELineNetworkServiceConfigUpdate type: object e-line-network-service-partial: description: E-Line Network Service properties: consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string contacts: description: 'Polymorphic set of contacts. See the documentation on the specific `required_contact_types` on what contacts to provide. ' example: - c-impl:123 - c-noc:331 items: type: string type: array contract_ref: description: 'A reference to a contract. ' example: contract:31824 maxLength: 128 nullable: true type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string id: readOnly: true type: string managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string network_features: items: type: string readOnly: true type: array product: type: string purchase_order: default: '' description: 'Purchase Order ID which will be displayed on the invoice. ' example: 'Project: DC Moon' maxLength: 80 type: string required_contact_types: description: 'The configuration will require at least one of each of the specified contact types. They can be assigned in the `contacts` list property of the config.' items: type: string type: array type: example: eline type: string title: PartialELineNetworkService type: object event: allOf: - $ref: '#/components/schemas/event-partial' - required: - serial - type - payload - timestamp title: Event type: object event-partial: description: Event properties: customer: readOnly: true type: string payload: type: object serial: type: integer timestamp: format: date-time type: string type: type: string title: PartialEvent type: object exchange-lan-network-product: allOf: - $ref: '#/components/schemas/exchange-lan-network-product-partial' - required: - name - type title: ExchangeLanNetworkProduct type: object exchange-lan-network-product-partial: description: Exchange Lan Network Product properties: id: readOnly: true type: string metro_area: description: 'The metro area the product is available ' example: MUC maxLength: 3 nullable: true type: string name: description: Name of the product maxLength: 80 type: string type: example: exchange_lan type: string title: PartialExchangeLanNetworkProduct type: object exchange-lan-network-service: allOf: - $ref: '#/components/schemas/exchange-lan-network-service-partial' - required: - managing_customer - consuming_customer - contacts - product - required_contact_types - name - metro_area - type title: ExchangeLanNetworkService type: object exchange-lan-network-service-config: allOf: - $ref: '#/components/schemas/exchange-lan-network-service-config-partial' - required: - network_service - outer_vlan - managing_customer - consuming_customer - contacts - connection - asns - type title: ExchangeLanNetworkServiceConfig type: object exchange-lan-network-service-config-partial: description: Exchange Lan Network Service Config properties: asns: items: format: int64 maximum: 4294967295 minimum: 0 type: integer type: array capacity: description: 'The capacity of the service in Mbps. If set to Null, the maximum capacity will be used. That means, the service can consume up to the total bandwidth of the `connection`. Typically the service is charged based on the capacity.' minimum: 1 nullable: true type: integer connection: description: 'The id of the connection to use for this service config. This associates the service to a LAG. All traffic comming in on the connection with the correct VLAN-ID will be transported to this service.' type: string consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string contacts: description: 'Polymorphic set of contacts. See the documentation on the specific `required_contact_types` on what contacts to provide. ' example: - c-impl:123 - c-noc:331 items: type: string type: array contract_ref: description: 'A reference to a contract. ' example: contract:31824 maxLength: 128 nullable: true type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string id: readOnly: true type: string inner_vlan: description: This is a VLAN ID. format: int32 maximum: 4096 minimum: 0 nullable: true type: integer ips: items: type: string readOnly: true type: array macs: items: type: string type: array managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string network_feature_configs: description: 'A list of ids of network feature configurations. ' example: - '12356' - '43829' items: type: string readOnly: true type: array network_service: description: The id of the configured network service. type: string outer_vlan: description: 'A vlan id, where `0` is untagged. Any value > 0 will be the tagged vlan. ' example: 300 format: int32 maximum: 4096 minimum: 0 type: integer purchase_order: default: '' description: 'Purchase Order ID which will be displayed on the invoice. ' example: 'Project: DC Moon' maxLength: 80 type: string state: enum: - requested - allocated - testing - production - decommission_requested - decommissioned - archived - error - operator - scheduled readOnly: true type: string status: items: $ref: '#/components/schemas/status' type: array type: example: exchange_lan type: string title: PartialExchangeLanNetworkServiceConfig type: object exchange-lan-network-service-config-request: allOf: - $ref: '#/components/schemas/exchange-lan-network-service-config-request-partial' - required: - managing_customer - consuming_customer - network_service - outer_vlan - contacts - connection - asns - type title: ExchangeLanNetworkServiceConfigRequest type: object exchange-lan-network-service-config-request-partial: description: Exchange Lan Network Service Config Request properties: asns: items: format: int64 maximum: 4294967295 minimum: 0 type: integer type: array capacity: description: 'The capacity of the service in Mbps. If set to Null, the maximum capacity will be used. That means, the service can consume up to the total bandwidth of the `connection`. Typically the service is charged based on the capacity.' minimum: 1 nullable: true type: integer connection: description: 'The id of the connection to use for this service config. This associates the service to a LAG. All traffic comming in on the connection with the correct VLAN-ID will be transported to this service.' type: string consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string contacts: description: 'Polymorphic set of contacts. See the documentation on the specific `required_contact_types` on what contacts to provide. ' example: - c-impl:123 - c-noc:331 items: type: string type: array contract_ref: description: 'A reference to a contract. ' example: contract:31824 maxLength: 128 nullable: true type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string id: readOnly: true type: string inner_vlan: description: This is a VLAN ID. format: int32 maximum: 4096 minimum: 0 nullable: true type: integer ips: items: type: string readOnly: true type: array macs: items: type: string type: array managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string network_feature_configs: description: 'A list of ids of network feature configurations. ' example: - '12356' - '43829' items: type: string readOnly: true type: array network_service: description: The id of the network service to configure. type: string outer_vlan: description: 'Request a vlan from a set of ranges. A range is represented as a list of integers. The range has a max length of 2. A set of ranges is a list of lists. In case only one bound in the range is present, it is interpreted as the exact value. That means that `[23]` is equivalent to `[23, 23]`. To just let the platform choose for you, provide all possible ranges. `[ [0, 4096] ]`. ' example: - - 0 - 4096 items: items: format: int32 maximum: 4094 minimum: 0 type: integer type: array type: array purchase_order: default: '' description: 'Purchase Order ID which will be displayed on the invoice. ' example: 'Project: DC Moon' maxLength: 80 type: string type: example: exchange_lan type: string title: PartialExchangeLanNetworkServiceConfigRequest type: object exchange-lan-network-service-config-update: allOf: - $ref: '#/components/schemas/exchange-lan-network-service-config-update-partial' - required: - managing_customer - consuming_customer - outer_vlan - contacts - connection - asns - type title: ExchangeLanNetworkServiceConfigUpdate type: object exchange-lan-network-service-config-update-partial: description: Exchange Lan Network Service Config Update properties: asns: items: format: int64 maximum: 4294967295 minimum: 0 type: integer type: array capacity: description: 'The capacity of the service in Mbps. If set to Null, the maximum capacity will be used. That means, the service can consume up to the total bandwidth of the `connection`. Typically the service is charged based on the capacity.' minimum: 1 nullable: true type: integer connection: description: 'The id of the connection to use for this service config. This associates the service to a LAG. All traffic comming in on the connection with the correct VLAN-ID will be transported to this service.' type: string consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string contacts: description: 'Polymorphic set of contacts. See the documentation on the specific `required_contact_types` on what contacts to provide. ' example: - c-impl:123 - c-noc:331 items: type: string type: array contract_ref: description: 'A reference to a contract. ' example: contract:31824 maxLength: 128 nullable: true type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string id: readOnly: true type: string inner_vlan: description: This is a VLAN ID. format: int32 maximum: 4096 minimum: 0 nullable: true type: integer ips: items: type: string readOnly: true type: array macs: items: type: string type: array managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string network_feature_configs: description: 'A list of ids of network feature configurations. ' example: - '12356' - '43829' items: type: string readOnly: true type: array outer_vlan: description: 'Request a vlan from a set of ranges. A range is represented as a list of integers. The range has a max length of 2. A set of ranges is a list of lists. In case only one bound in the range is provided, it is interpreted as the exact value. `[23]` is equivalent to `[23, 23]`. To just let the platform choose for you, provide all possible ranges. `[ [0, 4096] ]`. ' example: - - 0 - 4096 items: items: format: int32 maximum: 4096 minimum: 0 type: integer type: array type: array purchase_order: default: '' description: 'Purchase Order ID which will be displayed on the invoice. ' example: 'Project: DC Moon' maxLength: 80 type: string type: example: exchange_lan type: string title: PartialExchangeLanNetworkServiceConfigUpdate type: object exchange-lan-network-service-partial: description: Exchange Lan Network Service properties: consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string contacts: description: 'Polymorphic set of contacts. See the documentation on the specific `required_contact_types` on what contacts to provide. ' example: - c-impl:123 - c-noc:331 items: type: string type: array contract_ref: description: 'A reference to a contract. ' example: contract:31824 maxLength: 128 nullable: true type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string id: readOnly: true type: string ips: items: type: string readOnly: true type: array ixfdb_ixid: description: id of ixfdb nullable: true type: integer managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string metro_area: description: '3 Letter (IATA) Airport Code of the MetroArea where the exchange lan network service is available. ' example: FRA maxLength: 3 type: string name: description: Exchange dependend service name, will be shown on the invoice. maxLength: 40 type: string network_features: items: type: string readOnly: true type: array peeringdb_ixid: description: PeeringDB ixid nullable: true type: integer product: type: string purchase_order: default: '' description: 'Purchase Order ID which will be displayed on the invoice. ' example: 'Project: DC Moon' maxLength: 80 type: string required_contact_types: description: 'The configuration will require at least one of each of the specified contact types. They can be assigned in the `contacts` list property of the config.' items: type: string type: array type: example: exchange_lan type: string title: PartialExchangeLanNetworkService type: object facility: allOf: - $ref: '#/components/schemas/facility-partial' - required: - name - metro_area - address_country - address_locality - address_region - postal_code - street_address - organisation_name title: Facility type: object facility-partial: description: Facility properties: address_country: description: 'ISO 3166-1 alpha-2 country code, for example DE ' example: US maxLength: 2 type: string address_locality: description: The locality/city. For example, Mountain View. example: Mountain View maxLength: 80 type: string address_region: description: The region. For example, CA example: CA maxLength: 80 type: string cluster: description: Group of facilities within the same building/campus example: 60 Hudson, NYC maxLength: 80 nullable: true type: string id: readOnly: true type: string metro_area: description: '3 Letter (IATA) Airport Code of the MetroArea where the DC is in. ' example: FRA maxLength: 3 type: string name: description: 'Name of the Datacenter, how the DC calls itself. ' example: Crater DC Moon 1 maxLength: 80 type: string organisation_name: description: Name of Datacenter operator example: Moon Datacenters maxLength: 80 type: string peeringdb_facility_id: description: '[PeeringDB](https://www.peeringdb.com) facitlity ID, can be extracted from the url https://www.peeringdb.com/fac/$id ' example: 103 format: int32 maximum: 2147483647 minimum: 0 nullable: true type: integer postal_code: description: A postal code. For example, 9404 example: '9409' maxLength: 18 type: string street_address: description: The street address. For example, 1600 Amphitheatre Pkwy. example: 1600 Amphitheatre Pkwy. maxLength: 80 type: string title: PartialFacility type: object implementation-contact: allOf: - $ref: '#/components/schemas/implementation-contact-partial' - required: - managing_customer - consuming_customer - name - email - type title: ImplementationContact type: object implementation-contact-partial: description: Implementation Contact Response properties: consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string email: description: Email address of the implementation contact. example: implementation@example.org maxLength: 80 type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string id: maxLength: 80 readOnly: true type: string legal_company_name: description: 'Name of the company the implentation person is working for, e.g. a third party company. ' example: Moonoc Network Services LLS. maxLength: 80 nullable: true type: string managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string name: description: Name of implementation contact example: John Dough maxLength: 80 type: string telephone: description: The telephone number in E.164 Phone Number Formatting example: '+442071838750' maxLength: 80 nullable: true type: string type: example: implementation type: string title: PartialImplementationContact type: object invoiceable: allOf: - $ref: '#/components/schemas/invoiceable-partial' - required: - contacts title: Invoiceable type: object invoiceable-partial: description: Invoiceable properties: contacts: description: 'Polymorphic set of contacts. See the documentation on the specific `required_contact_types` on what contacts to provide. ' example: - c-impl:123 - c-noc:331 items: type: string type: array contract_ref: description: 'A reference to a contract. ' example: contract:31824 maxLength: 128 nullable: true type: string purchase_order: default: '' description: 'Purchase Order ID which will be displayed on the invoice. ' example: 'Project: DC Moon' maxLength: 80 type: string title: PartialInvoiceable type: object ip-address: allOf: - $ref: '#/components/schemas/ip-address-partial' - required: - managing_customer - consuming_customer title: IpAddress type: object ip-address-partial: description: IP-Address properties: address: description: 'IPv4 or IPv6 Address in the following format: - IPv4: [dot-decimal notation](https://en.wikipedia.org/wiki/Dot-decimal_notation) - IPv6: ' example: 23.142.52.0 readOnly: true type: string consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string fqdn: maxLength: 100 nullable: true type: string id: readOnly: true type: string managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string prefix_length: description: 'The CIDR ip prefix length ' example: 23 format: int32 maximum: 128 minimum: 0 readOnly: true type: integer valid_not_after: format: date-time readOnly: true type: string valid_not_before: format: date-time readOnly: true type: string version: readOnly: true type: integer title: PartialIpAddress type: object ixp-router-network-feature: allOf: - $ref: '#/components/schemas/ixp-router-network-feature-partial' - required: - name - required - required_contact_types - flags - network_service - asn - fqdn - type title: IXPRouterNetworkFeature type: object ixp-router-network-feature-config: allOf: - $ref: '#/components/schemas/ixp-router-network-feature-config-partial' - required: - managing_customer - consuming_customer - contacts - network_feature - network_service_config - max_prefix - bgp_session_type - type title: IXPRouterNetworkFeatureConfig type: object ixp-router-network-feature-config-partial: description: IXP Router Network Feature Config properties: bgp_session_type: enum: - active - passive type: string consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string contacts: description: 'Polymorphic set of contacts. See the documentation on the specific `required_contact_types` on what contacts to provide. ' example: - c-impl:123 - c-noc:331 items: type: string type: array contract_ref: description: 'A reference to a contract. ' example: contract:31824 maxLength: 128 nullable: true type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string id: readOnly: true type: string managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string max_prefix: minimum: 0 type: integer network_feature: type: string network_service_config: type: string password: maxLength: 128 nullable: true type: string purchase_order: default: '' description: 'Purchase Order ID which will be displayed on the invoice. ' example: 'Project: DC Moon' maxLength: 80 type: string state: enum: - requested - allocated - testing - production - decommission_requested - decommissioned - archived - error - operator - scheduled readOnly: true type: string status: items: $ref: '#/components/schemas/status' type: array type: example: ixp_router type: string title: PartialIXPRouterNetworkFeatureConfig type: object ixp-router-network-feature-config-request: allOf: - $ref: '#/components/schemas/ixp-router-network-feature-config-request-partial' - required: - managing_customer - consuming_customer - contacts - network_feature - network_service_config - max_prefix - bgp_session_type - type title: IXPRouterNetworkFeatureConfigRequest type: object ixp-router-network-feature-config-request-partial: description: IXP Router Network Feature Config Request properties: bgp_session_type: enum: - active - passive type: string consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string contacts: description: 'Polymorphic set of contacts. See the documentation on the specific `required_contact_types` on what contacts to provide. ' example: - c-impl:123 - c-noc:331 items: type: string type: array contract_ref: description: 'A reference to a contract. ' example: contract:31824 maxLength: 128 nullable: true type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string id: readOnly: true type: string managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string max_prefix: minimum: 0 type: integer network_feature: type: string network_service_config: type: string password: maxLength: 128 nullable: true type: string purchase_order: default: '' description: 'Purchase Order ID which will be displayed on the invoice. ' example: 'Project: DC Moon' maxLength: 80 type: string type: example: ixp_router type: string title: PartialIXPRouterNetworkFeatureConfigRequest type: object ixp-router-network-feature-config-update: allOf: - $ref: '#/components/schemas/ixp-router-network-feature-config-update-partial' - required: - managing_customer - consuming_customer - max_prefix - bgp_session_type - type title: IXPRouterNetworkFeatureConfigUpdate type: object ixp-router-network-feature-config-update-partial: description: IXP Router Network Feature Config Update properties: bgp_session_type: enum: - active - passive type: string consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string max_prefix: minimum: 0 type: integer password: maxLength: 128 nullable: true type: string type: example: ixp_router type: string title: PartialIXPRouterNetworkFeatureConfigUpdate type: object ixp-router-network-feature-partial: description: IXP Router Network Feature properties: asn: minimum: 0 type: integer flags: description: 'A list of IXP specific feature flags. This can be used to see if e.g. RPKI hard filtering is available.' items: $ref: '#/components/schemas/ixp-specific-feature-flag' type: array fqdn: maxLength: 80 type: string id: readOnly: true type: string ips: items: type: string readOnly: true type: array name: maxLength: 80 type: string network_service: type: string required: type: boolean required_contact_types: description: 'The configuration will require at least one of each of the specified contact types. They can be assigned in the `contacts` list property of the network feature configuration.' items: type: string type: array type: example: ixp_router type: string title: PartialIXPRouterNetworkFeature type: object ixp-specific-feature-flag: allOf: - $ref: '#/components/schemas/ixp-specific-feature-flag-partial' - required: - name - description title: IXPSpecificFeatureFlag type: object ixp-specific-feature-flag-partial: description: IXP-Specific Feature Flag properties: description: description: 'The description of the feature flag. ' example: RPKI Hard Filtering is available maxLength: 80 type: string name: description: 'The name of the feature flag. ' example: RPKI maxLength: 20 type: string title: PartialIXPSpecificFeatureFlag type: object legal-contact: allOf: - $ref: '#/components/schemas/legal-contact-partial' - required: - managing_customer - consuming_customer - legal_company_name - address_country - address_locality - postal_code - street_address - email - type title: LegalContact type: object legal-contact-partial: description: Legal Contact properties: address_country: description: ISO 3166-1 alpha-2 country code, for example DE example: US maxLength: 2 type: string address_locality: description: The locality/city. For example, Mountain View. example: Mountain View maxLength: 40 type: string address_region: description: The region. For example, CA example: CA maxLength: 80 nullable: true type: string consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string email: description: 'The email of the legal company entity. ' example: info@moon-peer.net maxLength: 80 type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string id: maxLength: 80 readOnly: true type: string legal_company_name: description: 'The official name of the organization, e.g. the registered company name. ' example: Example Inc. maxLength: 80 type: string managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string post_office_box_number: description: The post office box number for PO box addresses. example: 2335232 maxLength: 80 nullable: true type: string postal_code: description: A postal code. For example, 9404 example: 9409 maxLength: 24 type: string street_address: description: The street address. For example, 1600 Amphitheatre Pkwy. example: 1600 Amphitheatre Pkwy. maxLength: 80 type: string type: example: legal type: string title: PartialLegalContact type: object mac-address: allOf: - $ref: '#/components/schemas/mac-address-partial' - required: - managing_customer - consuming_customer - address title: MacAddress type: object mac-address-partial: description: MAC-Address properties: address: description: 'MAC Address Value, formatted hexadecimal values with colons. ' example: 42:23:bc:8e:b8:b0 type: string consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string id: readOnly: true type: string managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string valid_not_after: format: date-time nullable: true type: string valid_not_before: format: date-time nullable: true type: string title: PartialMacAddress type: object network-feature: description: Polymorphic Network Feature discriminator: mapping: route_server: '#/components/schemas/route-server-network-feature' propertyName: type oneOf: - $ref: '#/components/schemas/route-server-network-feature' title: NetworkFeature network-feature-config: description: Polymorphic Network Feature Config discriminator: mapping: route_server: '#/components/schemas/route-server-network-feature-config' propertyName: type oneOf: - $ref: '#/components/schemas/route-server-network-feature-config' title: NetworkFeatureConfig network-feature-config-partial: description: Polymorphic Network Feature Config discriminator: mapping: route_server: '#/components/schemas/route-server-network-feature-config-partial' propertyName: type oneOf: - $ref: '#/components/schemas/route-server-network-feature-config-partial' title: NetworkFeatureConfig (partial) network-feature-config-request: description: Polymorphic Network Feature Config Request discriminator: mapping: route_server: '#/components/schemas/route-server-network-feature-config-request' propertyName: type oneOf: - $ref: '#/components/schemas/route-server-network-feature-config-request' title: NetworkFeatureConfigRequest network-feature-config-request-partial: description: Polymorphic Network Feature Config Request discriminator: mapping: route_server: '#/components/schemas/route-server-network-feature-config-request-partial' propertyName: type oneOf: - $ref: '#/components/schemas/route-server-network-feature-config-request-partial' title: NetworkFeatureConfigRequest (partial) network-feature-config-update: description: Polymorphic Network Feauture Config Update discriminator: mapping: route_server: '#/components/schemas/route-server-network-feature-config-update' propertyName: type oneOf: - $ref: '#/components/schemas/route-server-network-feature-config-update' title: NetworkFeatureConfigUpdate network-feature-config-update-partial: description: Polymorphic Network Feauture Config Update discriminator: mapping: route_server: '#/components/schemas/route-server-network-feature-config-update-partial' propertyName: type oneOf: - $ref: '#/components/schemas/route-server-network-feature-config-update-partial' title: NetworkFeatureConfigUpdate (partial) network-feature-partial: description: Polymorphic Network Feature discriminator: mapping: route_server: '#/components/schemas/route-server-network-feature-partial' propertyName: type oneOf: - $ref: '#/components/schemas/route-server-network-feature-partial' title: NetworkFeature (partial) network-service: description: Polymorphic Network Services discriminator: mapping: exchange_lan: '#/components/schemas/exchange-lan-network-service' propertyName: type oneOf: - $ref: '#/components/schemas/exchange-lan-network-service' title: NetworkService network-service-config: description: Polymorphic Network Service Config discriminator: mapping: exchange_lan: '#/components/schemas/exchange-lan-network-service-config' propertyName: type oneOf: - $ref: '#/components/schemas/exchange-lan-network-service-config' title: NetworkServiceConfig network-service-config-partial: description: Polymorphic Network Service Config discriminator: mapping: exchange_lan: '#/components/schemas/exchange-lan-network-service-config-partial' propertyName: type oneOf: - $ref: '#/components/schemas/exchange-lan-network-service-config-partial' title: NetworkServiceConfig (partial) network-service-config-request: description: Polymorhic Network Service Config Request discriminator: mapping: exchange_lan: '#/components/schemas/exchange-lan-network-service-config-request' propertyName: type oneOf: - $ref: '#/components/schemas/exchange-lan-network-service-config-request' title: NetworkServiceConfigRequest network-service-config-request-partial: description: Polymorhic Network Service Config Request discriminator: mapping: exchange_lan: '#/components/schemas/exchange-lan-network-service-config-request-partial' propertyName: type oneOf: - $ref: '#/components/schemas/exchange-lan-network-service-config-request-partial' title: NetworkServiceConfigRequest (partial) network-service-config-update: description: Polymorphic Network Service Config discriminator: mapping: exchange_lan: '#/components/schemas/exchange-lan-network-service-config-update' propertyName: type oneOf: - $ref: '#/components/schemas/exchange-lan-network-service-config-update' title: NetworkServiceConfigUpdate network-service-config-update-partial: description: Polymorphic Network Service Config discriminator: mapping: exchange_lan: '#/components/schemas/exchange-lan-network-service-config-update-partial' propertyName: type oneOf: - $ref: '#/components/schemas/exchange-lan-network-service-config-update-partial' title: NetworkServiceConfigUpdate (partial) network-service-partial: description: Polymorphic Network Services discriminator: mapping: exchange_lan: '#/components/schemas/exchange-lan-network-service-partial' propertyName: type oneOf: - $ref: '#/components/schemas/exchange-lan-network-service-partial' title: NetworkService (partial) noc-contact: allOf: - $ref: '#/components/schemas/noc-contact-partial' - required: - managing_customer - consuming_customer - email - type title: NocContact type: object noc-contact-partial: description: NOC Contact Response properties: consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string email: description: 'The email of the NOC. Typically noc@ ' example: noc@moon-peer.net maxLength: 80 type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string id: maxLength: 80 readOnly: true type: string managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string telephone: description: The telephone number in E.164 Phone Number Formatting example: '+442071838750' maxLength: 40 nullable: true type: string type: example: noc type: string title: PartialNocContact type: object ownable: allOf: - $ref: '#/components/schemas/ownable-partial' - required: - managing_customer - consuming_customer title: Ownable type: object ownable-partial: description: Ownable properties: consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string title: PartialOwnable type: object peering-contact: allOf: - $ref: '#/components/schemas/peering-contact-partial' - required: - managing_customer - consuming_customer - email - type title: PeeringContact type: object peering-contact-partial: description: Peering Contact Response properties: consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string email: description: 'The peering email of the customer. Typically peering@ ' example: peering@moon-peer.net maxLength: 80 type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string id: maxLength: 80 readOnly: true type: string managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string type: example: peering type: string title: PartialPeeringContact type: object point-of-presence: allOf: - $ref: '#/components/schemas/point-of-presence-partial' - required: - name - reachable_facilities - available_devices title: PointOfPresence type: object point-of-presence-device: allOf: - $ref: '#/components/schemas/point-of-presence-device-partial' - title: PointOfPresenceDevice type: object point-of-presence-device-partial: description: Device with `presence` annotation properties: id: readOnly: true type: string presence: readOnly: true type: string title: PartialPointOfPresenceDevice type: object point-of-presence-partial: description: Point Of Presence properties: available_devices: items: type: string type: array id: readOnly: true type: string name: maxLength: 40 type: string physical_facility: readOnly: true type: string reachable_facilities: items: type: string type: array title: PartialPointOfPresence type: object problem-response: allOf: - $ref: '#/components/schemas/problem-response-partial' - required: - type title: ProblemResponse type: object problem-response-partial: description: Encodes a problem into an appropriate response body. properties: detail: description: 'A human-readable explanation specific to this occurrence of the problem.' type: string instance: description: 'A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.' type: string status: description: 'The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.' minimum: 100 type: integer title: description: 'A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4). ' example: Some fields have validation errors. type: string type: description: 'A URI reference (see RFC3986) that identifies the problem type. This specification encourages that, when dereferenced, it provide human-readable documentation for the problem type (e.g., using HTML [W3C.REC-html5-20141028]). When this member is not present, its value is assumed to be "about:blank". ' example: about:blank type: string title: PartialProblemResponse type: object product: description: Polymorphic Product discriminator: mapping: exchange_lan: '#/components/schemas/exchange-lan-network-product' propertyName: type oneOf: - $ref: '#/components/schemas/exchange-lan-network-product' title: Product product-partial: description: Polymorphic Product discriminator: mapping: exchange_lan: '#/components/schemas/exchange-lan-network-product-partial' propertyName: type oneOf: - $ref: '#/components/schemas/exchange-lan-network-product-partial' title: Product (partial) refresh-token-request: allOf: - $ref: '#/components/schemas/refresh-token-request-partial' - required: - refresh_token title: RefreshTokenRequest type: object refresh-token-request-partial: description: RefreshTokenRequest properties: refresh_token: type: string title: PartialRefreshTokenRequest type: object route-server-network-feature: allOf: - $ref: '#/components/schemas/route-server-network-feature-partial' - required: - name - required - required_contact_types - flags - network_service - asn - fqdn - looking_glass_url - address_families - session_mode - available_bgp_session_types - type title: RouteServerNetworkFeature type: object route-server-network-feature-config: allOf: - $ref: '#/components/schemas/route-server-network-feature-config-partial' - required: - managing_customer - consuming_customer - contacts - network_feature - network_service_config - asn - session_mode - bgp_session_type - type title: RouteServerNetworkFeatureConfig type: object route-server-network-feature-config-partial: description: Route Server Network Feature Config properties: as_set_v4: description: 'AS-Set of the customer for IPv4 prefix filtering. This is used to generate filters on the router servers. Only valid referenced prefixes within the AS-Set are allowed inbound to the route server. All other routes are filtered. This field is *required* with session mode `public` if the route server network feature supports the `af_inet` address family. Important: The format has to be: "AS-SET@IRR". IRR is the database where the AS-SET is registred. Typically used IRR''s are RADB, RIPE, NTTCOM, APNIC, ALTDB, LEVEL3, ARIN, AFRINIC, LACNIC ' example: MOON-AS@RIPE maxLength: 100 nullable: true type: string as_set_v6: description: 'AS-Set of the customer for IPv6. This is used to generate filters on the router servers. Only valid referenced prefixes within the AS-Set are allowed inbound to the route server. All other routes are filtered. This field is *required* with session mode `public` if the route server network feature supports the `af_inet6` address family. Important: The format has to be: "AS-SET@IRR". IRR is the database where the AS-SET is registred. Typically used IRR''s are RADB, RIPE, NTTCOM, APNIC, ALTDB, LEVEL3, ARIN, AFRINIC, LACNIC ' example: MOON-AS@RIPE maxLength: 100 nullable: true type: string asn: description: 'The ASN of the peer. ' example: 4200000023 format: int64 maximum: 4294967295 minimum: 0 type: integer bgp_session_type: description: 'The session type describes which of the both parties will open the connection. If set to passive, the customer router needs to open the connection. If its set to active, the route server will open the connection. The standard behavior on most IX''s is passive. ' enum: - active - passive example: passive type: string consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string contacts: description: 'Polymorphic set of contacts. See the documentation on the specific `required_contact_types` on what contacts to provide. ' example: - c-impl:123 - c-noc:331 items: type: string type: array contract_ref: description: 'A reference to a contract. ' example: contract:31824 maxLength: 128 nullable: true type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string id: readOnly: true type: string insert_ixp_asn: default: true description: 'Insert the ASN of the IXP into the AS path. This function is only used in special cases. In 99% of all cases, it should be false. ' type: boolean managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string max_prefix_v4: description: 'Announcing more than `max_prefix` IPv4 prefixes the bgp session will be droped. ' example: 5000 minimum: 0 nullable: true type: integer max_prefix_v6: description: 'Announcing more than `max_prefix` IPv6 prefixes the bgp session will be droped. ' example: 5000 minimum: 0 nullable: true type: integer network_feature: type: string network_service_config: type: string password: default: '' description: The cleartext BGP session password example: bgp-session-test-23 maxLength: 128 type: string purchase_order: default: '' description: 'Purchase Order ID which will be displayed on the invoice. ' example: 'Project: DC Moon' maxLength: 80 type: string session_mode: description: 'Set the session mode with the routeserver. ' enum: - public - collector example: public type: string state: enum: - requested - allocated - testing - production - decommission_requested - decommissioned - archived - error - operator - scheduled readOnly: true type: string status: items: $ref: '#/components/schemas/status' type: array type: example: route_server type: string title: PartialRouteServerNetworkFeatureConfig type: object route-server-network-feature-config-request: allOf: - $ref: '#/components/schemas/route-server-network-feature-config-request-partial' - required: - managing_customer - consuming_customer - contacts - network_feature - network_service_config - asn - session_mode - bgp_session_type - type title: RouteServerNetworkFeatureConfigRequest type: object route-server-network-feature-config-request-partial: description: Route Server Network Feature Config Request properties: as_set_v4: description: 'AS-Set of the customer for IPv4 prefix filtering. This is used to generate filters on the router servers. Only valid referenced prefixes within the AS-Set are allowed inbound to the route server. All other routes are filtered. This field is *required* with session mode `public` if the route server network feature supports the `af_inet` address family. Important: The format has to be: "AS-SET@IRR". IRR is the database where the AS-SET is registred. Typically used IRR''s are RADB, RIPE, NTTCOM, APNIC, ALTDB, LEVEL3, ARIN, AFRINIC, LACNIC ' example: MOON-AS@RIPE maxLength: 100 nullable: true type: string as_set_v6: description: 'AS-Set of the customer for IPv6. This is used to generate filters on the router servers. Only valid referenced prefixes within the AS-Set are allowed inbound to the route server. All other routes are filtered. This field is *required* with session mode `public` if the route server network feature supports the `af_inet6` address family. Important: The format has to be: "AS-SET@IRR". IRR is the database where the AS-SET is registred. Typically used IRR''s are RADB, RIPE, NTTCOM, APNIC, ALTDB, LEVEL3, ARIN, AFRINIC, LACNIC ' example: MOON-AS@RIPE maxLength: 100 nullable: true type: string asn: description: 'The ASN of the peer. ' example: 4200000023 format: int64 maximum: 4294967295 minimum: 0 type: integer bgp_session_type: description: 'The session type describes which of the both parties will open the connection. If set to passive, the customer router needs to open the connection. If its set to active, the route server will open the connection. The standard behavior on most IX''s is passive. ' enum: - active - passive example: passive type: string consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string contacts: description: 'Polymorphic set of contacts. See the documentation on the specific `required_contact_types` on what contacts to provide. ' example: - c-impl:123 - c-noc:331 items: type: string type: array contract_ref: description: 'A reference to a contract. ' example: contract:31824 maxLength: 128 nullable: true type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string id: readOnly: true type: string insert_ixp_asn: default: true description: 'Insert the ASN of the IXP into the AS path. This function is only used in special cases. In 99% of all cases, it should be false. ' type: boolean managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string max_prefix_v4: description: 'Announcing more than `max_prefix` IPv4 prefixes the bgp session will be droped. ' example: 5000 minimum: 0 nullable: true type: integer max_prefix_v6: description: 'Announcing more than `max_prefix` IPv6 prefixes the bgp session will be droped. ' example: 5000 minimum: 0 nullable: true type: integer network_feature: type: string network_service_config: type: string password: default: '' description: The cleartext BGP session password example: bgp-session-test-23 maxLength: 128 type: string purchase_order: default: '' description: 'Purchase Order ID which will be displayed on the invoice. ' example: 'Project: DC Moon' maxLength: 80 type: string session_mode: description: 'Set the session mode with the routeserver. ' enum: - public - collector example: public type: string type: example: route_server type: string title: PartialRouteServerNetworkFeatureConfigRequest type: object route-server-network-feature-config-update: allOf: - $ref: '#/components/schemas/route-server-network-feature-config-update-partial' - required: - managing_customer - consuming_customer - asn - session_mode - bgp_session_type - type title: RouteServerNetworkFeatureConfigUpdate type: object route-server-network-feature-config-update-partial: description: Route Server Network Feature Config Update properties: as_set_v4: description: 'AS-Set of the customer for IPv4 prefix filtering. This is used to generate filters on the router servers. Only valid referenced prefixes within the AS-Set are allowed inbound to the route server. All other routes are filtered. This field is *required* with session mode `public` if the route server network feature supports the `af_inet` address family. Important: The format has to be: "AS-SET@IRR". IRR is the database where the AS-SET is registred. Typically used IRR''s are RADB, RIPE, NTTCOM, APNIC, ALTDB, LEVEL3, ARIN, AFRINIC, LACNIC ' example: MOON-AS@RIPE maxLength: 100 nullable: true type: string as_set_v6: description: 'AS-Set of the customer for IPv6. This is used to generate filters on the router servers. Only valid referenced prefixes within the AS-Set are allowed inbound to the route server. All other routes are filtered. This field is *required* with session mode `public` if the route server network feature supports the `af_inet6` address family. Important: The format has to be: "AS-SET@IRR". IRR is the database where the AS-SET is registred. Typically used IRR''s are RADB, RIPE, NTTCOM, APNIC, ALTDB, LEVEL3, ARIN, AFRINIC, LACNIC ' example: MOON-AS@RIPE maxLength: 100 nullable: true type: string asn: description: 'The ASN of the peer. ' example: 4200000023 format: int64 maximum: 4294967295 minimum: 0 type: integer bgp_session_type: description: 'The session type describes which of the both parties will open the connection. If set to passive, the customer router needs to open the connection. If its set to active, the route server will open the connection. The standard behavior on most IX''s is passive. ' enum: - active - passive example: passive type: string consuming_customer: description: 'The `id` of the customer account consuming a service. Used to be `owning_customer`. ' example: '2381982' type: string external_ref: description: Reference field, free to use for the API user. example: IX:Service:23042 maxLength: 128 nullable: true type: string insert_ixp_asn: default: true description: 'Insert the ASN of the IXP into the AS path. This function is only used in special cases. In 99% of all cases, it should be false. ' type: boolean managing_customer: description: 'The `id` of the customer responsible for managing the service via the API. Used to be `billing_customer`. ' example: '238189294' type: string max_prefix_v4: description: 'Announcing more than `max_prefix` IPv4 prefixes the bgp session will be droped. ' example: 5000 minimum: 0 nullable: true type: integer max_prefix_v6: description: 'Announcing more than `max_prefix` IPv6 prefixes the bgp session will be droped. ' example: 5000 minimum: 0 nullable: true type: integer password: default: '' description: The cleartext BGP session password example: bgp-session-test-23 maxLength: 128 type: string session_mode: description: 'Set the session mode with the routeserver. ' enum: - public - collector example: public type: string type: example: route_server type: string title: PartialRouteServerNetworkFeatureConfigUpdate type: object route-server-network-feature-partial: description: Route Server Network Feature properties: address_families: description: 'When creating a route server feature config, remember to specify which address family or families to use. ' example: - af_inet items: enum: - af_inet - af_inet6 type: string type: array asn: minimum: 0 type: integer available_bgp_session_types: description: 'The route server provides the following session modes. ' example: - passive items: enum: - active - passive type: string type: array flags: description: 'A list of IXP specific feature flags. This can be used to see if e.g. RPKI hard filtering is available.' items: $ref: '#/components/schemas/ixp-specific-feature-flag' type: array fqdn: description: 'The FQDN of the route server. ' example: rs1.moon-ix.net maxLength: 80 type: string id: readOnly: true type: string ips: items: type: string readOnly: true type: array looking_glass_url: description: 'The url of the looking glass. ' example: https://lg.moon-ix.net/rs1 type: string name: maxLength: 80 type: string network_service: type: string required: type: boolean required_contact_types: description: 'The configuration will require at least one of each of the specified contact types. They can be assigned in the `contacts` list property of the network feature configuration.' items: type: string type: array session_mode: description: 'When creating a route server feature config, remember to specify the same session_mode as the route server. ' enum: - public - collector example: public type: string type: example: route_server type: string title: PartialRouteServerNetworkFeature type: object stateful: allOf: - $ref: '#/components/schemas/stateful-partial' - title: Stateful type: object stateful-partial: description: A stateful object properties: state: enum: - requested - allocated - testing - production - decommission_requested - decommissioned - archived - error - operator - scheduled readOnly: true type: string status: items: $ref: '#/components/schemas/status' type: array title: PartialStateful type: object status: allOf: - $ref: '#/components/schemas/status-partial' - required: - severity - tag - message - attrs - timestamp title: Status type: object status-partial: description: Status Message properties: attrs: type: object message: type: string severity: description: 'We are using syslog severity levels: 0 = Emergency, 1 = Alert, 2 = Critical, 3 = Error, 4 = Warning, 5 = Notice, 6 = Informational, 7 = Debug. ' example: 2 format: int32 maximum: 7 minimum: 0 type: integer tag: type: string timestamp: format: date-time type: string title: PartialStatus type: object info: contact: email: team@ix-api.net url: https://ix-api.net description: This API allows to config/change/delete Internet Exchange services title: IX-API version: 1.2.8 openapi: 3.0.0 paths: /auth/refresh: post: description: 'Reauthenticate the API user, issue a new `access_token` and `refresh_token` pair by providing the `refresh_token` in the request body.' operationId: auth_token_refresh requestBody: content: application/json: schema: $ref: '#/components/schemas/refresh-token-request' description: RefreshTokenRequest responses: 200: content: application/json: schema: $ref: '#/components/schemas/auth-token' description: AuthToken 400: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 400 title: example: Some fields did not validate. type: enum: - https://errors.ix-api.net/v1/validation-error.html type: string type: object description: ValidationError 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html - https://errors.ix-api.net/v1/not-authenticated.html type: string type: object description: Authentication tags: - auth /auth/token: post: description: 'Authenticate a customer identified by `api_key` and `api_secret`.' operationId: auth_token_create requestBody: content: application/json: schema: $ref: '#/components/schemas/auth-token-request' description: AuthTokenRequest responses: 200: content: application/json: schema: $ref: '#/components/schemas/auth-token' description: AuthToken 400: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 400 title: example: Some fields did not validate. type: enum: - https://errors.ix-api.net/v1/validation-error.html type: string type: object description: ValidationError 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html - https://errors.ix-api.net/v1/not-authenticated.html type: string type: object description: Authentication tags: - auth /connections: get: description: List all `connection`s. operationId: connections_list parameters: - description: Filter by id explode: false in: query name: id required: false schema: example: id1,id2,id3 items: type: string type: array style: form - description: Filter by state in: query name: state required: false schema: type: string - description: Filter by state__is_not in: query name: state__is_not required: false schema: type: string - description: Filter by mode in: query name: mode required: false schema: type: string - description: Filter by mode__is_not in: query name: mode__is_not required: false schema: type: string - description: Filter by demarc in: query name: demarc required: false schema: type: string - description: Filter by name in: query name: name required: false schema: type: string - description: Filter by external_ref in: query name: external_ref required: false schema: type: string responses: 200: content: application/json: schema: items: $ref: '#/components/schemas/connection' type: array description: 'List of: Connection' 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied tags: - connections /connections/{id}: get: description: Read a `connection`. operationId: connections_read parameters: - description: Get by id in: path name: id required: true schema: description: '' title: '' type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/connection' description: Connection 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied 404: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 404 title: example: Not found. type: enum: - https://errors.ix-api.net/v1/not-found.html type: string type: object description: NotFound tags: - connections /contacts: get: description: List available contacts managed by the authorized customer. operationId: contacts_list parameters: - description: Filter by id explode: false in: query name: id required: false schema: example: id1,id2,id3 items: type: string type: array style: form - description: Filter by managing_customer in: query name: managing_customer required: false schema: type: string - description: Filter by consuming_customer in: query name: consuming_customer required: false schema: type: string - description: Filter by external_ref in: query name: external_ref required: false schema: type: string - description: Filter by type in: query name: type required: false schema: enum: - legal - noc - peering - implementation - billing type: string responses: 200: content: application/json: schema: items: $ref: '#/components/schemas/contact' type: array description: 'List of: Polymorphic Contact' 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied tags: - contacts post: description: 'Create a new contact. Please remember to set the correct `type` of the contact when sending the request. Available types are `noc`, `billing`, `legal` and `implementation`.' operationId: contacts_create requestBody: content: application/json: schema: $ref: '#/components/schemas/contact' description: Polymorphic Contact responses: 201: content: application/json: schema: $ref: '#/components/schemas/contact' description: Polymorphic Contact 400: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 400 title: example: Some fields did not validate. type: enum: - https://errors.ix-api.net/v1/validation-error.html type: string type: object description: ValidationError 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied tags: - contacts /contacts/{id}: delete: description: Remove a contact operationId: contacts_destroy parameters: - description: Get by id in: path name: id required: true schema: description: '' title: '' type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/contact' description: Polymorphic Contact 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied 404: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 404 title: example: Not found. type: enum: - https://errors.ix-api.net/v1/not-found.html type: string type: object description: NotFound tags: - contacts get: description: Get a contact by it's id operationId: contacts_read parameters: - description: Get by id in: path name: id required: true schema: description: '' title: '' type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/contact' description: Polymorphic Contact 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied 404: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 404 title: example: Not found. type: enum: - https://errors.ix-api.net/v1/not-found.html type: string type: object description: NotFound tags: - contacts patch: description: Update parts of a contact operationId: contacts_partial_update parameters: - description: Get by id in: path name: id required: true schema: description: '' title: '' type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/contact' description: Polymorphic Contact responses: 200: content: application/json: schema: $ref: '#/components/schemas/contact' description: Polymorphic Contact 400: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 400 title: example: Some fields did not validate. type: enum: - https://errors.ix-api.net/v1/validation-error.html type: string type: object description: ValidationError 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied 404: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 404 title: example: Not found. type: enum: - https://errors.ix-api.net/v1/not-found.html type: string type: object description: NotFound tags: - contacts put: description: Update a contact operationId: contacts_update parameters: - description: Get by id in: path name: id required: true schema: description: '' title: '' type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/contact' description: Polymorphic Contact responses: 200: content: application/json: schema: $ref: '#/components/schemas/contact' description: Polymorphic Contact 400: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 400 title: example: Some fields did not validate. type: enum: - https://errors.ix-api.net/v1/validation-error.html type: string type: object description: ValidationError 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied 404: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 404 title: example: Not found. type: enum: - https://errors.ix-api.net/v1/not-found.html type: string type: object description: NotFound tags: - contacts /customers: get: description: 'Retrieve a list of customers. This includes all customers the current authorized customer is managing and the current customer itself.' operationId: customers_list parameters: - description: Filter by id explode: false in: query name: id required: false schema: example: id1,id2,id3 items: type: string type: array style: form - description: Filter by state in: query name: state required: false schema: type: string - description: Filter by state__is_not in: query name: state__is_not required: false schema: type: string - description: Filter by parent in: query name: parent required: false schema: type: string - description: Filter by external_ref in: query name: external_ref required: false schema: type: string - description: Filter by name in: query name: name required: false schema: type: string responses: 200: content: application/json: schema: items: $ref: '#/components/schemas/customer' type: array description: 'List of: Customer' 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied tags: - customers post: description: 'Create a new customer. Please remember that a customer may require some `contacts` to be created. Otherwise it will stay in an `error` state.' operationId: customers_create requestBody: content: application/json: schema: $ref: '#/components/schemas/customer-input' description: Customer Request responses: 201: content: application/json: schema: $ref: '#/components/schemas/customer' description: Customer 400: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 400 title: example: Some fields did not validate. type: enum: - https://errors.ix-api.net/v1/validation-error.html type: string type: object description: ValidationError 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied tags: - customers /customers/{id}: get: description: Get a single customer. operationId: customers_read parameters: - description: Get by id in: path name: id required: true schema: description: '' title: '' type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/customer' description: Customer 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied 404: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 404 title: example: Not found. type: enum: - https://errors.ix-api.net/v1/not-found.html type: string type: object description: NotFound tags: - customers patch: description: Update the entire customer. operationId: customers_partial_update parameters: - description: Get by id in: path name: id required: true schema: description: '' title: '' type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/customer-partial' description: Customer responses: 200: content: application/json: schema: $ref: '#/components/schemas/customer' description: Customer 400: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 400 title: example: Some fields did not validate. type: enum: - https://errors.ix-api.net/v1/validation-error.html type: string type: object description: ValidationError 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied 404: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 404 title: example: Not found. type: enum: - https://errors.ix-api.net/v1/not-found.html type: string type: object description: NotFound tags: - customers put: description: Update the entire customer. operationId: customers_update parameters: - description: Get by id in: path name: id required: true schema: description: '' title: '' type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/customer' description: Customer responses: 200: content: application/json: schema: $ref: '#/components/schemas/customer' description: Customer 400: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 400 title: example: Some fields did not validate. type: enum: - https://errors.ix-api.net/v1/validation-error.html type: string type: object description: ValidationError 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied 404: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 404 title: example: Not found. type: enum: - https://errors.ix-api.net/v1/not-found.html type: string type: object description: NotFound tags: - customers /demarcs: get: description: List all `demarc`s. operationId: demarcs_list parameters: - description: Filter by id explode: false in: query name: id required: false schema: example: id1,id2,id3 items: type: string type: array style: form - description: Filter by state in: query name: state required: false schema: type: string - description: Filter by state__is_not in: query name: state__is_not required: false schema: type: string - description: Filter by media_type in: query name: media_type required: false schema: type: string - description: Filter by pop in: query name: pop required: false schema: type: string - description: Filter by name in: query name: name required: false schema: type: string - description: Filter by external_ref in: query name: external_ref required: false schema: type: string - description: Filter by speed in: query name: speed required: false schema: type: string - description: Filter by connection in: query name: connection required: false schema: type: string responses: 200: content: application/json: schema: items: $ref: '#/components/schemas/demarcation-point' type: array description: 'List of: Demarc' 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied tags: - demarcs /demarcs/{id}: get: description: Retrieve a `demarc` operationId: demarcs_read parameters: - description: Get by id in: path name: id required: true schema: description: '' title: '' type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/demarcation-point' description: Demarc 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied 404: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 404 title: example: Not found. type: enum: - https://errors.ix-api.net/v1/not-found.html type: string type: object description: NotFound tags: - demarcs /devices: get: description: List available devices operationId: devices_list parameters: - description: Filter by id explode: false in: query name: id required: false schema: example: id1,id2,id3 items: type: string type: array style: form - description: Filter by name in: query name: name required: false schema: type: string - description: Filter by capability_media_type in: query name: capability_media_type required: false schema: type: string - description: Filter by capability_speed in: query name: capability_speed required: false schema: type: integer - description: Filter by capability_speed__lt in: query name: capability_speed__lt required: false schema: type: integer - description: Filter by capability_speed__lte in: query name: capability_speed__lte required: false schema: type: integer - description: Filter by capability_speed__gt in: query name: capability_speed__gt required: false schema: type: integer - description: Filter by capability_speed__gte in: query name: capability_speed__gte required: false schema: type: integer - description: Filter by faclitiy in: query name: faclitiy required: false schema: type: string - description: Filter by product in: query name: product required: false schema: type: string responses: 200: content: application/json: schema: items: $ref: '#/components/schemas/device' type: array description: 'List of: Device' 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied tags: - devices /devices/{id}: get: description: Get a specific device identified by id operationId: devices_read parameters: - description: Get by id in: path name: id required: true schema: description: '' title: '' type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/device' description: Device 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied 404: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 404 title: example: Not found. type: enum: - https://errors.ix-api.net/v1/not-found.html type: string type: object description: NotFound tags: - devices /facilities: get: description: Get a (filtered) list of `facilities`. operationId: facilities_list parameters: - description: Filter by id explode: false in: query name: id required: false schema: example: id1,id2,id3 items: type: string type: array style: form - description: Filter by cluster in: query name: cluster required: false schema: type: string - description: Filter by device in: query name: device required: false schema: type: string - description: Filter by capability_speed in: query name: capability_speed required: false schema: type: integer - description: Filter by capability_speed__lt in: query name: capability_speed__lt required: false schema: type: integer - description: Filter by capability_speed__lte in: query name: capability_speed__lte required: false schema: type: integer - description: Filter by capability_speed__gt in: query name: capability_speed__gt required: false schema: type: integer - description: Filter by capability_speed__gte in: query name: capability_speed__gte required: false schema: type: integer - description: Filter by organisation_name in: query name: organisation_name required: false schema: type: string - description: Filter by metro_area in: query name: metro_area required: false schema: type: string - description: Filter by address_country in: query name: address_country required: false schema: type: string - description: Filter by address_locality in: query name: address_locality required: false schema: type: string - description: Filter by postal_code in: query name: postal_code required: false schema: type: string responses: 200: content: application/json: schema: items: $ref: '#/components/schemas/facility' type: array description: 'List of: Facility' 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied tags: - facilities /facilities/{id}: get: description: Retrieve a facility by id operationId: facilities_read parameters: - description: Get by id in: path name: id required: true schema: description: '' title: '' type: string responses: 200: content: application/json: schema: items: $ref: '#/components/schemas/facility' type: array description: 'List of: Facility' 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied 404: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 404 title: example: Not found. type: enum: - https://errors.ix-api.net/v1/not-found.html type: string type: object description: NotFound tags: - facilities /ips: get: description: List all ip addresses (and prefixes). operationId: ips_list parameters: - description: Filter by id explode: false in: query name: id required: false schema: example: id1,id2,id3 items: type: string type: array style: form - description: Filter by managing_customer in: query name: managing_customer required: false schema: type: string - description: Filter by consuming_customer in: query name: consuming_customer required: false schema: type: string - description: Filter by external_ref in: query name: external_ref required: false schema: type: string - description: Filter by network_service in: query name: network_service required: false schema: type: string - description: Filter by network_service_config in: query name: network_service_config required: false schema: type: string - description: Filter by network_feature in: query name: network_feature required: false schema: type: string - description: Filter by network_feature_config in: query name: network_feature_config required: false schema: type: string - description: Filter by version in: query name: version required: false schema: type: integer - description: Filter by fqdn in: query name: fqdn required: false schema: type: string - description: Filter by prefix_length in: query name: prefix_length required: false schema: type: integer - description: Filter by valid_not_before in: query name: valid_not_before required: false schema: type: string - description: Filter by valid_not_after in: query name: valid_not_after required: false schema: type: string responses: 200: content: application/json: schema: items: $ref: '#/components/schemas/ip-address' type: array description: 'List of: IP-Address' 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied tags: - ips /ips/{id}: get: description: Get a single ip addresses by it's id. operationId: ips_read parameters: - description: Get by id in: path name: id required: true schema: description: '' title: '' type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/ip-address' description: IP-Address 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied 404: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 404 title: example: Not found. type: enum: - https://errors.ix-api.net/v1/not-found.html type: string type: object description: NotFound tags: - ips patch: description: 'Update parts of an ip address. As with the `PUT` opertaion, IP addresses, where you don''t have update rights, will yield a `resource access denied` error when attempting an update.' operationId: ips_partial_update parameters: - description: Get by id in: path name: id required: true schema: description: '' title: '' type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ip-address' description: IP-Address responses: 200: content: application/json: schema: $ref: '#/components/schemas/ip-address' description: IP-Address 400: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 400 title: example: Some fields did not validate. type: enum: - https://errors.ix-api.net/v1/validation-error.html type: string type: object description: ValidationError 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied 404: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 404 title: example: Not found. type: enum: - https://errors.ix-api.net/v1/not-found.html type: string type: object description: NotFound tags: - ips put: description: 'Update an ip address object. You can only update IP addresses within your current scope. Not all addresses you can read you can update.' operationId: ips_update parameters: - description: Get by id in: path name: id required: true schema: description: '' title: '' type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ip-address' description: IP-Address responses: 200: content: application/json: schema: $ref: '#/components/schemas/ip-address' description: IP-Address 400: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 400 title: example: Some fields did not validate. type: enum: - https://errors.ix-api.net/v1/validation-error.html type: string type: object description: ValidationError 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied 404: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 404 title: example: Not found. type: enum: - https://errors.ix-api.net/v1/not-found.html type: string type: object description: NotFound tags: - ips /macs: get: description: List all mac addresses managed by the authorized customer. operationId: macs_list parameters: - description: Filter by id explode: false in: query name: id required: false schema: example: id1,id2,id3 items: type: string type: array style: form - description: Filter by managing_customer in: query name: managing_customer required: false schema: type: string - description: Filter by consuming_customer in: query name: consuming_customer required: false schema: type: string - description: Filter by external_ref in: query name: external_ref required: false schema: type: string - description: Filter by network_service_config in: query name: network_service_config required: false schema: type: string - description: Filter by address in: query name: address required: false schema: type: string - description: Filter by assigned_at in: query name: assigned_at required: false schema: type: string - description: Filter by valid_not_before in: query name: valid_not_before required: false schema: type: string - description: Filter by valid_not_after in: query name: valid_not_after required: false schema: type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/mac-address' description: MAC-Address 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied tags: - macs post: description: Create a new mac address. operationId: macs_create requestBody: content: application/json: schema: $ref: '#/components/schemas/mac-address' description: MAC-Address responses: 201: content: application/json: schema: $ref: '#/components/schemas/mac-address' description: MAC-Address 400: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 400 title: example: Some fields did not validate. type: enum: - https://errors.ix-api.net/v1/validation-error.html type: string type: object description: ValidationError 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied tags: - macs /macs/{id}: delete: description: Remove a mac address. operationId: macs_destroy parameters: - description: Get by id in: path name: id required: true schema: description: '' title: '' type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/mac-address' description: MAC-Address 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied 404: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 404 title: example: Not found. type: enum: - https://errors.ix-api.net/v1/not-found.html type: string type: object description: NotFound tags: - macs get: description: Get a single mac address by it's id. operationId: macs_read parameters: - description: Get by id in: path name: id required: true schema: description: '' title: '' type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/mac-address' description: MAC-Address 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied 404: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 404 title: example: Not found. type: enum: - https://errors.ix-api.net/v1/not-found.html type: string type: object description: NotFound tags: - macs /network-feature-configs: get: description: Get all network feature configs. operationId: network-feature-configs_list parameters: - description: Filter by id explode: false in: query name: id required: false schema: example: id1,id2,id3 items: type: string type: array style: form - description: Filter by state in: query name: state required: false schema: type: string - description: Filter by state__is_not in: query name: state__is_not required: false schema: type: string - description: Filter by managing_customer in: query name: managing_customer required: false schema: type: string - description: Filter by consuming_customer in: query name: consuming_customer required: false schema: type: string - description: Filter by external_ref in: query name: external_ref required: false schema: type: string - description: Filter by type in: query name: type required: false schema: enum: - blackholing - route_server - ixp_router type: string - description: Filter by service_config in: query name: service_config required: false schema: type: string - description: Filter by network_feature in: query name: network_feature required: false schema: type: string responses: 200: content: application/json: schema: items: $ref: '#/components/schemas/network-feature-config' type: array description: 'List of: Polymorphic Network Feature Config' 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied tags: - network-feature-configs post: description: 'Create a new feature configuration. Remeber to provide a feature `type` and the id of the `network_feature` you want to configure. Additionally you have to provide the `network_service_config` where you want to use the network feature. You can query the available features from the `/api/v1/network-features` resource.' operationId: network-feature-configs_create requestBody: content: application/json: schema: $ref: '#/components/schemas/network-feature-config-request' description: Polymorphic Network Feature Config Request responses: 201: content: application/json: schema: $ref: '#/components/schemas/network-feature-config' description: Polymorphic Network Feature Config 400: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 400 title: example: Some fields did not validate. type: enum: - https://errors.ix-api.net/v1/validation-error.html type: string type: object description: ValidationError 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied tags: - network-feature-configs /network-feature-configs/{id}: delete: description: Remove a network feature config operationId: network-feature-configs_destroy parameters: - description: Get by id in: path name: id required: true schema: description: '' title: '' type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/network-feature-config' description: Polymorphic Network Feature Config 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied 404: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 404 title: example: Not found. type: enum: - https://errors.ix-api.net/v1/not-found.html type: string type: object description: NotFound tags: - network-feature-configs get: description: Get a single network feature config. operationId: network-feature-configs_read parameters: - description: Get by id in: path name: id required: true schema: description: '' title: '' type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/network-feature-config' description: Polymorphic Network Feature Config 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied 404: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 404 title: example: Not found. type: enum: - https://errors.ix-api.net/v1/not-found.html type: string type: object description: NotFound tags: - network-feature-configs patch: description: Update parts of a network feature configuration operationId: network-feature-configs_partial_update parameters: - description: Get by id in: path name: id required: true schema: description: '' title: '' type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/network-feature-config-update-partial' description: Polymorphic Network Feauture Config Update responses: 200: content: application/json: schema: $ref: '#/components/schemas/network-feature-config' description: Polymorphic Network Feature Config 400: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 400 title: example: Some fields did not validate. type: enum: - https://errors.ix-api.net/v1/validation-error.html type: string type: object description: ValidationError 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied 404: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 404 title: example: Not found. type: enum: - https://errors.ix-api.net/v1/not-found.html type: string type: object description: NotFound tags: - network-feature-configs put: description: Update a network feature configuration operationId: network-feature-configs_update parameters: - description: Get by id in: path name: id required: true schema: description: '' title: '' type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/network-feature-config-update' description: Polymorphic Network Feauture Config Update responses: 200: content: application/json: schema: $ref: '#/components/schemas/network-feature-config' description: Polymorphic Network Feature Config 400: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 400 title: example: Some fields did not validate. type: enum: - https://errors.ix-api.net/v1/validation-error.html type: string type: object description: ValidationError 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied 404: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 404 title: example: Not found. type: enum: - https://errors.ix-api.net/v1/not-found.html type: string type: object description: NotFound tags: - network-feature-configs /network-features: get: description: List available network features. operationId: network-features_list parameters: - description: Filter by id explode: false in: query name: id required: false schema: example: id1,id2,id3 items: type: string type: array style: form - description: Filter by type in: query name: type required: false schema: enum: - blackholing - route_server - ixp_router type: string - description: Filter by required in: query name: required required: false schema: type: string - description: Filter by network_service in: query name: network_service required: false schema: type: string - description: Filter by name in: query name: name required: false schema: type: string responses: 200: content: application/json: schema: items: $ref: '#/components/schemas/network-feature' type: array description: 'List of: Polymorphic Network Feature' 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied tags: - network-features /network-features/{id}: get: description: Get a single network feature by it's id. operationId: network-features_read parameters: - description: Get by id in: path name: id required: true schema: description: '' title: '' type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/network-feature' description: Polymorphic Network Feature 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied 404: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 404 title: example: Not found. type: enum: - https://errors.ix-api.net/v1/not-found.html type: string type: object description: NotFound tags: - network-features /network-service-configs: get: description: Get all `network-service-config`s. operationId: network-service-configs_list parameters: - description: Filter by id explode: false in: query name: id required: false schema: example: id1,id2,id3 items: type: string type: array style: form - description: Filter by state in: query name: state required: false schema: type: string - description: Filter by state__is_not in: query name: state__is_not required: false schema: type: string - description: Filter by managing_customer in: query name: managing_customer required: false schema: type: string - description: Filter by consuming_customer in: query name: consuming_customer required: false schema: type: string - description: Filter by external_ref in: query name: external_ref required: false schema: type: string - description: Filter by type in: query name: type required: false schema: enum: - exchange_lan - closed_user_group - eline - cloud type: string - description: Filter by inner_vlan in: query name: inner_vlan required: false schema: type: integer - description: Filter by outer_vlan in: query name: outer_vlan required: false schema: type: integer - description: Filter by capacity in: query name: capacity required: false schema: type: integer - description: Filter by connection in: query name: connection required: false schema: type: string responses: 200: content: application/json: schema: items: $ref: '#/components/schemas/network-service-config' type: array description: 'List of: Polymorphic Network Service Config' 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied tags: - network-service-configs post: description: Create a `network-service-config`. operationId: network-service-configs_create requestBody: content: application/json: schema: $ref: '#/components/schemas/network-service-config-request' description: Polymorhic Network Service Config Request responses: 201: content: application/json: schema: $ref: '#/components/schemas/network-service-config' description: Polymorphic Network Service Config 400: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 400 title: example: Some fields did not validate. type: enum: - https://errors.ix-api.net/v1/validation-error.html type: string type: object description: ValidationError 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied tags: - network-service-configs /network-service-configs/{id}: delete: description: Deconfigure the network service. operationId: network-service-configs_destroy parameters: - description: Get by id in: path name: id required: true schema: description: '' title: '' type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/network-service-config' description: Polymorphic Network Service Config 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied 404: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 404 title: example: Not found. type: enum: - https://errors.ix-api.net/v1/not-found.html type: string type: object description: NotFound tags: - network-service-configs get: description: Get a `network-service-config` operationId: network-service-configs_read parameters: - description: Get by id in: path name: id required: true schema: description: '' title: '' type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/network-service-config' description: Polymorphic Network Service Config 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied 404: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 404 title: example: Not found. type: enum: - https://errors.ix-api.net/v1/not-found.html type: string type: object description: NotFound tags: - network-service-configs patch: description: Update parts of an exisiting `network-service-config`. operationId: network-service-configs_partial_update parameters: - description: Get by id in: path name: id required: true schema: description: '' title: '' type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/network-service-config-update-partial' description: Polymorphic Network Service Config responses: 200: content: application/json: schema: $ref: '#/components/schemas/network-service-config' description: Polymorphic Network Service Config 400: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 400 title: example: Some fields did not validate. type: enum: - https://errors.ix-api.net/v1/validation-error.html type: string type: object description: ValidationError 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied 404: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 404 title: example: Not found. type: enum: - https://errors.ix-api.net/v1/not-found.html type: string type: object description: NotFound tags: - network-service-configs put: description: Update an exisiting `network-service-config` operationId: network-service-configs_update parameters: - description: Get by id in: path name: id required: true schema: description: '' title: '' type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/network-service-config-update' description: Polymorphic Network Service Config responses: 200: content: application/json: schema: $ref: '#/components/schemas/network-service-config' description: Polymorphic Network Service Config 400: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 400 title: example: Some fields did not validate. type: enum: - https://errors.ix-api.net/v1/validation-error.html type: string type: object description: ValidationError 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied 404: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 404 title: example: Not found. type: enum: - https://errors.ix-api.net/v1/not-found.html type: string type: object description: NotFound tags: - network-service-configs /network-services: get: description: List available `network-services`. operationId: network-services_list parameters: - description: Filter by id explode: false in: query name: id required: false schema: example: id1,id2,id3 items: type: string type: array style: form - description: Filter by managing_customer in: query name: managing_customer required: false schema: type: string - description: Filter by consuming_customer in: query name: consuming_customer required: false schema: type: string - description: Filter by external_ref in: query name: external_ref required: false schema: type: string - description: Filter by type in: query name: type required: false schema: enum: - exchange_lan - closed_user_group - eline - cloud type: string - description: Filter by pop in: query name: pop required: false schema: type: string - description: Filter by product in: query name: product required: false schema: type: string responses: 200: content: application/json: schema: items: $ref: '#/components/schemas/network-service' type: array description: 'List of: Polymorphic Network Services' 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied tags: - network-services /network-services/{id}: get: description: Get a specific `network-service` by id. operationId: network-services_read parameters: - description: Get by id in: path name: id required: true schema: description: '' title: '' type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/network-service' description: Polymorphic Network Services 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied 404: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 404 title: example: Not found. type: enum: - https://errors.ix-api.net/v1/not-found.html type: string type: object description: NotFound tags: - network-services /pops: get: description: List all PoPs operationId: pops_list parameters: - description: Filter by id explode: false in: query name: id required: false schema: example: id1,id2,id3 items: type: string type: array style: form - description: Filter by physical_facility in: query name: physical_facility required: false schema: type: string - description: Filter by reachable_facility in: query name: reachable_facility required: false schema: type: string - description: Filter by reachable_devices in: query name: reachable_devices required: false schema: type: string responses: 200: content: application/json: schema: items: $ref: '#/components/schemas/point-of-presence' type: array description: 'List of: Point Of Presence' 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied tags: - pops /pops/{id}: get: description: Get a single point of presence operationId: pops_read parameters: - description: Get by id in: path name: id required: true schema: description: '' title: '' type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/point-of-presence' description: Point Of Presence 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied 404: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 404 title: example: Not found. type: enum: - https://errors.ix-api.net/v1/not-found.html type: string type: object description: NotFound tags: - pops /products: get: description: List all (filtered) products available on the platform operationId: products_list parameters: - description: Filter by id explode: false in: query name: id required: false schema: example: id1,id2,id3 items: type: string type: array style: form - description: Filter by type in: query name: type required: false schema: enum: - exchange_lan - closed_user_group - eline - cloud type: string - description: Filter by name in: query name: name required: false schema: type: string - description: Filter by metro_area in: query name: metro_area required: false schema: type: string - description: Filter by provider in: query name: provider required: false schema: type: string - description: Filter by handover_point in: query name: handover_point required: false schema: type: string - description: Filter by zone in: query name: zone required: false schema: type: string - description: Filter by device in: query name: device required: false schema: type: string responses: 200: content: application/json: schema: items: $ref: '#/components/schemas/product' type: array description: 'List of: Polymorphic Product' 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied tags: - products /products/{id}: get: description: Get a specific product by id operationId: products_read parameters: - description: Get by id in: path name: id required: true schema: description: '' title: '' type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/product' description: Polymorphic Product 401: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 401 title: example: Authentication Credentials Invalid type: enum: - https://errors.ix-api.net/v1/authentication-error.html - https://errors.ix-api.net/v1/signature-expired.html type: string type: object description: Authentication 403: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 403 title: example: You do not have permission to perform this action. type: enum: - https://errors.ix-api.net/v1/permission-denied.html type: string type: object description: PermissionDenied 404: content: application/json: schema: allOf: - $ref: '#/components/schemas/problem-response' - properties: status: example: 404 title: example: Not found. type: enum: - https://errors.ix-api.net/v1/not-found.html type: string type: object description: NotFound tags: - products servers: - url: /api/v1 tags: - description: 'Open an authorized session with the IX-API by sending an `api_key` and `api_secret` pair to the `/api/v1/tokens` resource. This is equivalent to a ''login'' endpoint. Upon success, you will receive an `access_token` and a `refreh_token`. The refresh token can be used for regenerating the lifetime limited access token. Use the `access_token` as `Bearer` in your `Authorziation` header for getting access to the API. The `auth_token` (and `refresh_token`) have limited lifetimes. As both are JWTs, you can directy get this information from them. When the session (`access_token`) expires, you can (within the lifetime of the `refresh_token`) reauthenticate by providing only the `refresh_token`. Make a `POST` request to the `/api/v1/auth/refresh` resource.' name: auth - description: 'A `Connection` is a functional group of physical connections collected together into a LAG (aka trunk). A `connection` with only one `demarc` can be also configured as standalone which means no LAG configuration on the switch.' name: connections - description: 'A `Contact` is a role undertaking a specific responsibility within a customer, typically a department or agent of the customer company. These can be `implementation`, `noc`, `legal`, `peering` or `billing`. A contact is bound to the customer by the `consuming_customer` property.' name: contacts - description: 'A `Customer` is a company using services from an IXP. The customers can have a hierarchy. A customer can have subcustomers. Each customer needs to have different contacts, depending on the exchange and the service he wants to use. For a customer to become operational, you need to provide a `legal` contact.' name: customers - description: 'A `Demarc` (demarcation point) is the point at which customer and IXP networks meet, eg a physical port / socket, generally with a specified bandwidth. Demarcs are listed on a LoA (Letter of Authorisation). Exchange customers need this information to order a cross connect from the datacenter operator to be interconnected to the exchange. Due to the reason a `demarc` is patched to a switch, it comes with necessary extra informations like speed and optics `type`. A `demarc` is always associated to one `pop`.' name: demarcs - description: 'A `Device` is a network hardware device, typically a Switch, which is located at a specified facility and connected to one or more PoPs. They may be physically located at their related PoPs or remotely available.' name: devices - description: 'A `Facility` is a data centre, with a determined physical address, from which a defined set of PoPs can be accessed' name: facilities - description: 'An `IP` is a IPv4 or 6 addresses, with a given validity period. Some services require IP addresses to work. When you are joining an `exchange_lan` network service for example, addresses on the peering lan will be assigned to you.' name: ips - description: 'A `MAC` is a MAC addresses with a given validity period. Some services require MAC addresses to work. The address itself can not be updated after creation. However: It can be expired by changing the `valid_not_before` and `valid_not_after` properties.' name: macs - description: 'A `NetworkFeatureConfig` is a customer''s configuration for usage of a `NetworkFeature`.' name: network-feature-configs - description: "`NetworkFeatures` are functionality made available to customers\n\ within a `NetworkService`.\nCertain features may need to be configured by a customer\ \ to use\nthat service.\n\nThis can be for example a `route server` on an `exchange\ \ lan`.\n\nSome of these features are mandatory to configure if you\nwant to access\ \ the platform. Which of these features you have to\nconfigure you can query using:\n\ \ `/api/v1/network-features?required=true`" name: network-features - description: 'A `NetworkServiceConfig` is a customer''s configuration for usage of a `NetworkService`, eg the configuration of a (subset of a) connection for that customer''s traffic The `type` of the config determines the service you are configuring. You can find the services available to you on the platform, by querying the `/api/v1/network-services` resource.' name: network-service-configs - description: 'A `NetworkService` is an instances of a `Product` accessible by one or multiple users, depending on the type of product For example, each Exchange Network LAN is considered as a shared instance of the related LAN''s `Product`' name: network-services - description: 'A `PoP` is a location within a Facility which is connected to a single Network Infrastructure and has defined reachability of other facilities. A single room may contain multiple PoPs, each linking to a different infrastructure.' name: pops - description: 'A `Product` is a network or peering-related product of a defined type sold by an IXP to its `Customers`' name: products