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