{"openapi":"3.0.0","servers":[{"url":"/api/v2"}],"info":{"contact":{"url":"https://ix-api.net"},"description":"\nThis API allows to config/change/delete Internet Exchange services.\n\n# Filters\n\nWhen querying collections, the provided query parameters\nare validated. Unknown query parameters are ignored.\nProviding invalid filter values should yield a validation error.\n","title":"IX-API","version":"2.1.0","x-apisguru-categories":["security"],"x-logo":{"url":"https://ix-api.net/ix-api/icons/cropped-favicon-1-180x180.png"},"x-origin":[{"format":"openapi","url":"https://docs.ix-api.net/v2/ix-api-latest.json","version":"3.0"}],"x-providerName":"ix-api.net"},"security":[{"Bearer":[]}],"tags":[{"description":"An `Account` represents an individual customer account, organization\nor partner involved with the IXP. They are used to consume\nservices from an IXP.\n\nAccounts can have a hierarchy, i.e. an\naccount can have sub-accounts. The max-depth of\nthe account-hierarchy may vary by implementer, but it's safe to\nassume an account can have sub-accounts.\n\nEach `Account` has a state. Only `Account`s in state `production`\nor `production_state_pending` are ready to consume services.\n\nThere are `Contact`s associated with each account. Contacts can\nbe assigned for `Role`s via `RoleAssignment`s. Depending on the\nIXP and the services the account wants to use, contacts with\nspecific roles may be required.\nA contact with role `legal` is mandatory for an account to become\noperational.\n\nOnly accounts with `billing_information` present can be used\nas a `billing_account`.","name":"accounts"},{"description":"Open an authorized session with the IX-API. This is equivalent to\na 'login' endpoint.\n\nUpon success, you will receive an `access_token` and\na `refreh_token`. Both are JWTs and have limited lifetimes. You\ncan get information like their expiry time directly by parsing\nthe tokens.\n\nUse the `access_token` as `Bearer` in your `Authorization` header\nfor getting access to the API.\n\nWhen the session (i.e. the `access_token`) expires, use the\n`refresh_token` (if it's not yet expired) with the\n`refresh`-endpoint to reauthenticate and get a fresh `access_token`.","name":"auth"},{"description":"A `Connection` is a functional group of physical connections\ncollected together into a LAG (aka trunk).\n\nA `connection` with only one `port` can be also configured as\nstandalone which means no LAG configuration on the switch.","name":"connections"},{"description":"A `Contact` is a role undertaking a specific responsibility\nwithin an account, typically a department or agent of the\ncustomer company.\n\n`Contact`s are assigned multiple roles by `RoleAssignment`s.\n\nA contact is bound to the account by the `consuming_account` property.","name":"contacts"},{"description":"A `Device` is a network hardware device, typically a switch, which\nis located at a specified facility and inside a `PointOfPresence`.\nPoPs.\n\nThey may be physically located at their related PoPs.","name":"devices"},{"description":"A `Facility` is a data centre, with a determined physical address,\nfrom which a defined set of PoPs can be accessed","name":"facilities"},{"description":"This endpoint provides a health status response implementing\nhttps://tools.ietf.org/id/draft-inadarei-api-health-check-04.html\n\nThe schema describes the toplevel fields - however the\nimplementation of health checks is up to the IX-API implementor.","name":"health"},{"description":"This endpoint provides information about the IX-API\nimplementation of the exchange.\n\nYou can find the implemented schema version and\nsupported types and operations here.","name":"implementation"},{"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":"ips"},{"description":"A `MAC` is a MAC addresses with a given validity period.\n\nSome services require MAC addresses to work.\nPlease note that only *unicast* MAC addresses are allowed.\nYou are not alllowed to use multicast or broadcast addresses.\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":"macs"},{"description":"A `MemberJoiningRule` defines a rule to allow or deny access for\nan `Account` to a access a `NetworkService`.\n\nFurthermore, some `NetworkService`s may only be visible if the\nquerying account is listed in an allow rule.","name":"member-joining-rules"},{"description":"Services are provided directly on or can be consumed\nfrom inside a `MetroAreaNetwork`.\n\nAccounts can indicate their presence in a `MetroAreaNetwork`\nto others by adding a list of ids.","name":"metro-area-networks"},{"description":"A MetroArea exists if a `MetroAreaNetwork` or `Facility` is\npresent in it.","name":"metro-areas"},{"description":"A `NetworkFeatureConfig` is a configuration for\nusing a `NetworkFeature`.\n\nFor certain `NetworkFeature`s, which are marked as required,\none `NetworkFeatureConfig needs to be created in order to move\nthe `NetworkServiceConfig` into `production`.","name":"network-feature-configs"},{"description":"A `NetworkFeature` represents additional funcationality of a single\n`NetworkService`.\n\nFor certain `NetworkFeature`s, which are marked as required,\none `NetworkFeatureConfig needs to be created in order to move\nthe  `NetworkServiceConfig` into `production`.","name":"network-features"},{"description":"A `NetworkServiceConfig` is a customer's configuration for usage\nof a `NetworkService`, e.g. 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 `NetworkService`s resource.\n\nFor certain `NetworkFeature`s, which are marked as required,\none `NetworkFeatureConfig needs to be created in order to move\nthe  `NetworkServiceConfig` into `production`.","name":"network-service-configs"},{"description":"A `NetworkService` represents an instance of a `ProductOffering`.\n\nThe exchange lan is a special case in which the `NetworkService` is\nmanaged by the exchange.\n\nAll other `NetworkService`s are created and managed by an `Account`.","name":"network-services"},{"description":"A `PointOfPresence` is a technical installation within a Facility\nwhich is connected to a single `MetroAreaNetwork`. A single\n`MetroAreaNetwork`, however, may have multiple `PointOfPresence`s.","name":"pops"},{"description":"A `Port` is the point at which subscriber and\nIXP networks meet. A port is always associated with\na `device` and `pop`, has a `speed` and a `media_type`.","name":"ports"},{"description":"A `ProductOffering` is an offer made by an exchange\nto be consumed by a client.","name":"product-offerings"},{"description":"A `Contact` can be assigned to many `Roles`.","name":"role-assignments"},{"description":"A `Role` enables a `Contact` to act for a specific purpose.\n\nWell-defined roles are: `implementation`, `noc` and `peering`.\nAn implementer may choose to support them or not or may add\nadditional ones.","name":"roles"}],"paths":{"/accounts":{"get":{"description":"Retrieve a list of `Account`s.\n\nThis includes all accounts the currently authorized account\nis managing and the current account itself.","operationId":"accounts_list","parameters":[{"description":"Filter by id","explode":false,"in":"query","name":"id","required":false,"schema":{"example":"id1,id2,id3","items":{"type":"string"},"type":"array"},"style":"form"},{"description":"Filter by state","in":"query","name":"state","required":false,"schema":{"type":"string"}},{"description":"Filter by state__is_not","in":"query","name":"state__is_not","required":false,"schema":{"type":"string"}},{"description":"Filter by managing_account","in":"query","name":"managing_account","required":false,"schema":{"type":"string"}},{"description":"Filter by billable","in":"query","name":"billable","required":false,"schema":{"type":"integer"}},{"description":"Filter by external_ref","in":"query","name":"external_ref","required":false,"schema":{"type":"string"}},{"description":"Filter by name","in":"query","name":"name","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Account"},"type":"array"}}},"description":"List of: Account"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"}},"tags":["accounts"]},"post":{"description":"Create a new account.","operationId":"accounts_create","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountRequest"}}},"description":"Account Request"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Account"}}},"description":"Account"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"}},"tags":["accounts"]}},"/accounts/{id}":{"delete":{"description":"Accounts can be deleted, when all services and configs\nare decommissioned or the account is not longer referenced\ne.g. as a `managing_account` or `billing_account`.\n\nDeleting an account will cascade to `contacts` and\n`role-assignments`.\n\nThe request will immediately fail, if the above preconditions\nare not met.","operationId":"accounts_destroy","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Account"}}},"description":"Account"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["accounts"]},"get":{"description":"Get a single account.","operationId":"accounts_read","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Account"}}},"description":"Account"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["accounts"]},"patch":{"description":"Update parts of an account.","operationId":"accounts_partial_update","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"requestBody":{"content":{"application/merge-patch+json":{"schema":{"$ref":"#/components/schemas/AccountUpdatePartial"}}},"description":"Account Update Request"},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Account"}}},"description":"Account"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["accounts"]},"put":{"description":"Update the entire account.","operationId":"accounts_update","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountUpdate"}}},"description":"Account Update Request"},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Account"}}},"description":"Account"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["accounts"]}},"/auth/refresh":{"post":{"description":"Reauthenticate the API user, issue a new `access_token`\nand `refresh_token` pair by providing the `refresh_token`\nin the request body.","operationId":"auth_token_refresh","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefreshTokenRequest"}}},"description":"RefreshTokenRequest"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthToken"}}},"description":"AuthToken"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html","https://errors.ix-api.net/v2/not-authenticated.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"}},"security":[],"tags":["auth"]}},"/auth/token":{"post":{"description":"Authenticate an API user identified by `api_key` and\n`api_secret`.","operationId":"auth_token_create","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthTokenRequest"}}},"description":"AuthTokenRequest"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthToken"}}},"description":"AuthToken"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html","https://errors.ix-api.net/v2/not-authenticated.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"}},"security":[],"tags":["auth"]}},"/connections":{"get":{"description":"List all `connection`s.","operationId":"connections_list","parameters":[{"description":"Filter by id","explode":false,"in":"query","name":"id","required":false,"schema":{"example":"id1,id2,id3","items":{"type":"string"},"type":"array"},"style":"form"},{"description":"Filter by state","in":"query","name":"state","required":false,"schema":{"type":"string"}},{"description":"Filter by state__is_not","in":"query","name":"state__is_not","required":false,"schema":{"type":"string"}},{"description":"Filter by mode","in":"query","name":"mode","required":false,"schema":{"type":"string"}},{"description":"Filter by mode__is_not","in":"query","name":"mode__is_not","required":false,"schema":{"type":"string"}},{"description":"Filter by name","in":"query","name":"name","required":false,"schema":{"type":"string"}},{"description":"Filter by metro_area_network","in":"query","name":"metro_area_network","required":false,"schema":{"type":"string"}},{"description":"Filter by pop","in":"query","name":"pop","required":false,"schema":{"type":"string"}},{"description":"Filter by facility","in":"query","name":"facility","required":false,"schema":{"type":"string"}},{"description":"Filter by external_ref","in":"query","name":"external_ref","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Connection"},"type":"array"}}},"description":"List of: Connection"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"}},"tags":["connections"]}},"/connections/{id}":{"get":{"description":"Read a `connection`.","operationId":"connections_read","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Connection"}}},"description":"Connection"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["connections"]}},"/contacts":{"get":{"description":"List available contacts managed by the authorized account.","operationId":"contacts_list","parameters":[{"description":"Filter by id","explode":false,"in":"query","name":"id","required":false,"schema":{"example":"id1,id2,id3","items":{"type":"string"},"type":"array"},"style":"form"},{"description":"Filter by managing_account","in":"query","name":"managing_account","required":false,"schema":{"type":"string"}},{"description":"Filter by consuming_account","in":"query","name":"consuming_account","required":false,"schema":{"type":"string"}},{"description":"Filter by external_ref","in":"query","name":"external_ref","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Contact"},"type":"array"}}},"description":"List of: Contact"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"}},"tags":["contacts"]},"post":{"description":"Create a new contact.","operationId":"contacts_create","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactRequest"}}},"description":"A contact creation request"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Contact"}}},"description":"Contact"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"}},"tags":["contacts"]}},"/contacts/{id}":{"delete":{"description":"Remove a contact.\n\nPlease note, that a contact can only be removed if\nit is not longer in use in a network service or config\nthrough a role assignment.","operationId":"contacts_destroy","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Contact"}}},"description":"Contact"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Unable to fulfill your request."},"type":{"enum":["https://errors.ix-api.net/v2/unable-to-fulfill.html"],"type":"string"}},"type":"object"},{}]}}},"description":"UnableToFulfill"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["contacts"]},"get":{"description":"Get a contact by it's id","operationId":"contacts_read","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Contact"}}},"description":"Contact"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["contacts"]},"patch":{"description":"Update parts of a contact","operationId":"contacts_partial_update","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"requestBody":{"content":{"application/merge-patch+json":{"schema":{"$ref":"#/components/schemas/ContactRequestPartial"}}},"description":"A contact creation request"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Contact"}}},"description":"Contact"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["contacts"]},"put":{"description":"Update a contact","operationId":"contacts_update","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactRequest"}}},"description":"A contact creation request"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Contact"}}},"description":"Contact"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["contacts"]}},"/devices":{"get":{"description":"List available devices","operationId":"devices_list","parameters":[{"description":"Filter by id","explode":false,"in":"query","name":"id","required":false,"schema":{"example":"id1,id2,id3","items":{"type":"string"},"type":"array"},"style":"form"},{"description":"Filter by name","in":"query","name":"name","required":false,"schema":{"type":"string"}},{"description":"Filter by capability_media_type","in":"query","name":"capability_media_type","required":false,"schema":{"type":"string"}},{"description":"Filter by capability_speed","in":"query","name":"capability_speed","required":false,"schema":{"type":"integer"}},{"description":"Filter by capability_speed__lt","in":"query","name":"capability_speed__lt","required":false,"schema":{"type":"integer"}},{"description":"Filter by capability_speed__lte","in":"query","name":"capability_speed__lte","required":false,"schema":{"type":"integer"}},{"description":"Filter by capability_speed__gt","in":"query","name":"capability_speed__gt","required":false,"schema":{"type":"integer"}},{"description":"Filter by capability_speed__gte","in":"query","name":"capability_speed__gte","required":false,"schema":{"type":"integer"}},{"description":"Filter by facility","in":"query","name":"facility","required":false,"schema":{"type":"string"}},{"description":"Filter by pop","in":"query","name":"pop","required":false,"schema":{"type":"string"}},{"description":"Filter by metro_area_network","in":"query","name":"metro_area_network","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Device"},"type":"array"}}},"description":"List of: Device"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"}},"tags":["devices"]}},"/devices/{id}":{"get":{"description":"Get a specific device identified by id","operationId":"devices_read","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Device"}}},"description":"Device"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["devices"]}},"/facilities":{"get":{"description":"Get a (filtered) list of `facilities`.","operationId":"facilities_list","parameters":[{"description":"Filter by id","explode":false,"in":"query","name":"id","required":false,"schema":{"example":"id1,id2,id3","items":{"type":"string"},"type":"array"},"style":"form"},{"description":"Filter by capability_media_type","in":"query","name":"capability_media_type","required":false,"schema":{"type":"string"}},{"description":"Filter by capability_speed","in":"query","name":"capability_speed","required":false,"schema":{"type":"integer"}},{"description":"Filter by capability_speed__lt","in":"query","name":"capability_speed__lt","required":false,"schema":{"type":"integer"}},{"description":"Filter by capability_speed__lte","in":"query","name":"capability_speed__lte","required":false,"schema":{"type":"integer"}},{"description":"Filter by capability_speed__gt","in":"query","name":"capability_speed__gt","required":false,"schema":{"type":"integer"}},{"description":"Filter by capability_speed__gte","in":"query","name":"capability_speed__gte","required":false,"schema":{"type":"integer"}},{"description":"Filter by organisation_name","in":"query","name":"organisation_name","required":false,"schema":{"type":"string"}},{"description":"Filter by metro_area","in":"query","name":"metro_area","required":false,"schema":{"type":"string"}},{"description":"Filter by metro_area_network","in":"query","name":"metro_area_network","required":false,"schema":{"type":"string"}},{"description":"Filter by address_country","in":"query","name":"address_country","required":false,"schema":{"type":"string"}},{"description":"Filter by address_locality","in":"query","name":"address_locality","required":false,"schema":{"type":"string"}},{"description":"Filter by postal_code","in":"query","name":"postal_code","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Facility"},"type":"array"}}},"description":"List of: Facility"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"}},"tags":["facilities"]}},"/facilities/{id}":{"get":{"description":"Retrieve a facility by id","operationId":"facilities_read","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Facility"},"type":"array"}}},"description":"List of: Facility"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["facilities"]}},"/health":{"get":{"description":"Get the IX-API service health status.","operationId":"api_health_read","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}},"description":"Health Status Response"}},"tags":["health"]}},"/implementation":{"get":{"description":"Get the API implementation details.","operationId":"api_implementation_read","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImplementationResponse"}}},"description":"API Implementation"}},"tags":["implementation"]}},"/ips":{"get":{"description":"List all ip addresses (and prefixes).","operationId":"ips_list","parameters":[{"description":"Filter by id","explode":false,"in":"query","name":"id","required":false,"schema":{"example":"id1,id2,id3","items":{"type":"string"},"type":"array"},"style":"form"},{"description":"Filter by managing_account","in":"query","name":"managing_account","required":false,"schema":{"type":"string"}},{"description":"Filter by consuming_account","in":"query","name":"consuming_account","required":false,"schema":{"type":"string"}},{"description":"Filter by external_ref","in":"query","name":"external_ref","required":false,"schema":{"type":"string"}},{"description":"Filter by network_service","in":"query","name":"network_service","required":false,"schema":{"type":"string"}},{"description":"Filter by network_service_config","in":"query","name":"network_service_config","required":false,"schema":{"type":"string"}},{"description":"Filter by network_feature","in":"query","name":"network_feature","required":false,"schema":{"type":"string"}},{"description":"Filter by network_feature_config","in":"query","name":"network_feature_config","required":false,"schema":{"type":"string"}},{"description":"Filter by version","in":"query","name":"version","required":false,"schema":{"type":"integer"}},{"description":"Filter by fqdn","in":"query","name":"fqdn","required":false,"schema":{"type":"string"}},{"description":"Filter by prefix_length","in":"query","name":"prefix_length","required":false,"schema":{"type":"integer"}},{"description":"Filter by valid_not_before","in":"query","name":"valid_not_before","required":false,"schema":{"type":"string"}},{"description":"Filter by valid_not_after","in":"query","name":"valid_not_after","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/IpAddress"},"type":"array"}}},"description":"List of: IP-Address"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"}},"tags":["ips"]},"post":{"description":"Add an ip host address or network prefix.","operationId":"ips_create","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IpAddressRequest"}}},"description":"IP-Address / Prefix allocation Request"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IpAddress"}}},"description":"IP-Address"}},"tags":["ips"]}},"/ips/{id}":{"get":{"description":"Get a single ip addresses by it's id.","operationId":"ips_read","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IpAddress"}}},"description":"IP-Address"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["ips"]},"patch":{"description":"Update parts of an ip address.\n\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.\n\nIf the ip address was allocated for you, you might\nnot be able to change anything but the `fqdn`.","operationId":"ips_partial_update","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"requestBody":{"content":{"application/merge-patch+json":{"schema":{"$ref":"#/components/schemas/IpAddressUpdatePartial"}}},"description":"IP-Address Update"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IpAddress"}}},"description":"IP-Address"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["ips"]},"put":{"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.\n\nIf the ip address was allocated for you, you might\nnot be able to change anything but the `fqdn`.","operationId":"ips_update","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IpAddressUpdate"}}},"description":"IP-Address Update"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IpAddress"}}},"description":"IP-Address"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["ips"]}},"/macs":{"get":{"description":"List all mac addresses managed by the authorized customer.","operationId":"macs_list","parameters":[{"description":"Filter by id","explode":false,"in":"query","name":"id","required":false,"schema":{"example":"id1,id2,id3","items":{"type":"string"},"type":"array"},"style":"form"},{"description":"Filter by managing_account","in":"query","name":"managing_account","required":false,"schema":{"type":"string"}},{"description":"Filter by consuming_account","in":"query","name":"consuming_account","required":false,"schema":{"type":"string"}},{"description":"Filter by external_ref","in":"query","name":"external_ref","required":false,"schema":{"type":"string"}},{"description":"Filter by network_service_config","in":"query","name":"network_service_config","required":false,"schema":{"type":"string"}},{"description":"Filter by address","in":"query","name":"address","required":false,"schema":{"type":"string"}},{"description":"Filter by assigned_at","in":"query","name":"assigned_at","required":false,"schema":{"type":"string"}},{"description":"Filter by valid_not_before","in":"query","name":"valid_not_before","required":false,"schema":{"type":"string"}},{"description":"Filter by valid_not_after","in":"query","name":"valid_not_after","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/MacAddress"},"type":"array"}}},"description":"List of: MAC-Address"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"}},"tags":["macs"]},"post":{"description":"Register a mac address.","operationId":"macs_create","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MacAddressRequest"}}},"description":"MAC-Address Request"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MacAddress"}}},"description":"MAC-Address"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"}},"tags":["macs"]}},"/macs/{id}":{"delete":{"description":"Remove a mac address.","operationId":"macs_destroy","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MacAddress"}}},"description":"MAC-Address"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Unable to fulfill your request."},"type":{"enum":["https://errors.ix-api.net/v2/unable-to-fulfill.html"],"type":"string"}},"type":"object"},{}]}}},"description":"UnableToFulfill"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["macs"]},"get":{"description":"Get a single mac address by it's id.","operationId":"macs_read","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MacAddress"}}},"description":"MAC-Address"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["macs"]}},"/member-joining-rules":{"get":{"description":"Get a list of joining rules","operationId":"member_joining_rules_list","parameters":[{"description":"Filter by id","explode":false,"in":"query","name":"id","required":false,"schema":{"example":"id1,id2,id3","items":{"type":"string"},"type":"array"},"style":"form"},{"description":"Filter by network_service","in":"query","name":"network_service","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/MemberJoiningRule"},"type":"array"}}},"description":"List of: Polymorphic Member Joining Rule"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"}},"tags":["member-joining-rules"]},"post":{"description":"Create a member joining rule","operationId":"member_joining_rules_create","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemberJoiningRuleRequest"}}},"description":"Polymorphic Member Joining Rule Request"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemberJoiningRule"}}},"description":"Polymorphic Member Joining Rule"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"}},"tags":["member-joining-rules"]}},"/member-joining-rules/{id}":{"delete":{"description":"Delete a joining rule","operationId":"member_joining_rules_destroy","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemberJoiningRule"}}},"description":"Polymorphic Member Joining Rule"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Unable to fulfill your request."},"type":{"enum":["https://errors.ix-api.net/v2/unable-to-fulfill.html"],"type":"string"}},"type":"object"},{}]}}},"description":"UnableToFulfill"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["member-joining-rules"]},"get":{"description":"Get a single rule","operationId":"member_joining_rules_read","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemberJoiningRule"}}},"description":"Polymorphic Member Joining Rule"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["member-joining-rules"]},"patch":{"description":"Partially update a joining rule","operationId":"member_joining_rules_partial_update","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"requestBody":{"content":{"application/merge-patch+json":{"schema":{"$ref":"#/components/schemas/MemberJoiningRuleUpdatePartial"}}},"description":"Polymorphic Member Joining Rule Update"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemberJoiningRule"}}},"description":"Polymorphic Member Joining Rule"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["member-joining-rules"]},"put":{"description":"Update a joining rule","operationId":"member_joining_rules_update","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemberJoiningRuleUpdate"}}},"description":"Polymorphic Member Joining Rule Update"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemberJoiningRule"}}},"description":"Polymorphic Member Joining Rule"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["member-joining-rules"]}},"/metro-area-networks":{"get":{"description":"List all MetroAreaNetworks","operationId":"metro_area_networks_list","parameters":[{"description":"Filter by id","explode":false,"in":"query","name":"id","required":false,"schema":{"example":"id1,id2,id3","items":{"type":"string"},"type":"array"},"style":"form"},{"description":"Filter by name","in":"query","name":"name","required":false,"schema":{"type":"string"}},{"description":"Filter by metro_area","in":"query","name":"metro_area","required":false,"schema":{"type":"string"}},{"description":"Filter by service_provider","in":"query","name":"service_provider","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/MetroAreaNetwork"},"type":"array"}}},"description":"List of: MetroAreaNetwork"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"}},"tags":["metro-area-networks"]}},"/metro-area-networks/{id}":{"get":{"description":"Retrieve a MetroAreaNetwork","operationId":"metro_area_networks_read","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetroAreaNetwork"}}},"description":"MetroAreaNetwork"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["metro-area-networks"]}},"/metro-areas":{"get":{"description":"List all MetroAreas","operationId":"metro_areas_list","parameters":[{"description":"Filter by id","explode":false,"in":"query","name":"id","required":false,"schema":{"example":"id1,id2,id3","items":{"type":"string"},"type":"array"},"style":"form"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/MetroArea"},"type":"array"}}},"description":"List of: MetroArea"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"}},"tags":["metro-areas"]}},"/metro-areas/{id}":{"get":{"description":"Get a single MetroArea","operationId":"metro_areas_read","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/MetroArea"},"type":"array"}}},"description":"List of: MetroArea"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["metro-areas"]}},"/network-feature-configs":{"get":{"description":"Get all network feature configs.","operationId":"network_feature_configs_list","parameters":[{"description":"Filter by id","explode":false,"in":"query","name":"id","required":false,"schema":{"example":"id1,id2,id3","items":{"type":"string"},"type":"array"},"style":"form"},{"description":"Filter by state","in":"query","name":"state","required":false,"schema":{"type":"string"}},{"description":"Filter by state__is_not","in":"query","name":"state__is_not","required":false,"schema":{"type":"string"}},{"description":"Filter by managing_account","in":"query","name":"managing_account","required":false,"schema":{"type":"string"}},{"description":"Filter by consuming_account","in":"query","name":"consuming_account","required":false,"schema":{"type":"string"}},{"description":"Filter by external_ref","in":"query","name":"external_ref","required":false,"schema":{"type":"string"}},{"description":"Filter by type","in":"query","name":"type","required":false,"schema":{"enum":["route_server"],"type":"string"}},{"description":"Filter by service_config","in":"query","name":"service_config","required":false,"schema":{"type":"string"}},{"description":"Filter by network_feature","in":"query","name":"network_feature","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/NetworkFeatureConfig"},"type":"array"}}},"description":"List of: Polymorphic Network Feature Config"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"}},"tags":["network-feature-configs"]},"post":{"description":"Create a configuration for a `NetworkFeature`\ndefined in the `NetworkFeature`s collection.","operationId":"network_feature_configs_create","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkFeatureConfigRequest"}}},"description":"Polymorphic Network Feature Config Request"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkFeatureConfig"}}},"description":"Polymorphic Network Feature Config"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"}},"tags":["network-feature-configs"]}},"/network-feature-configs/{id}":{"delete":{"description":"Remove a network feature config.\n\nThe network feature config will be marked as\n`decommission_requested`.\nDecommissioning a network feature config will not\ncascade to related services or service configs.","operationId":"network_feature_configs_destroy","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkFeatureConfig"}}},"description":"Polymorphic Network Feature Config"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Unable to fulfill your request."},"type":{"enum":["https://errors.ix-api.net/v2/unable-to-fulfill.html"],"type":"string"}},"type":"object"},{}]}}},"description":"UnableToFulfill"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["network-feature-configs"]},"get":{"description":"Get a single network feature config.","operationId":"network_feature_configs_read","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkFeatureConfig"}}},"description":"Polymorphic Network Feature Config"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["network-feature-configs"]},"patch":{"description":"Update parts of a network feature configuration","operationId":"network_feature_configs_partial_update","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"requestBody":{"content":{"application/merge-patch+json":{"schema":{"$ref":"#/components/schemas/NetworkFeatureConfigUpdatePartial"}}},"description":"Polymorphic Network Feauture Config Update"},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkFeatureConfig"}}},"description":"Polymorphic Network Feature Config"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["network-feature-configs"]},"put":{"description":"Update a network feature configuration","operationId":"network_feature_configs_update","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkFeatureConfigUpdate"}}},"description":"Polymorphic Network Feauture Config Update"},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkFeatureConfig"}}},"description":"Polymorphic Network Feature Config"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["network-feature-configs"]}},"/network-features":{"get":{"description":"List available network features.","operationId":"network_features_list","parameters":[{"description":"Filter by id","explode":false,"in":"query","name":"id","required":false,"schema":{"example":"id1,id2,id3","items":{"type":"string"},"type":"array"},"style":"form"},{"description":"Filter by type","in":"query","name":"type","required":false,"schema":{"enum":["route_server"],"type":"string"}},{"description":"Filter by required","in":"query","name":"required","required":false,"schema":{"type":"string"}},{"description":"Filter by network_service","in":"query","name":"network_service","required":false,"schema":{"type":"string"}},{"description":"Filter by name","in":"query","name":"name","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/NetworkFeature"},"type":"array"}}},"description":"List of: Polymorphic Network Feature"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"}},"tags":["network-features"]}},"/network-features/{id}":{"get":{"description":"Get a single network feature by it's id.","operationId":"network_features_read","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkFeature"}}},"description":"Polymorphic Network Feature"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["network-features"]}},"/network-service-configs":{"get":{"description":"Get all `network-service-config`s.","operationId":"network_service_configs_list","parameters":[{"description":"Filter by id","explode":false,"in":"query","name":"id","required":false,"schema":{"example":"id1,id2,id3","items":{"type":"string"},"type":"array"},"style":"form"},{"description":"Filter by state","in":"query","name":"state","required":false,"schema":{"type":"string"}},{"description":"Filter by state__is_not","in":"query","name":"state__is_not","required":false,"schema":{"type":"string"}},{"description":"Filter by managing_account","in":"query","name":"managing_account","required":false,"schema":{"type":"string"}},{"description":"Filter by consuming_account","in":"query","name":"consuming_account","required":false,"schema":{"type":"string"}},{"description":"Filter by external_ref","in":"query","name":"external_ref","required":false,"schema":{"type":"string"}},{"description":"Filter by type","in":"query","name":"type","required":false,"schema":{"enum":["exchange_lan","p2p_vc","p2mp_vc","mp2mp_vc","cloud_vc"],"type":"string"}},{"description":"Filter by inner_vlan","in":"query","name":"inner_vlan","required":false,"schema":{"type":"integer"}},{"description":"Filter by outer_vlan","in":"query","name":"outer_vlan","required":false,"schema":{"type":"integer"}},{"description":"Filter by capacity","in":"query","name":"capacity","required":false,"schema":{"type":"integer"}},{"description":"Filter by network_service","in":"query","name":"network_service","required":false,"schema":{"type":"string"}},{"description":"Filter by connection","in":"query","name":"connection","required":false,"schema":{"type":"string"}},{"description":"Filter by product_offering","in":"query","name":"product_offering","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/NetworkServiceConfig"},"type":"array"}}},"description":"List of: Polymorphic Network Service Config"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"}},"tags":["network-service-configs"]},"post":{"description":"Create a `network-service-config`.","operationId":"network_service_configs_create","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkServiceConfigRequest"}}},"description":"Polymorhic Network Service Config Request"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkServiceConfig"}}},"description":"Polymorphic Network Service Config"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"}},"tags":["network-service-configs"]}},"/network-service-configs/{id}":{"delete":{"description":"Request decommissioning the network service configuration.\n\nThe network service config will assume the state\n`decommission_requested`.\nThis will cascade to related resources like\n`network-feature-configs`.","operationId":"network_service_configs_destroy","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancellationRequest"}}},"description":"Service Cancellation Request"},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkServiceConfig"}}},"description":"Polymorphic Network Service Config"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Requested cancellation date outside of notice period."},"type":{"enum":["https://errors.ix-api.net/v2/cancellation-policy-error.html","https://errors.ix-api.net/v2/unable-to-fulfill.html"],"type":"string"}},"type":"object"},{"properties":{"charged_until":{"description":"The date until the service is payed for.\nTypically `≥ decommission_at`.","format":"date","type":"string"},"decommission_at":{"description":"This field denotes the first possible cancellation\ndate of the service.\n\nSee the service `cancellation-policy` for details.","format":"date","type":"string"}},"type":"object"}]}}},"description":"CancellationPolicyError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["network-service-configs"]},"get":{"description":"Get a `network-service-config`","operationId":"network_service_configs_read","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkServiceConfig"}}},"description":"Polymorphic Network Service Config"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["network-service-configs"]},"patch":{"description":"Update parts of an exisiting `network-service-config`.","operationId":"network_service_configs_partial_update","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"requestBody":{"content":{"application/merge-patch+json":{"schema":{"$ref":"#/components/schemas/NetworkServiceConfigUpdatePartial"}}},"description":"Polymorphic Network Service Config"},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkServiceConfig"}}},"description":"Polymorphic Network Service Config"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["network-service-configs"]},"put":{"description":"Update an exisiting `network-service-config`","operationId":"network_service_configs_update","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkServiceConfigUpdate"}}},"description":"Polymorphic Network Service Config"},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkServiceConfig"}}},"description":"Polymorphic Network Service Config"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["network-service-configs"]}},"/network-service-configs/{id}/cancellation-policy":{"get":{"description":"The cancellation-policy can be queried to answer\nthe questions:\n\nIf I cancel my subscription, *when will it be technically\ndecommissioned*?\nIf I cancel my subscription, *until what date will I be charged*?\n\nWhen the query parameter `decommision_at` is not provided\nit will provide the first possible cancellation date\nand charge period if cancelled at above date.\n\nThe granularity of the date field is a day, the start and end\nof which are to be interpreted by the IXP (some may use UTC,\nsome may use their local time zone).","operationId":"network_service_config_cancellation_policy_read","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}},{"description":"By providing a date in the format `YYYY-MM-DD` you can\nquery the policy what would happen if you request a\ndecommissioning on this date.","in":"query","name":"decommission_at","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancellationPolicy"}}},"description":"Cancellation Policy"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["network-service-configs"]}},"/network-services":{"get":{"description":"List available `NetworkService`s.","operationId":"network_services_list","parameters":[{"description":"Filter by id","explode":false,"in":"query","name":"id","required":false,"schema":{"example":"id1,id2,id3","items":{"type":"string"},"type":"array"},"style":"form"},{"description":"Filter by state","in":"query","name":"state","required":false,"schema":{"type":"string"}},{"description":"Filter by state__is_not","in":"query","name":"state__is_not","required":false,"schema":{"type":"string"}},{"description":"Filter by managing_account","in":"query","name":"managing_account","required":false,"schema":{"type":"string"}},{"description":"Filter by consuming_account","in":"query","name":"consuming_account","required":false,"schema":{"type":"string"}},{"description":"Filter by external_ref","in":"query","name":"external_ref","required":false,"schema":{"type":"string"}},{"description":"Filter by type","in":"query","name":"type","required":false,"schema":{"enum":["exchange_lan","p2p_vc","p2mp_vc","mp2mp_vc","cloud_vc"],"type":"string"}},{"description":"Filter by pop","in":"query","name":"pop","required":false,"schema":{"type":"string"}},{"description":"Filter by product_offering","in":"query","name":"product_offering","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/NetworkService"},"type":"array"}}},"description":"List of: Polymorphic Network Services"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"}},"tags":["network-services"]},"post":{"description":"Create a new network service","operationId":"network_services_create","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkServiceRequest"}}},"description":"Polymorphic Network Service Request"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkService"}}},"description":"Polymorphic Network Services"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"}},"tags":["network-services"]}},"/network-services/{id}":{"delete":{"description":"Request decomissioning of the network service.\n\nThe network service will enter the state of\n`decommission_requested`. The request will\ncascade to related network service and feature\nconfigs.\n\nAn *optional request body* can be provided to request\na specific service termination date.\n\nIf no date is given in the request body, it is assumed to\nbe the earliest possible date.\n\nPossible values for `decommission_at` can be queried\nthrough the `network_service_cancellation_policy_read`\noperation.\n\nThe response will contain the dates on which the\nchanges will be effected.","operationId":"network_services_destroy","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancellationRequest"}}},"description":"Service Cancellation Request"},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkService"}}},"description":"Polymorphic Network Services"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Requested cancellation date outside of notice period."},"type":{"enum":["https://errors.ix-api.net/v2/cancellation-policy-error.html","https://errors.ix-api.net/v2/unable-to-fulfill.html"],"type":"string"}},"type":"object"},{"properties":{"charged_until":{"description":"The date until the service is payed for.\nTypically `≥ decommission_at`.","format":"date","type":"string"},"decommission_at":{"description":"This field denotes the first possible cancellation\ndate of the service.\n\nSee the service `cancellation-policy` for details.","format":"date","type":"string"}},"type":"object"}]}}},"description":"CancellationPolicyError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["network-services"]},"get":{"description":"Get a specific `network-service` by id.","operationId":"network_services_read","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkService"}}},"description":"Polymorphic Network Services"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["network-services"]},"patch":{"description":"Partially update a network service","operationId":"network_services_partial_update","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"requestBody":{"content":{"application/merge-patch+json":{"schema":{"$ref":"#/components/schemas/NetworkServiceRequestPartial"}}},"description":"Polymorphic Network Service Request"},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkService"}}},"description":"Polymorphic Network Services"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["network-services"]},"put":{"description":"Update a network service","operationId":"network_services_update","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkServiceRequest"}}},"description":"Polymorphic Network Service Request"},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkService"}}},"description":"Polymorphic Network Services"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["network-services"]}},"/network-services/{id}/cancellation-policy":{"get":{"description":"The cancellation-policy can be queried to answer\nthe questions:\n\nIf I cancel my service, *when will it be technically\ndecommissioned*?\nIf I cancel my service, *until what date will I be charged*?\n\nWhen the query parameter `decommision_at` is not provided\nit will provide the first possible cancellation date\nand charge period if cancelled at above date.\n\nThe granularity of the date field is a day, the start and end\nof which are to be interpreted by the IXP (some may use UTC,\nsome may use their local time zone).","operationId":"network_service_cancellation_policy_read","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}},{"description":"By providing a date in the format `YYYY-MM-DD` you can\nquery the policy what would happen if you request a\ndecommissioning on this date.","in":"query","name":"decommission_at","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancellationPolicy"}}},"description":"Cancellation Policy"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["network-services"]}},"/network-services/{id}/change-request":{"delete":{"description":"Retract or reject a change to the network service.","operationId":"network_service_change_request_destroy","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkServiceChangeRequest"}}},"description":"NetworkServiceChangeRequest"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Unable to fulfill your request."},"type":{"enum":["https://errors.ix-api.net/v2/unable-to-fulfill.html"],"type":"string"}},"type":"object"},{}]}}},"description":"UnableToFulfill"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["network-services"]},"get":{"description":"Get the change request.","operationId":"network_service_change_request_read","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkServiceChangeRequest"}}},"description":"NetworkServiceChangeRequest"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["network-services"]},"post":{"description":"Request a change to the network service.\n\nA participant in a network service of type\n`p2p_vc` can issue a change request, expressing a\ndesired change in the capacity.\nThe change is accepted when all sides have configured\nthe network service configs with the new bandwidth.\nThese changes can sometimes require a change of the\nproduct offering.\nThe product offering may only differ in regards to\nbandwidth.\n\nThe network service will change it's state from `production`\ninto `production_change_pending`.\n\nOnly one change request may be issued at a time.","operationId":"network-service-change-request_create","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkServiceChangeRequest"}}},"description":"NetworkServiceChangeRequest"},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkServiceChangeRequest"}}},"description":"NetworkServiceChangeRequest"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"}},"tags":["network-services"]}},"/pops":{"get":{"description":"List all PoPs","operationId":"pops_list","parameters":[{"description":"Filter by id","explode":false,"in":"query","name":"id","required":false,"schema":{"example":"id1,id2,id3","items":{"type":"string"},"type":"array"},"style":"form"},{"description":"Filter by facility","in":"query","name":"facility","required":false,"schema":{"type":"string"}},{"description":"Filter by metro_area_network","in":"query","name":"metro_area_network","required":false,"schema":{"type":"string"}},{"description":"Filter by capability_media_type","in":"query","name":"capability_media_type","required":false,"schema":{"type":"string"}},{"description":"Filter by capability_speed","in":"query","name":"capability_speed","required":false,"schema":{"type":"integer"}},{"description":"Filter by capability_speed__lt","in":"query","name":"capability_speed__lt","required":false,"schema":{"type":"integer"}},{"description":"Filter by capability_speed__lte","in":"query","name":"capability_speed__lte","required":false,"schema":{"type":"integer"}},{"description":"Filter by capability_speed__gt","in":"query","name":"capability_speed__gt","required":false,"schema":{"type":"integer"}},{"description":"Filter by capability_speed__gte","in":"query","name":"capability_speed__gte","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/PointOfPresence"},"type":"array"}}},"description":"List of: Point Of Presence"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"}},"tags":["pops"]}},"/pops/{id}":{"get":{"description":"Get a single point of presence","operationId":"pops_read","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PointOfPresence"}}},"description":"Point Of Presence"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["pops"]}},"/ports":{"get":{"description":"List all ports.","operationId":"ports_list","parameters":[{"description":"Filter by id","explode":false,"in":"query","name":"id","required":false,"schema":{"example":"id1,id2,id3","items":{"type":"string"},"type":"array"},"style":"form"},{"description":"Filter by state","in":"query","name":"state","required":false,"schema":{"type":"string"}},{"description":"Filter by state__is_not","in":"query","name":"state__is_not","required":false,"schema":{"type":"string"}},{"description":"Filter by media_type","in":"query","name":"media_type","required":false,"schema":{"type":"string"}},{"description":"Filter by pop","in":"query","name":"pop","required":false,"schema":{"type":"string"}},{"description":"Filter by name","in":"query","name":"name","required":false,"schema":{"type":"string"}},{"description":"Filter by external_ref","in":"query","name":"external_ref","required":false,"schema":{"type":"string"}},{"description":"Filter by device","in":"query","name":"device","required":false,"schema":{"type":"string"}},{"description":"Filter by speed","in":"query","name":"speed","required":false,"schema":{"type":"string"}},{"description":"Filter by connection","in":"query","name":"connection","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Port"},"type":"array"}}},"description":"List of: Port"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"}},"tags":["ports"]}},"/ports/{id}":{"get":{"description":"Retrieve a port.","operationId":"ports_read","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Port"}}},"description":"Port"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["ports"]}},"/product-offerings":{"get":{"description":"List all (filtered) products-offerings available on the platform","operationId":"product_offerings_list","parameters":[{"description":"Filter by id","explode":false,"in":"query","name":"id","required":false,"schema":{"example":"id1,id2,id3","items":{"type":"string"},"type":"array"},"style":"form"},{"description":"Filter by type","in":"query","name":"type","required":false,"schema":{"enum":["exchange_lan","p2p_vc","mp2mp_vc","p2mp_vc","cloud_vc"],"type":"string"}},{"description":"Filter by name","in":"query","name":"name","required":false,"schema":{"type":"string"}},{"description":"Filter by handover_metro_area","in":"query","name":"handover_metro_area","required":false,"schema":{"type":"string"}},{"description":"Filter by handover_metro_area_network","in":"query","name":"handover_metro_area_network","required":false,"schema":{"type":"string"}},{"description":"Filter by service_metro_area","in":"query","name":"service_metro_area","required":false,"schema":{"type":"string"}},{"description":"Filter by service_metro_area_network","in":"query","name":"service_metro_area_network","required":false,"schema":{"type":"string"}},{"description":"Filter by service_provider","in":"query","name":"service_provider","required":false,"schema":{"type":"string"}},{"description":"Filter by downgrade_allowed","in":"query","name":"downgrade_allowed","required":false,"schema":{"enum":["true","true"],"type":"string"}},{"description":"Filter by upgrade_allowed","in":"query","name":"upgrade_allowed","required":false,"schema":{"enum":["true","false"],"type":"string"}},{"description":"Find product offerings where bandwidth is\nwithin the range of `bandwidth_min` and `bandwidth_max`.","in":"query","name":"bandwidth","required":false,"schema":{"type":"integer"}},{"description":"Filter by physical_port_speed","in":"query","name":"physical_port_speed","required":false,"schema":{"type":"integer"}},{"description":"Filter by service_provider_region","in":"query","name":"service_provider_region","required":false,"schema":{"type":"string"}},{"description":"Filter by service_provider_pop","in":"query","name":"service_provider_pop","required":false,"schema":{"type":"string"}},{"description":"Filter by delivery_method","in":"query","name":"delivery_method","required":false,"schema":{"enum":["dedicated","shared"],"type":"string"}},{"description":"For product offerings of type `cloud_vc`, if the\n`service_provider_workflow` is `provider_first` the\n`cloud_key` will be used for filtering the relevant\nofferings.","in":"query","name":"cloud_key","required":false,"schema":{"type":"string"}},{"description":"Returned objects only have properties which are\npresent in the list of fields.\nThe required `type` property is *implicitly* included.\nThe results are *deduplicated*.\n","example":"handover_metro_area,service_provider","in":"query","name":"fields","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ProductOfferingPartial"},"type":"array"}}},"description":"List of: Polymorphic Product Offering"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"}},"tags":["product-offerings"]}},"/product-offerings/{id}":{"get":{"description":"Get a single products-offering by id.","operationId":"product_offerings_read","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductOffering"}}},"description":"Polymorphic Product Offering"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["product-offerings"]}},"/role-assignments":{"get":{"description":"List all role assignments for a contact.","operationId":"role_assignments_list","parameters":[{"description":"Filter by id","explode":false,"in":"query","name":"id","required":false,"schema":{"example":"id1,id2,id3","items":{"type":"string"},"type":"array"},"style":"form"},{"description":"Filter by contact","in":"query","name":"contact","required":false,"schema":{"type":"string"}},{"description":"Filter by role","in":"query","name":"role","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/RoleAssignment"},"type":"array"}}},"description":"List of: A role assignment for a contact"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"}},"tags":["role-assignments"]},"post":{"description":"Assign a `Role` to a `Contact`.\n\nThe contact needs to have all fields filled, which the\nrole requires. If this is not the case a `400`\n`UnableToFulfill` will be returned.","operationId":"role_assignments_create","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleAssignmentRequest"}}},"description":"A role assignment request"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleAssignment"}}},"description":"A role assignment for a contact"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Some fields did not validate."},"type":{"enum":["https://errors.ix-api.net/v2/validation-error.html","https://errors.ix-api.net/v2/unable-to-fulfill.html"],"type":"string"}},"type":"object"},{}]}}},"description":"ValidationError"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"}},"tags":["role-assignments"]}},"/role-assignments/{assignment_id}":{"delete":{"description":"Remove a role assignment from a contact.\n\nIf the contact is still in use with a given role required,\nthis will yield an `UnableToFulfill` error.","operationId":"role_assignments_destroy","parameters":[{"description":"Get by assignment_id","in":"path","name":"assignment_id","required":true,"schema":{"description":"","title":"","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleAssignment"}}},"description":"A role assignment for a contact"},"400":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":400},"title":{"example":"Unable to fulfill your request."},"type":{"enum":["https://errors.ix-api.net/v2/unable-to-fulfill.html"],"type":"string"}},"type":"object"},{}]}}},"description":"UnableToFulfill"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["role-assignments"]},"get":{"description":"Get a role assignment for a contact.","operationId":"role_assignments_read","parameters":[{"description":"Get by assignment_id","in":"path","name":"assignment_id","required":true,"schema":{"description":"","title":"","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleAssignment"}}},"description":"A role assignment for a contact"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"},"403":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":403},"title":{"example":"You do not have permission to perform this action."},"type":{"enum":["https://errors.ix-api.net/v2/permission-denied.html"],"type":"string"}},"type":"object"},{}]}}},"description":"PermissionDenied"},"404":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":404},"title":{"example":"Not found."},"type":{"enum":["https://errors.ix-api.net/v2/not-found.html"],"type":"string"}},"type":"object"},{}]}}},"description":"NotFound"}},"tags":["role-assignments"]}},"/roles":{"get":{"description":"List all roles available.","operationId":"roles_list","parameters":[{"description":"Filter by id","explode":false,"in":"query","name":"id","required":false,"schema":{"example":"id1,id2,id3","items":{"type":"string"},"type":"array"},"style":"form"},{"description":"Filter by name","in":"query","name":"name","required":false,"schema":{"type":"string"}},{"description":"Filter by contact","in":"query","name":"contact","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Role"},"type":"array"}}},"description":"List of: A role for a contact"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"}},"tags":["roles"]}},"/roles/{id}":{"get":{"description":"Get a single `Role`.","operationId":"roles_read","parameters":[{"description":"Get by id","in":"path","name":"id","required":true,"schema":{"description":"","title":"","type":"string"}},{"description":"Filter by id","explode":false,"in":"query","name":"id","required":false,"schema":{"example":"id1,id2,id3","items":{"type":"string"},"type":"array"},"style":"form"},{"description":"Filter by name","in":"query","name":"name","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Role"}}},"description":"A role for a contact"},"401":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ProblemResponse"},{"properties":{"status":{"example":401},"title":{"example":"Authentication Credentials Invalid"},"type":{"enum":["https://errors.ix-api.net/v2/authentication-error.html","https://errors.ix-api.net/v2/signature-expired.html"],"type":"string"}},"type":"object"},{}]}}},"description":"Authentication"}},"tags":["roles"]}}},"components":{"schemas":{"Account":{"allOf":[{"$ref":"#/components/schemas/AccountPartial"},{"required":["state","name","metro_area_network_presence","id"],"title":"Account","type":"object"}]},"AccountPartial":{"description":"Account","properties":{"address":{"$ref":"#/components/schemas/Address"},"billing_information":{"$ref":"#/components/schemas/BillingInformation"},"discoverable":{"default":false,"description":"The account will be included for all members of the\nix in the list of accounts.\n\nOnly `id`, `name` and `present_in_metro_area_networks`\nare provided to other members.","type":"boolean"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":80,"nullable":true,"type":"string"},"id":{"maxLength":80,"type":"string"},"legal_name":{"description":"Legal name of the organisation.\nOnly required when it's different from the account name.\n","example":"Moon Network Services LLS.","maxLength":80,"nullable":true,"type":"string"},"managing_account":{"description":"The `id` of a managing account. Can be used for creating\na customer hierachy.\n","example":"IX:Account:231","nullable":true,"type":"string"},"metro_area_network_presence":{"description":"Informal list of `MetroAreaNetwork` ids, indicating the\npresence to other accounts.\nThe list is maintained by the account and can be empty.\n","example":["14021","12939"],"items":{"type":"string"},"type":"array"},"name":{"description":"Name of the account, how it gets represented\nin e.g. a \"customers list\".\n","example":"Moonpeer Inc.","maxLength":80,"type":"string"},"state":{"enum":["requested","allocated","testing","production","production_change_pending","decommission_requested","decommissioned","archived","error","operator","scheduled"],"type":"string"},"status":{"items":{"$ref":"#/components/schemas/Status"},"type":"array"}},"title":"PartialAccount","type":"object"},"AccountRequest":{"allOf":[{"$ref":"#/components/schemas/AccountRequestPartial"},{"required":["name","address"],"title":"AccountRequest","type":"object"}]},"AccountRequestPartial":{"description":"Account Request","properties":{"address":{"$ref":"#/components/schemas/Address"},"billing_information":{"$ref":"#/components/schemas/BillingInformation"},"discoverable":{"default":false,"description":"The account will be included for all members of the\nix in the list of accounts.\n\nOnly `id`, `name` and `present_in_metro_area_networks`\nare provided to other members.","type":"boolean"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":80,"nullable":true,"type":"string"},"legal_name":{"description":"Legal name of the organisation.\nOnly required when it's different from the account name.\n","example":"Moon Network Services LLS.","maxLength":80,"nullable":true,"type":"string"},"managing_account":{"description":"The `id` of a managing account. Can be used for creating\na customer hierachy.\n","example":"IX:Account:231","nullable":true,"type":"string"},"metro_area_network_presence":{"default":[],"description":"Informal list of `MetroAreaNetwork` ids, indicating the\npresence to other accounts.\nThe list is maintained by the account and can be empty.\n","example":["14021","12939"],"items":{"type":"string"},"type":"array"},"name":{"description":"Name of the account, how it gets represented\nin e.g. a \"customers list\".\n","example":"Moonpeer Inc.","maxLength":80,"type":"string"}},"title":"PartialAccountRequest","type":"object"},"AccountUpdate":{"allOf":[{"$ref":"#/components/schemas/AccountUpdatePartial"},{"required":["name","metro_area_network_presence","address"],"title":"AccountUpdate","type":"object"}]},"AccountUpdatePartial":{"description":"Account Update Request","properties":{"address":{"$ref":"#/components/schemas/Address"},"billing_information":{"$ref":"#/components/schemas/BillingInformation"},"discoverable":{"default":false,"description":"The account will be included for all members of the\nix in the list of accounts.\n\nOnly `id`, `name` and `present_in_metro_area_networks`\nare provided to other members.","type":"boolean"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":80,"nullable":true,"type":"string"},"legal_name":{"description":"Legal name of the organisation.\nOnly required when it's different from the account name.\n","example":"Moon Network Services LLS.","maxLength":80,"nullable":true,"type":"string"},"managing_account":{"description":"The `id` of a managing account. Can be used for creating\na customer hierachy.\n","example":"IX:Account:231","nullable":true,"type":"string"},"metro_area_network_presence":{"description":"Informal list of `MetroAreaNetwork` ids, indicating the\npresence to other accounts.\nThe list is maintained by the account and can be empty.\n","example":["14021","12939"],"items":{"type":"string"},"type":"array"},"name":{"description":"Name of the account, how it gets represented\nin e.g. a \"customers list\".\n","example":"Moonpeer Inc.","maxLength":80,"type":"string"}},"title":"PartialAccountUpdate","type":"object"},"Address":{"allOf":[{"$ref":"#/components/schemas/AddressPartial"},{"required":["country","locality","postal_code","street_address"],"title":"Address","type":"object"}]},"AddressPartial":{"description":"","properties":{"country":{"description":"ISO 3166-1 alpha-2 country code, for example DE","example":"US","maxLength":2,"type":"string"},"locality":{"description":"The locality/city. For example, Mountain View.","example":"Mountain View","maxLength":40,"type":"string"},"post_office_box_number":{"description":"The post office box number for PO box addresses.","example":"2335232","maxLength":80,"nullable":true,"type":"string"},"postal_code":{"description":"A postal code. For example, 9404","example":"9409","maxLength":24,"type":"string"},"region":{"description":"The region. For example, CA","example":"CA","maxLength":80,"nullable":true,"type":"string"},"street_address":{"description":"The street address. For example, 1600 Amphitheatre Pkwy.","example":"1600 Amphitheatre Pkwy.","maxLength":80,"type":"string"}},"title":"PartialAddress","type":"object"},"AllowMemberJoiningRule":{"allOf":[{"$ref":"#/components/schemas/AllowMemberJoiningRulePartial"},{"required":["managing_account","consuming_account","id","network_service","type"],"title":"AllowMemberJoiningRule","type":"object"}]},"AllowMemberJoiningRulePartial":{"description":"A rule for members joining a private vlan","properties":{"capacity_max":{"description":"An optional rate limit which has precedence over\nthe capacity set in the network service config.","minimum":1,"nullable":true,"type":"integer"},"capacity_min":{"description":"Require an optional minimum capacity to join\nthe network service.","minimum":1,"nullable":true,"type":"integer"},"consuming_account":{"description":"The `id` of the account to which access to the\nnetwork service should be granted or denied.\n","example":"2381982","type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"id":{"type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"network_service":{"type":"string"},"type":{"example":"allow","type":"string"}},"required":["type"],"title":"PartialAllowMemberJoiningRule","type":"object"},"AllowMemberJoiningRuleRequest":{"allOf":[{"$ref":"#/components/schemas/AllowMemberJoiningRuleRequestPartial"},{"required":["managing_account","consuming_account","network_service","type"],"title":"AllowMemberJoiningRuleRequest","type":"object"}]},"AllowMemberJoiningRuleRequestPartial":{"description":"A new vlan member joining rule","properties":{"capacity_max":{"description":"An optional rate limit which has precedence over\nthe capacity set in the network service config.","minimum":1,"nullable":true,"type":"integer"},"capacity_min":{"description":"Require an optional minimum capacity to join\nthe network service.","minimum":1,"nullable":true,"type":"integer"},"consuming_account":{"description":"The `id` of the account to which access to the\nnetwork service should be granted or denied.\n","example":"2381982","type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"network_service":{"type":"string"},"type":{"example":"allow","type":"string"}},"required":["type"],"title":"PartialAllowMemberJoiningRuleRequest","type":"object"},"AllowMemberJoiningRuleUpdate":{"allOf":[{"$ref":"#/components/schemas/AllowMemberJoiningRuleUpdatePartial"},{"required":["managing_account","consuming_account","type"],"title":"AllowMemberJoiningRuleUpdate","type":"object"}]},"AllowMemberJoiningRuleUpdatePartial":{"description":"A vlan member joining rule update","properties":{"capacity_max":{"description":"An optional rate limit which has precedence over\nthe capacity set in the network service config.","minimum":1,"nullable":true,"type":"integer"},"capacity_min":{"description":"Require an optional minimum capacity to join\nthe network service.","minimum":1,"nullable":true,"type":"integer"},"consuming_account":{"description":"The `id` of the account to which access to the\nnetwork service should be granted or denied.\n","example":"2381982","type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"type":{"example":"allow","type":"string"}},"required":["type"],"title":"PartialAllowMemberJoiningRuleUpdate","type":"object"},"AuthToken":{"allOf":[{"$ref":"#/components/schemas/AuthTokenPartial"},{"required":["access_token","refresh_token"],"title":"AuthToken","type":"object"}]},"AuthTokenPartial":{"description":"AuthToken","properties":{"access_token":{"type":"string"},"refresh_token":{"type":"string"}},"title":"PartialAuthToken","type":"object"},"AuthTokenRequest":{"allOf":[{"$ref":"#/components/schemas/AuthTokenRequestPartial"},{"required":["api_key","api_secret"],"title":"AuthTokenRequest","type":"object"}]},"AuthTokenRequestPartial":{"description":"AuthTokenRequest","properties":{"api_key":{"maxLength":16,"minLength":16,"type":"string"},"api_secret":{"maxLength":86,"minLength":86,"type":"string"}},"title":"PartialAuthTokenRequest","type":"object"},"BillingInformation":{"allOf":[{"$ref":"#/components/schemas/BillingInformationPartial"},{"required":["name","address"],"title":"BillingInformation","type":"object"}]},"BillingInformationPartial":{"description":"Optional information required for issuing invoices.\nOnly accounts with `billing_information` present can be used\nas a `billing_account`.","properties":{"address":{"$ref":"#/components/schemas/Address"},"name":{"description":"Name of the organisation receiving invoices.\n","example":"Moonoc Network Services LLS.","maxLength":80,"type":"string"},"vat_number":{"description":"Value-added tax number, required for\neuropean reverse charge system.\n","example":"UK2300000042","maxLength":20,"minLength":2,"nullable":true,"type":"string"}},"title":"PartialBillingInformation","type":"object"},"Cancelable":{"allOf":[{"$ref":"#/components/schemas/CancelablePartial"},{"title":"Cancelable","type":"object"}]},"CancelablePartial":{"description":"Service or config can be canceled","properties":{"charged_until":{"description":"Your obligation to pay for the service will end on this date.\nTypically `≥ decommission_at`.\n\nThis field is only used when\nthe state is `DECOMMISSION_REQUESTED` or\n`DECOMMISSIONED`.","format":"date","type":"string"},"decommission_at":{"description":"The service will be decommissioned on this date.\n\nThis field is only used when\nthe state is `DECOMMISSION_REQUESTED` or\n`DECOMMISSIONED`.","format":"date","type":"string"}},"title":"PartialCancelable","type":"object"},"CancellationPolicy":{"allOf":[{"$ref":"#/components/schemas/CancellationPolicyPartial"},{"required":["decommission_at","charged_until"],"title":"CancellationPolicy","type":"object"}]},"CancellationPolicyPartial":{"description":"Cancellation Policy","properties":{"charged_until":{"description":"Your obligation to pay for the service will end on this date.\nTypically `≥ decommission_at`.","format":"date","type":"string"},"decommission_at":{"description":"This field denotes the first possible cancellation\ndate of the service.","format":"date","type":"string"}},"title":"PartialCancellationPolicy","type":"object"},"CancellationRequest":{"allOf":[{"$ref":"#/components/schemas/CancellationRequestPartial"},{"title":"CancellationRequest","type":"object"}]},"CancellationRequestPartial":{"description":"Service Cancellation Request","properties":{"decommission_at":{"description":"An optional date for scheduling the cancellation\nand service decommissioning.","format":"date","type":"string"}},"title":"PartialCancellationRequest","type":"object"},"CloudNetworkProductOffering":{"allOf":[{"$ref":"#/components/schemas/CloudNetworkProductOfferingPartial"},{"required":["id","name","display_name","provider_vlans","resource_type","handover_metro_area_network","handover_metro_area","service_metro_area_network","service_metro_area","bandwidth_min","bandwidth_max","physical_port_speed","service_provider","downgrade_allowed","upgrade_allowed","service_provider_region","service_provider_pop","service_provider_workflow","delivery_method","diversity","type"],"title":"CloudNetworkProductOffering","type":"object"}]},"CloudNetworkProductOfferingPartial":{"description":"Cloud Network Product Offering","properties":{"bandwidth_max":{"description":"When not `null`, this value enforces a mandatory\nrate limit for all network service configs.","minimum":0,"nullable":true,"type":"integer"},"bandwidth_min":{"description":"When configuring access to the network service, at least\nthis `capacity` must be provided.","minimum":0,"nullable":true,"type":"integer"},"delivery_method":{"description":"The exchange delivers the service over a `shared` or `dedicated` NNI.","enum":["dedicated","shared"],"type":"string"},"display_name":{"maxLength":256,"type":"string"},"diversity":{"description":"The service can be delivered over multiple handovers from\nthe exchange to the `service_provider`.\nThe `diversity` denotes the number of handovers between the\nexchange and the service provider. A value of two signals a\nredundant service.\n\nOnly one network service configuration for each `handover` and\n`cloud_vlan` can be created.","minimum":1,"type":"integer"},"downgrade_allowed":{"description":"Indicates if the service can be migrated to\na lower bandwidth.","type":"boolean"},"handover_metro_area":{"description":"Id of the `MetroArea`. The network service will be\naccessed from this metro area.\n","example":"met:29381993:NYC","type":"string"},"handover_metro_area_network":{"description":"Id of the `MetroAreaNetwork`. The service will be accessed\nthrough the handover metro area network.\n","example":"191239810","type":"string"},"id":{"maxLength":80,"type":"string"},"name":{"description":"Name of the product","maxLength":160,"type":"string"},"physical_port_speed":{"description":"If the service is dependent on the speed of\nthe physical port this field denotes the speed.","minimum":0,"nullable":true,"type":"integer"},"provider_vlans":{"description":"The `NetworkService` provides `single` or `multi`ple vlans.","enum":["single","multi"],"type":"string"},"resource_type":{"description":"The resource type refers to an ix-api resource.\n","enum":["connection","demarc","network_service","network_service_config"],"example":"network_service","type":"string"},"service_metro_area":{"description":"Id of the `MetroArea`. The service is delivered\nin this metro area.\n","example":"met:213913485:LON","type":"string"},"service_metro_area_network":{"description":"Id of the `MetroAreaNetwork`.\nThe service is directly provided on the metro area network.\n","example":"9123843","type":"string"},"service_provider":{"description":"The name of the provider providing the service.\n","example":"AWS","type":"string"},"service_provider_pop":{"description":"The datacenter description of the partner NNI to the\nservice provider.\n","example":"INX6","maxLength":16,"nullable":true,"type":"string"},"service_provider_region":{"description":"The service provider offers the network service for a\nspecific region.\n","example":"eu-central-1","nullable":true,"type":"string"},"service_provider_workflow":{"description":"When the workflow is `provider_first` the subscriber creates\na circuit with the cloud provider and provides a `cloud_key` for filtering\nthe product-offerings.\n\nIf the workflow is `exchange_first` the IX will create\nthe cloud circuit on the provider side.\n","enum":["exchange_first","provider_first"],"example":"exchange_first","type":"string"},"type":{"example":"cloud_vc","type":"string"},"upgrade_allowed":{"description":"Indicates if the service can be migrated to\na higher bandwidth.","type":"boolean"}},"required":["type"],"title":"PartialCloudNetworkProductOffering","type":"object"},"CloudNetworkService":{"allOf":[{"$ref":"#/components/schemas/CloudNetworkServicePartial"},{"required":["state","id","product_offering","managing_account","consuming_account","billing_account","cloud_key","diversity","provider_ref","type"],"title":"CloudNetworkService","type":"object"}]},"CloudNetworkServiceConfig":{"allOf":[{"$ref":"#/components/schemas/CloudNetworkServiceConfigPartial"},{"required":["state","id","network_service","managing_account","consuming_account","billing_account","role_assignments","connection","vlan_config","handover","cloud_vlan","type"],"title":"CloudNetworkServiceConfig","type":"object"}]},"CloudNetworkServiceConfigPartial":{"description":"Cloud Network Service Config","properties":{"billing_account":{"description":"An account requires billing_information to be used as a `billing_account`.","type":"string"},"charged_until":{"description":"Your obligation to pay for the service will end on this date.\nTypically `≥ decommission_at`.\n\nThis field is only used when\nthe state is `DECOMMISSION_REQUESTED` or\n`DECOMMISSIONED`.","format":"date","type":"string"},"cloud_vlan":{"description":"If the `provider_vlans` property of the `ProductOffering` is\n`multi`, a numeric value refers to a specific vlan on the service\nprovider side.\n\nOtherwise, if set to `null`, it refers to all unmatched\nvlan ids on the service provider side. (All vlan ids from the\nservice provider side are presented as tags within any vlans specified\nin `vlan_config`.)\n\nIf the `provider_vlans` property of the `ProductOffering` is `single`,\nthe `cloud_vlan` MUST be `null` or MUST NOT be provided.","format":"int32","maximum":4094,"minimum":1,"nullable":true,"type":"integer"},"connection":{"description":"The id of the connection to use for this `NetworkServiceConfig`.","type":"string"},"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"contract_ref":{"description":"A reference to a contract. If no specific contract is used, a default\nMAY be chosen by the implementer.\n","example":"contract:31824","maxLength":128,"nullable":true,"type":"string"},"decommission_at":{"description":"The service will be decommissioned on this date.\n\nThis field is only used when\nthe state is `DECOMMISSION_REQUESTED` or\n`DECOMMISSIONED`.","format":"date","type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"handover":{"description":"The handover enumerates the connection and is\nrequired for checking diversity constraints.\n\nIt must be within `1 <= x <= network_service.diversity`.\n","example":1,"minimum":1,"type":"integer"},"id":{"maxLength":80,"type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"network_feature_configs":{"description":"A list of ids of `NetworkFeatureConfig`s.\n","example":["12356","43829"],"items":{"type":"string"},"readOnly":true,"type":"array"},"network_service":{"description":"The id of the configured network service.","type":"string"},"purchase_order":{"default":"","description":"Purchase Order ID which will be displayed on the invoice.\n","example":"Project: DC Moon","maxLength":80,"type":"string"},"role_assignments":{"description":"A set of `RoleAssignment`s. See the documentation\non the specific `required_contact_roles`,\n`nfc_required_contact_roles` or `nsc_required_contact_roles`\non what `RoleAssignment`s to provide.\n","example":["c-impl:123","c-noc:331"],"items":{"type":"string"},"type":"array"},"state":{"enum":["requested","allocated","testing","production","production_change_pending","decommission_requested","decommissioned","archived","error","operator","scheduled"],"type":"string"},"status":{"items":{"$ref":"#/components/schemas/Status"},"type":"array"},"type":{"example":"cloud_vc","type":"string"},"vlan_config":{"$ref":"#/components/schemas/VlanConfig"}},"required":["type"],"title":"PartialCloudNetworkServiceConfig","type":"object"},"CloudNetworkServiceConfigRequest":{"allOf":[{"$ref":"#/components/schemas/CloudNetworkServiceConfigRequestPartial"},{"required":["managing_account","consuming_account","network_service","billing_account","role_assignments","connection","vlan_config","handover","cloud_vlan","type"],"title":"CloudNetworkServiceConfigRequest","type":"object"}]},"CloudNetworkServiceConfigRequestPartial":{"description":"Cloud Network Service Config Request","properties":{"billing_account":{"description":"An account requires billing_information to be used as a `billing_account`.","type":"string"},"cloud_vlan":{"description":"If the `provider_vlans` property of the `ProductOffering` is\n`multi`, a numeric value refers to a specific vlan on the service\nprovider side.\n\nOtherwise, if set to `null`, it refers to all unmatched\nvlan ids on the service provider side. (All vlan ids from the\nservice provider side are presented as tags within any vlans specified\nin `vlan_config`.)\n\nIf the `provider_vlans` property of the `ProductOffering` is `single`,\nthe `cloud_vlan` MUST be `null` or MUST NOT be provided.","format":"int32","maximum":4094,"minimum":1,"nullable":true,"type":"integer"},"connection":{"description":"The id of the connection to use for this `NetworkServiceConfig`.","type":"string"},"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"contract_ref":{"description":"A reference to a contract. If no specific contract is used, a default\nMAY be chosen by the implementer.\n","example":"contract:31824","maxLength":128,"nullable":true,"type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"handover":{"description":"The handover enumerates the connection and is\nrequired for checking diversity constraints.\n\nIt must be within `1 <= x <= network_service.diversity`.\n","example":1,"minimum":1,"type":"integer"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"network_feature_configs":{"description":"A list of ids of `NetworkFeatureConfig`s.\n","example":["12356","43829"],"items":{"type":"string"},"readOnly":true,"type":"array"},"network_service":{"description":"The id of the `NetworkService` to configure.","type":"string"},"purchase_order":{"default":"","description":"Purchase Order ID which will be displayed on the invoice.\n","example":"Project: DC Moon","maxLength":80,"type":"string"},"role_assignments":{"description":"A set of `RoleAssignment`s. See the documentation\non the specific `required_contact_roles`,\n`nfc_required_contact_roles` or `nsc_required_contact_roles`\non what `RoleAssignment`s to provide.\n","example":["c-impl:123","c-noc:331"],"items":{"type":"string"},"type":"array"},"type":{"example":"cloud_vc","type":"string"},"vlan_config":{"$ref":"#/components/schemas/VlanConfig"}},"required":["type"],"title":"PartialCloudNetworkServiceConfigRequest","type":"object"},"CloudNetworkServiceConfigUpdate":{"allOf":[{"$ref":"#/components/schemas/CloudNetworkServiceConfigUpdatePartial"},{"required":["managing_account","consuming_account","vlan_config","billing_account","role_assignments","connection","handover","cloud_vlan","type"],"title":"CloudNetworkServiceConfigUpdate","type":"object"}]},"CloudNetworkServiceConfigUpdatePartial":{"description":"Cloud Network Service Config Update","properties":{"billing_account":{"description":"An account requires billing_information to be used as a `billing_account`.","type":"string"},"cloud_vlan":{"description":"If the `provider_vlans` property of the `ProductOffering` is\n`multi`, a numeric value refers to a specific vlan on the service\nprovider side.\n\nOtherwise, if set to `null`, it refers to all unmatched\nvlan ids on the service provider side. (All vlan ids from the\nservice provider side are presented as tags within any vlans specified\nin `vlan_config`.)\n\nIf the `provider_vlans` property of the `ProductOffering` is `single`,\nthe `cloud_vlan` MUST be `null` or MUST NOT be provided.","format":"int32","maximum":4094,"minimum":1,"nullable":true,"type":"integer"},"connection":{"description":"The id of the connection to use for this `NetworkServiceConfig`.","type":"string"},"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"contract_ref":{"description":"A reference to a contract. If no specific contract is used, a default\nMAY be chosen by the implementer.\n","example":"contract:31824","maxLength":128,"nullable":true,"type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"handover":{"description":"The handover enumerates the connection and is\nrequired for checking diversity constraints.\n\nIt must be within `1 <= x <= network_service.diversity`.\n","example":1,"minimum":1,"type":"integer"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"network_feature_configs":{"description":"A list of ids of `NetworkFeatureConfig`s.\n","example":["12356","43829"],"items":{"type":"string"},"readOnly":true,"type":"array"},"purchase_order":{"default":"","description":"Purchase Order ID which will be displayed on the invoice.\n","example":"Project: DC Moon","maxLength":80,"type":"string"},"role_assignments":{"description":"A set of `RoleAssignment`s. See the documentation\non the specific `required_contact_roles`,\n`nfc_required_contact_roles` or `nsc_required_contact_roles`\non what `RoleAssignment`s to provide.\n","example":["c-impl:123","c-noc:331"],"items":{"type":"string"},"type":"array"},"type":{"example":"cloud_vc","type":"string"},"vlan_config":{"$ref":"#/components/schemas/VlanConfig"}},"required":["type"],"title":"PartialCloudNetworkServiceConfigUpdate","type":"object"},"CloudNetworkServicePartial":{"description":"Cloud Network Service","properties":{"billing_account":{"description":"An account requires billing_information to be used as a `billing_account`.","type":"string"},"capacity":{"description":"The capacity of the service in Mbps. When null,\nthe maximum capacity will be used.","minimum":1,"nullable":true,"type":"integer"},"charged_until":{"description":"Your obligation to pay for the service will end on this date.\nTypically `≥ decommission_at`.\n\nThis field is only used when\nthe state is `DECOMMISSION_REQUESTED` or\n`DECOMMISSIONED`.","format":"date","type":"string"},"cloud_key":{"type":"string"},"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"contract_ref":{"description":"A reference to a contract. If no specific contract is used, a default\nMAY be chosen by the implementer.\n","example":"contract:31824","maxLength":128,"nullable":true,"type":"string"},"decommission_at":{"description":"The service will be decommissioned on this date.\n\nThis field is only used when\nthe state is `DECOMMISSION_REQUESTED` or\n`DECOMMISSIONED`.","format":"date","type":"string"},"diversity":{"description":"Same value as the corresponding `ProductOffering`.\n\nThe service can be delivered over multiple handovers from\nthe exchange to the `service_provider`.\n\nThe `diversity` denotes the number of handovers between the\nexchange and the service provider. A value of two signals a\nredundant service.\n\nOnly one network service configuration for each `handover` and\n`cloud_vlan` can be created.","minimum":1,"type":"integer"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"id":{"type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"nsc_required_contact_roles":{"description":"The configuration will require at least one of each of the\nspecified roles assigned to contacts.\n\nThe `RoleAssignment` is associated through the\n`role_assignments` list property of the network service configuration.","items":{"type":"string"},"readOnly":true,"type":"array"},"product_offering":{"type":"string"},"provider_ref":{"description":"For a cloud network service with the exchange first\nworkflow, the `provider_ref` will be a reference\nto a resource of the cloud provider. (E.g. the UUID of\na virtual circuit.)\n\nThe `provider_ref` is managed by the exchange and its\nmeaning may vary between different cloud services.\n","example":"331050d5-76fb-498b-b72a-248520278fbd","nullable":true,"type":"string"},"purchase_order":{"default":"","description":"Purchase Order ID which will be displayed on the invoice.\n","example":"Project: DC Moon","maxLength":80,"type":"string"},"state":{"enum":["requested","allocated","testing","production","production_change_pending","decommission_requested","decommissioned","archived","error","operator","scheduled"],"type":"string"},"status":{"items":{"$ref":"#/components/schemas/Status"},"type":"array"},"type":{"example":"cloud_vc","type":"string"}},"required":["type"],"title":"PartialCloudNetworkService","type":"object"},"CloudNetworkServiceRequest":{"allOf":[{"$ref":"#/components/schemas/CloudNetworkServiceRequestPartial"},{"required":["product_offering","managing_account","consuming_account","billing_account","cloud_key","type"],"title":"CloudNetworkServiceRequest","type":"object"}]},"CloudNetworkServiceRequestPartial":{"description":"Cloud Network Service Request","properties":{"billing_account":{"description":"An account requires billing_information to be used as a `billing_account`.","type":"string"},"capacity":{"description":"The capacity of the service in Mbps. When null,\nthe maximum capacity will be used.","minimum":1,"nullable":true,"type":"integer"},"cloud_key":{"type":"string"},"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"contract_ref":{"description":"A reference to a contract. If no specific contract is used, a default\nMAY be chosen by the implementer.\n","example":"contract:31824","maxLength":128,"nullable":true,"type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"product_offering":{"type":"string"},"purchase_order":{"default":"","description":"Purchase Order ID which will be displayed on the invoice.\n","example":"Project: DC Moon","maxLength":80,"type":"string"},"type":{"example":"cloud_vc","type":"string"}},"required":["type"],"title":"PartialCloudNetworkServiceRequest","type":"object"},"Connection":{"allOf":[{"$ref":"#/components/schemas/ConnectionPartial"},{"required":["state","managing_account","consuming_account","billing_account","role_assignments","mode","id","name","vlan_types","outer_vlan_ethertypes"],"title":"Connection","type":"object"}]},"ConnectionPartial":{"description":"Connection","properties":{"billing_account":{"description":"An account requires billing_information to be used as a `billing_account`.","type":"string"},"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"contract_ref":{"description":"A reference to a contract. If no specific contract is used, a default\nMAY be chosen by the implementer.\n","example":"contract:31824","maxLength":128,"nullable":true,"type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"id":{"maxLength":80,"type":"string"},"lacp_timeout":{"description":"This sets the LACP Timeout mode. Both ends of the connections need\nto be configured the same.\n","enum":["slow","fast"],"example":"slow","nullable":true,"type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"mode":{"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 port is allowed in this connection without\nany bundling.\n","enum":["lag_lacp","lag_static","flex_ethernet","standalone"],"example":"lag_lacp","type":"string"},"name":{"maxLength":80,"type":"string"},"outer_vlan_ethertypes":{"description":"The ethertype of the outer tag in hexadecimal notation.\n","example":["0x8100"],"items":{"default":"0x8100","enum":["0x8100","0x88a8","0x9100"],"type":"string"},"type":"array"},"ports":{"description":"References to the port belonging to this connection. Typically\nall ports within one connection are distributed over the same\ndevice.\n","example":["ID23","42","5"],"items":{"type":"string"},"type":"array"},"purchase_order":{"default":"","description":"Purchase Order ID which will be displayed on the invoice.\n","example":"Project: DC Moon","maxLength":80,"type":"string"},"role_assignments":{"description":"A set of `RoleAssignment`s. See the documentation\non the specific `required_contact_roles`,\n`nfc_required_contact_roles` or `nsc_required_contact_roles`\non what `RoleAssignment`s to provide.\n","example":["c-impl:123","c-noc:331"],"items":{"type":"string"},"type":"array"},"speed":{"description":"Shows the total bandwidth of the connection in Mbit/s.\n","example":20000,"minimum":0,"nullable":true,"type":"integer"},"state":{"enum":["requested","allocated","testing","production","production_change_pending","decommission_requested","decommissioned","archived","error","operator","scheduled"],"type":"string"},"status":{"items":{"$ref":"#/components/schemas/Status"},"type":"array"},"vlan_types":{"description":"A list of vlan config types you can configure using\nthis connection.","items":{"enum":["port","dot1q","qinq"],"type":"string"},"type":"array"}},"title":"PartialConnection","type":"object"},"ConnectionRequest":{"allOf":[{"$ref":"#/components/schemas/ConnectionRequestPartial"},{"required":["managing_account","consuming_account","billing_account","role_assignments","mode"],"title":"ConnectionRequest","type":"object"}]},"ConnectionRequestPartial":{"description":"Connection Request","properties":{"billing_account":{"description":"An account requires billing_information to be used as a `billing_account`.","type":"string"},"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"contract_ref":{"description":"A reference to a contract. If no specific contract is used, a default\nMAY be chosen by the implementer.\n","example":"contract:31824","maxLength":128,"nullable":true,"type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"lacp_timeout":{"description":"This sets the LACP Timeout mode. Both ends of the connections need\nto be configured the same.\n","enum":["slow","fast"],"example":"slow","nullable":true,"type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"mode":{"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 port is allowed in this connection without\nany bundling.\n","enum":["lag_lacp","lag_static","flex_ethernet","standalone"],"example":"lag_lacp","type":"string"},"purchase_order":{"default":"","description":"Purchase Order ID which will be displayed on the invoice.\n","example":"Project: DC Moon","maxLength":80,"type":"string"},"role_assignments":{"description":"A set of `RoleAssignment`s. See the documentation\non the specific `required_contact_roles`,\n`nfc_required_contact_roles` or `nsc_required_contact_roles`\non what `RoleAssignment`s to provide.\n","example":["c-impl:123","c-noc:331"],"items":{"type":"string"},"type":"array"},"speed":{"description":"Shows the total bandwidth of the connection in Mbit/s.\n","example":20000,"minimum":0,"nullable":true,"type":"integer"}},"title":"PartialConnectionRequest","type":"object"},"ConnectionUpdate":{"allOf":[{"$ref":"#/components/schemas/ConnectionUpdatePartial"},{"required":["managing_account","consuming_account","billing_account","role_assignments","mode"],"title":"ConnectionUpdate","type":"object"}]},"ConnectionUpdatePartial":{"description":"Connection Update","properties":{"billing_account":{"description":"An account requires billing_information to be used as a `billing_account`.","type":"string"},"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"contract_ref":{"description":"A reference to a contract. If no specific contract is used, a default\nMAY be chosen by the implementer.\n","example":"contract:31824","maxLength":128,"nullable":true,"type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"lacp_timeout":{"description":"This sets the LACP Timeout mode. Both ends of the connections need\nto be configured the same.\n","enum":["slow","fast"],"example":"slow","nullable":true,"type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"mode":{"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 port is allowed in this connection without\nany bundling.\n","enum":["lag_lacp","lag_static","flex_ethernet","standalone"],"example":"lag_lacp","type":"string"},"purchase_order":{"default":"","description":"Purchase Order ID which will be displayed on the invoice.\n","example":"Project: DC Moon","maxLength":80,"type":"string"},"role_assignments":{"description":"A set of `RoleAssignment`s. See the documentation\non the specific `required_contact_roles`,\n`nfc_required_contact_roles` or `nsc_required_contact_roles`\non what `RoleAssignment`s to provide.\n","example":["c-impl:123","c-noc:331"],"items":{"type":"string"},"type":"array"},"speed":{"description":"Shows the total bandwidth of the connection in Mbit/s.\n","example":20000,"minimum":0,"nullable":true,"type":"integer"}},"title":"PartialConnectionUpdate","type":"object"},"Consumable":{"allOf":[{"$ref":"#/components/schemas/ConsumablePartial"},{"required":["consuming_account"],"title":"Consumable","type":"object"}]},"ConsumablePartial":{"description":"Consumable","properties":{"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"}},"title":"PartialConsumable","type":"object"},"Contact":{"allOf":[{"$ref":"#/components/schemas/ContactPartial"},{"required":["managing_account","consuming_account","id"],"title":"Contact","type":"object"}]},"ContactPartial":{"description":"Contact","properties":{"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"email":{"description":"The email of the legal company entity.\n","example":"info@moon-peer.net","maxLength":80,"nullable":true,"type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"id":{"type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"name":{"description":"A name of a person or an organisation","example":"Some A. Name","maxLength":128,"nullable":true,"type":"string"},"telephone":{"description":"The telephone number in E.164 Phone Number Formatting","example":"+442071838750","maxLength":40,"nullable":true,"type":"string"}},"title":"PartialContact","type":"object"},"ContactRequest":{"allOf":[{"$ref":"#/components/schemas/ContactRequestPartial"},{"required":["managing_account","consuming_account"],"title":"ContactRequest","type":"object"}]},"ContactRequestPartial":{"description":"A contact creation request","properties":{"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"email":{"description":"The email of the legal company entity.\n","example":"info@moon-peer.net","maxLength":80,"nullable":true,"type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"name":{"description":"A name of a person or an organisation","example":"Some A. Name","maxLength":128,"nullable":true,"type":"string"},"telephone":{"description":"The telephone number in E.164 Phone Number Formatting","example":"+442071838750","maxLength":40,"nullable":true,"type":"string"}},"title":"PartialContactRequest","type":"object"},"ContactUpdate":{"allOf":[{"$ref":"#/components/schemas/ContactUpdatePartial"},{"required":["managing_account","consuming_account"],"title":"ContactUpdate","type":"object"}]},"ContactUpdatePartial":{"description":"A contact update","properties":{"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"email":{"description":"The email of the legal company entity.\n","example":"info@moon-peer.net","maxLength":80,"nullable":true,"type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"name":{"description":"A name of a person or an organisation","example":"Some A. Name","maxLength":128,"nullable":true,"type":"string"},"telephone":{"description":"The telephone number in E.164 Phone Number Formatting","example":"+442071838750","maxLength":40,"nullable":true,"type":"string"}},"title":"PartialContactUpdate","type":"object"},"Contactable":{"allOf":[{"$ref":"#/components/schemas/ContactablePartial"},{"required":["role_assignments"],"title":"Contactable","type":"object"}]},"ContactablePartial":{"description":"Contactable","properties":{"role_assignments":{"description":"A set of `RoleAssignment`s. See the documentation\non the specific `required_contact_roles`,\n`nfc_required_contact_roles` or `nsc_required_contact_roles`\non what `RoleAssignment`s to provide.\n","example":["c-impl:123","c-noc:331"],"items":{"type":"string"},"type":"array"}},"title":"PartialContactable","type":"object"},"DenyMemberJoiningRule":{"allOf":[{"$ref":"#/components/schemas/DenyMemberJoiningRulePartial"},{"required":["managing_account","consuming_account","id","network_service","type"],"title":"DenyMemberJoiningRule","type":"object"}]},"DenyMemberJoiningRulePartial":{"description":"A rule for members joining a private vlan","properties":{"consuming_account":{"description":"The `id` of the account to which access to the\nnetwork service should be granted or denied.\n","example":"2381982","type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"id":{"type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"network_service":{"type":"string"},"type":{"example":"deny","type":"string"}},"required":["type"],"title":"PartialDenyMemberJoiningRule","type":"object"},"DenyMemberJoiningRuleRequest":{"allOf":[{"$ref":"#/components/schemas/DenyMemberJoiningRuleRequestPartial"},{"required":["managing_account","consuming_account","network_service","type"],"title":"DenyMemberJoiningRuleRequest","type":"object"}]},"DenyMemberJoiningRuleRequestPartial":{"description":"A new vlan member joining rule","properties":{"consuming_account":{"description":"The `id` of the account to which access to the\nnetwork service should be granted or denied.\n","example":"2381982","type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"network_service":{"type":"string"},"type":{"example":"deny","type":"string"}},"required":["type"],"title":"PartialDenyMemberJoiningRuleRequest","type":"object"},"DenyMemberJoiningRuleUpdate":{"allOf":[{"$ref":"#/components/schemas/DenyMemberJoiningRuleUpdatePartial"},{"required":["managing_account","consuming_account","type"],"title":"DenyMemberJoiningRuleUpdate","type":"object"}]},"DenyMemberJoiningRuleUpdatePartial":{"description":"A vlan member joining rule update","properties":{"consuming_account":{"description":"The `id` of the account to which access to the\nnetwork service should be granted or denied.\n","example":"2381982","type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"type":{"example":"deny","type":"string"}},"required":["type"],"title":"PartialDenyMemberJoiningRuleUpdate","type":"object"},"Device":{"allOf":[{"$ref":"#/components/schemas/DevicePartial"},{"required":["name","pop","id"],"title":"Device","type":"object"}]},"DeviceCapability":{"allOf":[{"$ref":"#/components/schemas/DeviceCapabilityPartial"},{"title":"DeviceCapability","type":"object"}]},"DeviceCapabilityPartial":{"description":"Device Capability","properties":{"availability":{"description":"Count of available ports on device\n","example":23,"format":"int32","maximum":2147483647,"minimum":0,"readOnly":true,"type":"integer"},"max_lag":{"description":"Maximum count of ports which can be bundled to a max_lag","example":8,"format":"int32","maximum":32767,"minimum":0,"readOnly":true,"type":"integer"},"media_type":{"description":"The media type of the port (e.g. 1000BASE-LX, 10GBASE-LR, ...)\n","example":"1000BASE-LX","maxLength":20,"readOnly":true,"type":"string"},"speed":{"description":"Speed of port in Mbit/s\n","example":1000,"readOnly":true,"type":"integer"}},"title":"PartialDeviceCapability","type":"object"},"DeviceConnection":{"allOf":[{"$ref":"#/components/schemas/DeviceConnectionPartial"},{"required":["capacity_max","device","connected_device","id"],"title":"DeviceConnection","type":"object"}]},"DeviceConnectionPartial":{"description":"Device Connection","properties":{"capacity_max":{"format":"int32","maximum":2147483647,"minimum":0,"type":"integer"},"connected_device":{"type":"string"},"device":{"type":"string"},"id":{"maxLength":80,"type":"string"}},"title":"PartialDeviceConnection","type":"object"},"DevicePartial":{"description":"Device","properties":{"capabilities":{"items":{"$ref":"#/components/schemas/DeviceCapability"},"type":"array"},"facility":{"description":"Identifier of the facility where the device\nis physically based.","readOnly":true,"type":"string"},"id":{"maxLength":80,"type":"string"},"name":{"description":"Name of the device\n","example":"edge2.moon.space-ix.net","maxLength":180,"type":"string"},"pop":{"description":"The `PointOfPresence` the device is in.","type":"string"}},"title":"PartialDevice","type":"object"},"Event":{"allOf":[{"$ref":"#/components/schemas/EventPartial"},{"required":["serial","type","payload","timestamp"],"title":"Event","type":"object"}]},"EventPartial":{"description":"Event","properties":{"account":{"readOnly":true,"type":"string"},"payload":{"type":"object"},"serial":{"type":"integer"},"timestamp":{"format":"date-time","type":"string"},"type":{"type":"string"}},"title":"PartialEvent","type":"object"},"ExchangeLanNetworkProductOffering":{"allOf":[{"$ref":"#/components/schemas/ExchangeLanNetworkProductOfferingPartial"},{"required":["id","name","display_name","provider_vlans","resource_type","handover_metro_area_network","handover_metro_area","service_metro_area_network","service_metro_area","bandwidth_min","bandwidth_max","physical_port_speed","service_provider","downgrade_allowed","upgrade_allowed","exchange_lan_network_service","type"],"title":"ExchangeLanNetworkProductOffering","type":"object"}]},"ExchangeLanNetworkProductOfferingPartial":{"description":"Exchange Lan Network Product Offering","properties":{"bandwidth_max":{"description":"When not `null`, this value enforces a mandatory\nrate limit for all network service configs.","minimum":0,"nullable":true,"type":"integer"},"bandwidth_min":{"description":"When configuring access to the network service, at least\nthis `capacity` must be provided.","minimum":0,"nullable":true,"type":"integer"},"display_name":{"maxLength":256,"type":"string"},"downgrade_allowed":{"description":"Indicates if the service can be migrated to\na lower bandwidth.","type":"boolean"},"exchange_lan_network_service":{"description":"The id of the exchange lan network service.","type":"string"},"handover_metro_area":{"description":"Id of the `MetroArea`. The network service will be\naccessed from this metro area.\n","example":"met:29381993:NYC","type":"string"},"handover_metro_area_network":{"description":"Id of the `MetroAreaNetwork`. The service will be accessed\nthrough the handover metro area network.\n","example":"191239810","type":"string"},"id":{"maxLength":80,"type":"string"},"name":{"description":"Name of the product","maxLength":160,"type":"string"},"physical_port_speed":{"description":"If the service is dependent on the speed of\nthe physical port this field denotes the speed.","minimum":0,"nullable":true,"type":"integer"},"provider_vlans":{"description":"The `NetworkService` provides `single` or `multi`ple vlans.","enum":["single","multi"],"type":"string"},"resource_type":{"description":"The resource type refers to an ix-api resource.\n","enum":["connection","demarc","network_service","network_service_config"],"example":"network_service","type":"string"},"service_metro_area":{"description":"Id of the `MetroArea`. The service is delivered\nin this metro area.\n","example":"met:213913485:LON","type":"string"},"service_metro_area_network":{"description":"Id of the `MetroAreaNetwork`.\nThe service is directly provided on the metro area network.\n","example":"9123843","type":"string"},"service_provider":{"description":"The name of the provider providing the service.\n","example":"AWS","type":"string"},"type":{"example":"exchange_lan","type":"string"},"upgrade_allowed":{"description":"Indicates if the service can be migrated to\na higher bandwidth.","type":"boolean"}},"required":["type"],"title":"PartialExchangeLanNetworkProductOffering","type":"object"},"ExchangeLanNetworkService":{"allOf":[{"$ref":"#/components/schemas/ExchangeLanNetworkServicePartial"},{"required":["state","id","managing_account","consuming_account","name","metro_area_network","network_features","subnet_v4","subnet_v6","type"],"title":"ExchangeLanNetworkService","type":"object"}]},"ExchangeLanNetworkServiceConfig":{"allOf":[{"$ref":"#/components/schemas/ExchangeLanNetworkServiceConfigPartial"},{"required":["state","id","network_service","managing_account","consuming_account","billing_account","role_assignments","connection","vlan_config","asns","listed","product_offering","type"],"title":"ExchangeLanNetworkServiceConfig","type":"object"}]},"ExchangeLanNetworkServiceConfigPartial":{"description":"Exchange Lan Network Service Config","properties":{"asns":{"items":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"type":"array"},"billing_account":{"description":"An account requires billing_information to be used as a `billing_account`.","type":"string"},"capacity":{"description":"The capacity of the service in Mbps. If set to Null,\nthe maximum capacity will be used, i.e. the virtual circuit is\nnot rate-limited.\n\nAn exchange may choose to constrain the available capacity range\nof a `ProductOffering`.\n\nThat means, the service can consume up to the total bandwidth\nof the `Connection`.\n\nTypically the service is charged based on the capacity.","minimum":1,"nullable":true,"type":"integer"},"charged_until":{"description":"Your obligation to pay for the service will end on this date.\nTypically `≥ decommission_at`.\n\nThis field is only used when\nthe state is `DECOMMISSION_REQUESTED` or\n`DECOMMISSIONED`.","format":"date","type":"string"},"connection":{"description":"The id of the connection to use for this `NetworkServiceConfig`.","type":"string"},"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"contract_ref":{"description":"A reference to a contract. If no specific contract is used, a default\nMAY be chosen by the implementer.\n","example":"contract:31824","maxLength":128,"nullable":true,"type":"string"},"decommission_at":{"description":"The service will be decommissioned on this date.\n\nThis field is only used when\nthe state is `DECOMMISSION_REQUESTED` or\n`DECOMMISSIONED`.","format":"date","type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"id":{"maxLength":80,"type":"string"},"ips":{"description":"A list of ip-address IDs.\n\nAllocation of IP Addresses might be deferred depending on\nthe IXP implementation. No assumption should be made.","items":{"type":"string"},"readOnly":true,"type":"array"},"listed":{"description":"The customer wants to be featured on the member list","type":"boolean"},"macs":{"description":"A list of mac-address IDs.","items":{"type":"string"},"type":"array"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"network_feature_configs":{"description":"A list of ids of `NetworkFeatureConfig`s.\n","example":["12356","43829"],"items":{"type":"string"},"readOnly":true,"type":"array"},"network_service":{"description":"The id of the configured network service.","type":"string"},"product_offering":{"description":"The product offering must match the type `exchange_lan`\nand must refer to the related network service through\nthe `exchange_lan_network_service` property.","type":"string"},"purchase_order":{"default":"","description":"Purchase Order ID which will be displayed on the invoice.\n","example":"Project: DC Moon","maxLength":80,"type":"string"},"role_assignments":{"description":"A set of `RoleAssignment`s. See the documentation\non the specific `required_contact_roles`,\n`nfc_required_contact_roles` or `nsc_required_contact_roles`\non what `RoleAssignment`s to provide.\n","example":["c-impl:123","c-noc:331"],"items":{"type":"string"},"type":"array"},"state":{"enum":["requested","allocated","testing","production","production_change_pending","decommission_requested","decommissioned","archived","error","operator","scheduled"],"type":"string"},"status":{"items":{"$ref":"#/components/schemas/Status"},"type":"array"},"type":{"example":"exchange_lan","type":"string"},"vlan_config":{"$ref":"#/components/schemas/VlanConfig"}},"required":["type"],"title":"PartialExchangeLanNetworkServiceConfig","type":"object"},"ExchangeLanNetworkServiceConfigRequest":{"allOf":[{"$ref":"#/components/schemas/ExchangeLanNetworkServiceConfigRequestPartial"},{"required":["managing_account","consuming_account","network_service","billing_account","role_assignments","connection","vlan_config","asns","listed","product_offering","type"],"title":"ExchangeLanNetworkServiceConfigRequest","type":"object"}]},"ExchangeLanNetworkServiceConfigRequestPartial":{"description":"Exchange Lan Network Service Config Request","properties":{"asns":{"items":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"type":"array"},"billing_account":{"description":"An account requires billing_information to be used as a `billing_account`.","type":"string"},"capacity":{"description":"The capacity of the service in Mbps. If set to Null,\nthe maximum capacity will be used, i.e. the virtual circuit is\nnot rate-limited.\n\nAn exchange may choose to constrain the available capacity range\nof a `ProductOffering`.\n\nThat means, the service can consume up to the total bandwidth\nof the `Connection`.\n\nTypically the service is charged based on the capacity.","minimum":1,"nullable":true,"type":"integer"},"connection":{"description":"The id of the connection to use for this `NetworkServiceConfig`.","type":"string"},"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"contract_ref":{"description":"A reference to a contract. If no specific contract is used, a default\nMAY be chosen by the implementer.\n","example":"contract:31824","maxLength":128,"nullable":true,"type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"ips":{"description":"A list of ip-address IDs.\n\nAllocation of IP Addresses might be deferred depending on\nthe IXP implementation. No assumption should be made.","items":{"type":"string"},"readOnly":true,"type":"array"},"listed":{"description":"The customer wants to be featured on the member list","type":"boolean"},"macs":{"description":"A list of mac-address IDs.","items":{"type":"string"},"type":"array"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"network_feature_configs":{"description":"A list of ids of `NetworkFeatureConfig`s.\n","example":["12356","43829"],"items":{"type":"string"},"readOnly":true,"type":"array"},"network_service":{"description":"The id of the `NetworkService` to configure.","type":"string"},"product_offering":{"description":"The product offering must match the type `exchange_lan`\nand must refer to the related network service through\nthe `exchange_lan_network_service` property.","type":"string"},"purchase_order":{"default":"","description":"Purchase Order ID which will be displayed on the invoice.\n","example":"Project: DC Moon","maxLength":80,"type":"string"},"role_assignments":{"description":"A set of `RoleAssignment`s. See the documentation\non the specific `required_contact_roles`,\n`nfc_required_contact_roles` or `nsc_required_contact_roles`\non what `RoleAssignment`s to provide.\n","example":["c-impl:123","c-noc:331"],"items":{"type":"string"},"type":"array"},"type":{"example":"exchange_lan","type":"string"},"vlan_config":{"$ref":"#/components/schemas/VlanConfig"}},"required":["type"],"title":"PartialExchangeLanNetworkServiceConfigRequest","type":"object"},"ExchangeLanNetworkServiceConfigUpdate":{"allOf":[{"$ref":"#/components/schemas/ExchangeLanNetworkServiceConfigUpdatePartial"},{"required":["managing_account","consuming_account","vlan_config","billing_account","role_assignments","connection","asns","listed","type"],"title":"ExchangeLanNetworkServiceConfigUpdate","type":"object"}]},"ExchangeLanNetworkServiceConfigUpdatePartial":{"description":"Exchange Lan Network Service Config Update","properties":{"asns":{"items":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"type":"array"},"billing_account":{"description":"An account requires billing_information to be used as a `billing_account`.","type":"string"},"capacity":{"description":"The capacity of the service in Mbps. If set to Null,\nthe maximum capacity will be used, i.e. the virtual circuit is\nnot rate-limited.\n\nAn exchange may choose to constrain the available capacity range\nof a `ProductOffering`.\n\nThat means, the service can consume up to the total bandwidth\nof the `Connection`.\n\nTypically the service is charged based on the capacity.","minimum":1,"nullable":true,"type":"integer"},"connection":{"description":"The id of the connection to use for this `NetworkServiceConfig`.","type":"string"},"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"contract_ref":{"description":"A reference to a contract. If no specific contract is used, a default\nMAY be chosen by the implementer.\n","example":"contract:31824","maxLength":128,"nullable":true,"type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"ips":{"description":"A list of ip-address IDs.\n\nAllocation of IP Addresses might be deferred depending on\nthe IXP implementation. No assumption should be made.","items":{"type":"string"},"readOnly":true,"type":"array"},"listed":{"description":"The customer wants to be featured on the member list","type":"boolean"},"macs":{"description":"A list of mac-address IDs.","items":{"type":"string"},"type":"array"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"network_feature_configs":{"description":"A list of ids of `NetworkFeatureConfig`s.\n","example":["12356","43829"],"items":{"type":"string"},"readOnly":true,"type":"array"},"purchase_order":{"default":"","description":"Purchase Order ID which will be displayed on the invoice.\n","example":"Project: DC Moon","maxLength":80,"type":"string"},"role_assignments":{"description":"A set of `RoleAssignment`s. See the documentation\non the specific `required_contact_roles`,\n`nfc_required_contact_roles` or `nsc_required_contact_roles`\non what `RoleAssignment`s to provide.\n","example":["c-impl:123","c-noc:331"],"items":{"type":"string"},"type":"array"},"type":{"example":"exchange_lan","type":"string"},"vlan_config":{"$ref":"#/components/schemas/VlanConfig"}},"required":["type"],"title":"PartialExchangeLanNetworkServiceConfigUpdate","type":"object"},"ExchangeLanNetworkServicePartial":{"description":"Exchange Lan Network Service","properties":{"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"id":{"type":"string"},"ixfdb_ixid":{"description":"id of ixfdb","nullable":true,"type":"integer"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"metro_area_network":{"description":"Id of the `MetroAreaNetwork` where\nthe exchange lan network service is directly provided.\n\nSame as `service_metro_area_network` on the related\n`ProductOffering`.\n","example":"man:293225:LON2","type":"string"},"name":{"description":"Exchange-dependent service name, will be shown on the invoice.","maxLength":40,"type":"string"},"network_features":{"items":{"type":"string"},"type":"array"},"nsc_required_contact_roles":{"description":"The configuration will require at least one of each of the\nspecified roles assigned to contacts.\n\nThe `RoleAssignment` is associated through the\n`role_assignments` list property of the network service configuration.","items":{"type":"string"},"readOnly":true,"type":"array"},"peeringdb_ixid":{"description":"PeeringDB ixid","nullable":true,"type":"integer"},"product_offering":{"description":"*deprecation notice*","type":"string"},"state":{"enum":["requested","allocated","testing","production","production_change_pending","decommission_requested","decommissioned","archived","error","operator","scheduled"],"type":"string"},"status":{"items":{"$ref":"#/components/schemas/Status"},"type":"array"},"subnet_v4":{"description":"IPv4 subnet in [dot-decimal notation](https://en.wikipedia.org/wiki/Dot-decimal_notation)\nCIDR notation.\n","example":"23.142.52.0/21","type":"string"},"subnet_v6":{"description":"IPv6 subnet in hexadecimal colon separated CIDR notation.\n","example":"2001:23:42::/48","type":"string"},"type":{"example":"exchange_lan","type":"string"}},"required":["type"],"title":"PartialExchangeLanNetworkService","type":"object"},"ExternalReference":{"allOf":[{"$ref":"#/components/schemas/ExternalReferencePartial"},{"title":"ExternalReference","type":"object"}]},"ExternalReferencePartial":{"description":"External Reference","properties":{"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"}},"title":"PartialExternalReference","type":"object"},"Facility":{"allOf":[{"$ref":"#/components/schemas/FacilityPartial"},{"required":["name","metro_area","address_country","address_locality","address_region","postal_code","street_address","organisation_name","pops","id"],"title":"Facility","type":"object"}]},"FacilityPartial":{"description":"Facility","properties":{"address_country":{"description":"ISO 3166-1 alpha-2 country code, for example DE\n","example":"US","maxLength":2,"type":"string"},"address_locality":{"description":"The locality/city. For example, Mountain View.","example":"Mountain View","maxLength":80,"type":"string"},"address_region":{"description":"The region. For example, CA","example":"CA","maxLength":80,"type":"string"},"id":{"maxLength":80,"type":"string"},"metro_area":{"description":"Id of the `MetroArea` the DC is located in.\n","example":"met:93214980:BER","type":"string"},"name":{"description":"Name of the Datacenter as called by the operator\n","example":"Crater DC Moon 1","maxLength":80,"type":"string"},"organisation_name":{"description":"Name of Datacenter operator\n","example":"Moon Datacenters","maxLength":80,"type":"string"},"peeringdb_facility_id":{"description":"[PeeringDB](https://www.peeringdb.com) facitlity ID,\ncan be extracted from the url https://www.peeringdb.com/fac/$id\n","example":103,"format":"int32","maximum":2147483647,"minimum":0,"nullable":true,"type":"integer"},"pops":{"description":"List of pops in the `Facility`.","items":{"type":"string"},"type":"array"},"postal_code":{"description":"A postal code. For example, 9404","example":"9409","maxLength":18,"type":"string"},"street_address":{"description":"The street address. For example, 1600 Amphitheatre Pkwy.","example":"1600 Amphitheatre Pkwy.","maxLength":80,"type":"string"}},"title":"PartialFacility","type":"object"},"HealthResponse":{"allOf":[{"$ref":"#/components/schemas/HealthResponsePartial"},{"required":["status"],"title":"HealthResponse","type":"object"}]},"HealthResponsePartial":{"description":"Health Status Response","properties":{"checks":{"additionalProperties":{"additionalProperties":{"type":"string"},"type":"object"},"description":"The \"checks\" object MAY have a number of unique keys,\none for each logical downstream dependency or sub-component.\n\nSince each sub-component may be backed by several nodes\nwith varying health statuses, these keys point to arrays\nof objects. In case of a single-node sub-component\n(or if presence of nodes is not relevant), a single-element\narray SHOULD be used as the value, for consistency.\n\nPlease see\nhttps://tools.ietf.org/id/draft-inadarei-api-health-check-04.html#the-checks-object\nfor details.","type":"object"},"description":{"description":"A human-friendly description of the service.","type":"string"},"links":{"additionalProperties":{"type":"string"},"description":"Is an object containing link relations and URIs [RFC3986]\nfor external links that MAY contain more information about\nthe health of the endpoint.","type":"object"},"notes":{"description":"Array of notes relevant to current state of health.","items":{"type":"string"},"type":"array"},"output":{"description":"Raw error output, in case of \"fail\" or \"warn\" states.","type":"string"},"releaseId":{"description":"Release version of the api implementation.\n","example":"1.23.0","type":"string"},"serviceId":{"description":"A unique identifier of the service, in the application scope.","type":"string"},"status":{"description":"status indicates whether the service status is\nacceptable or not.","enum":["pass","fail","warn"],"type":"string"},"version":{"description":"Public version of the service.\n","example":"1","type":"string"}},"title":"PartialHealthResponse","type":"object"},"IXPSpecificFeatureFlag":{"allOf":[{"$ref":"#/components/schemas/IXPSpecificFeatureFlagPartial"},{"required":["name","description"],"title":"IXPSpecificFeatureFlag","type":"object"}]},"IXPSpecificFeatureFlagPartial":{"description":"IXP-Specific Feature Flag","properties":{"description":{"description":"The description of the feature flag.\n","example":"RPKI reject invalid filtering is available","maxLength":80,"type":"string"},"name":{"description":"The name of the feature flag.\n","example":"RPKI","maxLength":20,"type":"string"}},"title":"PartialIXPSpecificFeatureFlag","type":"object"},"ImplementationResponse":{"allOf":[{"$ref":"#/components/schemas/ImplementationResponsePartial"},{"required":["schema_version","supported_network_service_types","supported_network_service_config_types","supported_network_feature_types","supported_network_feature_config_types","supported_operations"],"title":"ImplementationResponse","type":"object"}]},"ImplementationResponsePartial":{"description":"API Implementation","properties":{"schema_version":{"description":"Version of the implemented IX-API schema.\n","example":"2.0.0","type":"string"},"service_version":{"description":"Version of the API service.\n","example":"1.23.0","type":"string"},"supported_network_feature_config_types":{"description":"Array of supported network feature config types.\n","example":["route_server"],"items":{"type":"string"},"type":"array"},"supported_network_feature_types":{"description":"Array of supported network feature types.\n","example":["route_server"],"items":{"type":"string"},"type":"array"},"supported_network_service_config_types":{"description":"Array of supported network service config types.\n","example":["exchange_lan","p2p_vc","cloud_vc"],"items":{"type":"string"},"type":"array"},"supported_network_service_types":{"description":"Array of network service types, supported by the IX.\n","example":["exchange_lan","p2p_vc","cloud_vc"],"items":{"type":"string"},"type":"array"},"supported_operations":{"description":"Array of implemented operations of the ix-api schema.\n","example":["connections_list","connections_read","network_service_configs_create"],"items":{"type":"string"},"type":"array"}},"title":"PartialImplementationResponse","type":"object"},"Invoiceable":{"allOf":[{"$ref":"#/components/schemas/InvoiceablePartial"},{"required":["billing_account"],"title":"Invoiceable","type":"object"}]},"InvoiceablePartial":{"description":"Invoiceable","properties":{"billing_account":{"description":"An account requires billing_information to be used as a `billing_account`.","type":"string"},"contract_ref":{"description":"A reference to a contract. If no specific contract is used, a default\nMAY be chosen by the implementer.\n","example":"contract:31824","maxLength":128,"nullable":true,"type":"string"},"purchase_order":{"default":"","description":"Purchase Order ID which will be displayed on the invoice.\n","example":"Project: DC Moon","maxLength":80,"type":"string"}},"title":"PartialInvoiceable","type":"object"},"IpAddress":{"allOf":[{"$ref":"#/components/schemas/IpAddressPartial"},{"required":["managing_account","consuming_account","version","address","prefix_length","id"],"title":"IpAddress","type":"object"}]},"IpAddressPartial":{"description":"IP-Address","properties":{"address":{"description":"IPv4 or IPv6 Address in the following format:\n- IPv4: [dot-decimal notation](https://en.wikipedia.org/wiki/Dot-decimal_notation)\n- IPv6: hexadecimal colon separated notation\n","example":"23.142.52.0","type":"string"},"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"fqdn":{"maxLength":100,"nullable":true,"type":"string"},"id":{"maxLength":80,"type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"prefix_length":{"description":"The CIDR ip prefix length\n","example":23,"format":"int32","maximum":128,"minimum":0,"type":"integer"},"valid_not_after":{"format":"date-time","nullable":true,"type":"string"},"valid_not_before":{"format":"date-time","nullable":true,"type":"string"},"version":{"description":"The version of the internet protocol.\n","example":4,"type":"integer"}},"title":"PartialIpAddress","type":"object"},"IpAddressRequest":{"allOf":[{"$ref":"#/components/schemas/IpAddressRequestPartial"},{"required":["managing_account","consuming_account","version","address","prefix_length"],"title":"IpAddressRequest","type":"object"}]},"IpAddressRequestPartial":{"description":"IP-Address / Prefix allocation Request","properties":{"address":{"description":"IPv4 or IPv6 Address in the following format:\n- IPv4: [dot-decimal notation](https://en.wikipedia.org/wiki/Dot-decimal_notation)\n- IPv6: hexadecimal colon separated notation\n","example":"23.142.52.0","type":"string"},"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"fqdn":{"maxLength":100,"nullable":true,"type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"prefix_length":{"description":"The CIDR ip prefix length\n","example":23,"format":"int32","maximum":128,"minimum":0,"type":"integer"},"valid_not_after":{"format":"date-time","nullable":true,"type":"string"},"valid_not_before":{"format":"date-time","nullable":true,"type":"string"},"version":{"description":"The version of the internet protocol.\n","example":4,"type":"integer"}},"title":"PartialIpAddressRequest","type":"object"},"IpAddressUpdate":{"allOf":[{"$ref":"#/components/schemas/IpAddressUpdatePartial"},{"required":["managing_account","consuming_account","version","address","prefix_length"],"title":"IpAddressUpdate","type":"object"}]},"IpAddressUpdatePartial":{"description":"IP-Address Update","properties":{"address":{"description":"IPv4 or IPv6 Address in the following format:\n- IPv4: [dot-decimal notation](https://en.wikipedia.org/wiki/Dot-decimal_notation)\n- IPv6: hexadecimal colon separated notation\n","example":"23.142.52.0","type":"string"},"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"fqdn":{"maxLength":100,"nullable":true,"type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"prefix_length":{"description":"The CIDR ip prefix length\n","example":23,"format":"int32","maximum":128,"minimum":0,"type":"integer"},"valid_not_after":{"format":"date-time","nullable":true,"type":"string"},"valid_not_before":{"format":"date-time","nullable":true,"type":"string"},"version":{"description":"The version of the internet protocol.\n","example":4,"type":"integer"}},"title":"PartialIpAddressUpdate","type":"object"},"MP2MPNetworkProductOffering":{"allOf":[{"$ref":"#/components/schemas/MP2MPNetworkProductOfferingPartial"},{"required":["id","name","display_name","provider_vlans","resource_type","handover_metro_area_network","handover_metro_area","service_metro_area_network","service_metro_area","bandwidth_min","bandwidth_max","physical_port_speed","service_provider","downgrade_allowed","upgrade_allowed","type"],"title":"MP2MPNetworkProductOffering","type":"object"}]},"MP2MPNetworkProductOfferingPartial":{"description":"MP2MP Network Product Offering","properties":{"bandwidth_max":{"description":"When not `null`, this value enforces a mandatory\nrate limit for all network service configs.","minimum":0,"nullable":true,"type":"integer"},"bandwidth_min":{"description":"When configuring access to the network service, at least\nthis `capacity` must be provided.","minimum":0,"nullable":true,"type":"integer"},"display_name":{"maxLength":256,"type":"string"},"downgrade_allowed":{"description":"Indicates if the service can be migrated to\na lower bandwidth.","type":"boolean"},"handover_metro_area":{"description":"Id of the `MetroArea`. The network service will be\naccessed from this metro area.\n","example":"met:29381993:NYC","type":"string"},"handover_metro_area_network":{"description":"Id of the `MetroAreaNetwork`. The service will be accessed\nthrough the handover metro area network.\n","example":"191239810","type":"string"},"id":{"maxLength":80,"type":"string"},"name":{"description":"Name of the product","maxLength":160,"type":"string"},"physical_port_speed":{"description":"If the service is dependent on the speed of\nthe physical port this field denotes the speed.","minimum":0,"nullable":true,"type":"integer"},"provider_vlans":{"description":"The `NetworkService` provides `single` or `multi`ple vlans.","enum":["single","multi"],"type":"string"},"resource_type":{"description":"The resource type refers to an ix-api resource.\n","enum":["connection","demarc","network_service","network_service_config"],"example":"network_service","type":"string"},"service_metro_area":{"description":"Id of the `MetroArea`. The service is delivered\nin this metro area.\n","example":"met:213913485:LON","type":"string"},"service_metro_area_network":{"description":"Id of the `MetroAreaNetwork`.\nThe service is directly provided on the metro area network.\n","example":"9123843","type":"string"},"service_provider":{"description":"The name of the provider providing the service.\n","example":"AWS","type":"string"},"type":{"example":"mp2mp_vc","type":"string"},"upgrade_allowed":{"description":"Indicates if the service can be migrated to\na higher bandwidth.","type":"boolean"}},"required":["type"],"title":"PartialMP2MPNetworkProductOffering","type":"object"},"MP2MPNetworkService":{"allOf":[{"$ref":"#/components/schemas/MP2MPNetworkServicePartial"},{"required":["state","id","product_offering","managing_account","consuming_account","billing_account","name","member_joining_rules","network_features","type"],"title":"MP2MPNetworkService","type":"object"}]},"MP2MPNetworkServiceConfig":{"allOf":[{"$ref":"#/components/schemas/MP2MPNetworkServiceConfigPartial"},{"required":["state","id","network_service","managing_account","consuming_account","billing_account","role_assignments","connection","vlan_config","type"],"title":"MP2MPNetworkServiceConfig","type":"object"}]},"MP2MPNetworkServiceConfigPartial":{"description":"MP2MP Network Service Config","properties":{"billing_account":{"description":"An account requires billing_information to be used as a `billing_account`.","type":"string"},"capacity":{"description":"The capacity of the service in Mbps. If set to Null,\nthe maximum capacity will be used, i.e. the virtual circuit is\nnot rate-limited.\n\nAn exchange may choose to constrain the available capacity range\nof a `ProductOffering`.\n\nThat means, the service can consume up to the total bandwidth\nof the `Connection`.\n\nTypically the service is charged based on the capacity.","minimum":1,"nullable":true,"type":"integer"},"charged_until":{"description":"Your obligation to pay for the service will end on this date.\nTypically `≥ decommission_at`.\n\nThis field is only used when\nthe state is `DECOMMISSION_REQUESTED` or\n`DECOMMISSIONED`.","format":"date","type":"string"},"connection":{"description":"The id of the connection to use for this `NetworkServiceConfig`.","type":"string"},"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"contract_ref":{"description":"A reference to a contract. If no specific contract is used, a default\nMAY be chosen by the implementer.\n","example":"contract:31824","maxLength":128,"nullable":true,"type":"string"},"decommission_at":{"description":"The service will be decommissioned on this date.\n\nThis field is only used when\nthe state is `DECOMMISSION_REQUESTED` or\n`DECOMMISSIONED`.","format":"date","type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"id":{"maxLength":80,"type":"string"},"macs":{"items":{"type":"string"},"type":"array"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"network_feature_configs":{"description":"A list of ids of `NetworkFeatureConfig`s.\n","example":["12356","43829"],"items":{"type":"string"},"readOnly":true,"type":"array"},"network_service":{"description":"The id of the configured network service.","type":"string"},"purchase_order":{"default":"","description":"Purchase Order ID which will be displayed on the invoice.\n","example":"Project: DC Moon","maxLength":80,"type":"string"},"role_assignments":{"description":"A set of `RoleAssignment`s. See the documentation\non the specific `required_contact_roles`,\n`nfc_required_contact_roles` or `nsc_required_contact_roles`\non what `RoleAssignment`s to provide.\n","example":["c-impl:123","c-noc:331"],"items":{"type":"string"},"type":"array"},"state":{"enum":["requested","allocated","testing","production","production_change_pending","decommission_requested","decommissioned","archived","error","operator","scheduled"],"type":"string"},"status":{"items":{"$ref":"#/components/schemas/Status"},"type":"array"},"type":{"example":"mp2mp_vc","type":"string"},"vlan_config":{"$ref":"#/components/schemas/VlanConfig"}},"required":["type"],"title":"PartialMP2MPNetworkServiceConfig","type":"object"},"MP2MPNetworkServiceConfigRequest":{"allOf":[{"$ref":"#/components/schemas/MP2MPNetworkServiceConfigRequestPartial"},{"required":["managing_account","consuming_account","network_service","billing_account","role_assignments","connection","vlan_config","type"],"title":"MP2MPNetworkServiceConfigRequest","type":"object"}]},"MP2MPNetworkServiceConfigRequestPartial":{"description":"MP2MP Network Service Config Request","properties":{"billing_account":{"description":"An account requires billing_information to be used as a `billing_account`.","type":"string"},"capacity":{"description":"The capacity of the service in Mbps. If set to Null,\nthe maximum capacity will be used, i.e. the virtual circuit is\nnot rate-limited.\n\nAn exchange may choose to constrain the available capacity range\nof a `ProductOffering`.\n\nThat means, the service can consume up to the total bandwidth\nof the `Connection`.\n\nTypically the service is charged based on the capacity.","minimum":1,"nullable":true,"type":"integer"},"connection":{"description":"The id of the connection to use for this `NetworkServiceConfig`.","type":"string"},"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"contract_ref":{"description":"A reference to a contract. If no specific contract is used, a default\nMAY be chosen by the implementer.\n","example":"contract:31824","maxLength":128,"nullable":true,"type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"macs":{"items":{"type":"string"},"type":"array"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"network_feature_configs":{"description":"A list of ids of `NetworkFeatureConfig`s.\n","example":["12356","43829"],"items":{"type":"string"},"readOnly":true,"type":"array"},"network_service":{"description":"The id of the `NetworkService` to configure.","type":"string"},"purchase_order":{"default":"","description":"Purchase Order ID which will be displayed on the invoice.\n","example":"Project: DC Moon","maxLength":80,"type":"string"},"role_assignments":{"description":"A set of `RoleAssignment`s. See the documentation\non the specific `required_contact_roles`,\n`nfc_required_contact_roles` or `nsc_required_contact_roles`\non what `RoleAssignment`s to provide.\n","example":["c-impl:123","c-noc:331"],"items":{"type":"string"},"type":"array"},"type":{"example":"mp2mp_vc","type":"string"},"vlan_config":{"$ref":"#/components/schemas/VlanConfig"}},"required":["type"],"title":"PartialMP2MPNetworkServiceConfigRequest","type":"object"},"MP2MPNetworkServiceConfigUpdate":{"allOf":[{"$ref":"#/components/schemas/MP2MPNetworkServiceConfigUpdatePartial"},{"required":["managing_account","consuming_account","vlan_config","billing_account","role_assignments","connection","type"],"title":"MP2MPNetworkServiceConfigUpdate","type":"object"}]},"MP2MPNetworkServiceConfigUpdatePartial":{"description":"MP2MP Network Service Config Update","properties":{"billing_account":{"description":"An account requires billing_information to be used as a `billing_account`.","type":"string"},"capacity":{"description":"The capacity of the service in Mbps. If set to Null,\nthe maximum capacity will be used, i.e. the virtual circuit is\nnot rate-limited.\n\nAn exchange may choose to constrain the available capacity range\nof a `ProductOffering`.\n\nThat means, the service can consume up to the total bandwidth\nof the `Connection`.\n\nTypically the service is charged based on the capacity.","minimum":1,"nullable":true,"type":"integer"},"connection":{"description":"The id of the connection to use for this `NetworkServiceConfig`.","type":"string"},"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"contract_ref":{"description":"A reference to a contract. If no specific contract is used, a default\nMAY be chosen by the implementer.\n","example":"contract:31824","maxLength":128,"nullable":true,"type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"macs":{"items":{"type":"string"},"type":"array"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"network_feature_configs":{"description":"A list of ids of `NetworkFeatureConfig`s.\n","example":["12356","43829"],"items":{"type":"string"},"readOnly":true,"type":"array"},"purchase_order":{"default":"","description":"Purchase Order ID which will be displayed on the invoice.\n","example":"Project: DC Moon","maxLength":80,"type":"string"},"role_assignments":{"description":"A set of `RoleAssignment`s. See the documentation\non the specific `required_contact_roles`,\n`nfc_required_contact_roles` or `nsc_required_contact_roles`\non what `RoleAssignment`s to provide.\n","example":["c-impl:123","c-noc:331"],"items":{"type":"string"},"type":"array"},"type":{"example":"mp2mp_vc","type":"string"},"vlan_config":{"$ref":"#/components/schemas/VlanConfig"}},"required":["type"],"title":"PartialMP2MPNetworkServiceConfigUpdate","type":"object"},"MP2MPNetworkServicePartial":{"description":"MP2MP Network Service","properties":{"billing_account":{"description":"An account requires billing_information to be used as a `billing_account`.","type":"string"},"charged_until":{"description":"Your obligation to pay for the service will end on this date.\nTypically `≥ decommission_at`.\n\nThis field is only used when\nthe state is `DECOMMISSION_REQUESTED` or\n`DECOMMISSIONED`.","format":"date","type":"string"},"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"contract_ref":{"description":"A reference to a contract. If no specific contract is used, a default\nMAY be chosen by the implementer.\n","example":"contract:31824","maxLength":128,"nullable":true,"type":"string"},"decommission_at":{"description":"The service will be decommissioned on this date.\n\nThis field is only used when\nthe state is `DECOMMISSION_REQUESTED` or\n`DECOMMISSIONED`.","format":"date","type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"id":{"type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"member_joining_rules":{"items":{"type":"string"},"type":"array"},"name":{"description":"Name of the multi-point to multi-point\nvirtual circuit.","maxLength":40,"type":"string"},"network_features":{"items":{"type":"string"},"type":"array"},"nsc_required_contact_roles":{"description":"The configuration will require at least one of each of the\nspecified roles assigned to contacts.\n\nThe `RoleAssignment` is associated through the\n`role_assignments` list property of the network service configuration.","items":{"type":"string"},"readOnly":true,"type":"array"},"product_offering":{"type":"string"},"public":{"default":false,"description":"A public mp2mp network service can be joined\nby everyone on the exchange unless denied by\na member-joining-rule.\n\nPublic network services are visible to other\nmembers of the IXP, however only `name`, `type`,\n`product_offering`, `consuming_account` and\n`managing_account` are made available.\n\nOther required fields are redacted.","type":"boolean"},"purchase_order":{"default":"","description":"Purchase Order ID which will be displayed on the invoice.\n","example":"Project: DC Moon","maxLength":80,"type":"string"},"state":{"enum":["requested","allocated","testing","production","production_change_pending","decommission_requested","decommissioned","archived","error","operator","scheduled"],"type":"string"},"status":{"items":{"$ref":"#/components/schemas/Status"},"type":"array"},"type":{"example":"mp2mp_vc","type":"string"}},"required":["type"],"title":"PartialMP2MPNetworkService","type":"object"},"MP2MPNetworkServiceRequest":{"allOf":[{"$ref":"#/components/schemas/MP2MPNetworkServiceRequestPartial"},{"required":["product_offering","managing_account","consuming_account","billing_account","name","type"],"title":"MP2MPNetworkServiceRequest","type":"object"}]},"MP2MPNetworkServiceRequestPartial":{"description":"MP2MP Network Service Request","properties":{"billing_account":{"description":"An account requires billing_information to be used as a `billing_account`.","type":"string"},"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"contract_ref":{"description":"A reference to a contract. If no specific contract is used, a default\nMAY be chosen by the implementer.\n","example":"contract:31824","maxLength":128,"nullable":true,"type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"name":{"description":"Name of the multi-point to multi-point\nvirtual circuit.","maxLength":40,"type":"string"},"product_offering":{"type":"string"},"public":{"default":false,"description":"A public mp2mp network service can be joined\nby everyone on the exchange unless denied by\na member-joining-rule.\n\nPublic network services are visible to other\nmembers of the IXP, however only `name`, `type`,\n`product_offering`, `consuming_account` and\n`managing_account` are made available.\n\nOther required fields are redacted.","type":"boolean"},"purchase_order":{"default":"","description":"Purchase Order ID which will be displayed on the invoice.\n","example":"Project: DC Moon","maxLength":80,"type":"string"},"type":{"example":"mp2mp_vc","type":"string"}},"required":["type"],"title":"PartialMP2MPNetworkServiceRequest","type":"object"},"MacAddress":{"allOf":[{"$ref":"#/components/schemas/MacAddressPartial"},{"required":["managing_account","consuming_account","address","id"],"title":"MacAddress","type":"object"}]},"MacAddressPartial":{"description":"MAC-Address","properties":{"address":{"description":"Unicast MAC address, formatted hexadecimal values with colons.\n","example":"42:23:bc:8e:b8:b0","type":"string"},"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"id":{"maxLength":80,"type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"valid_not_after":{"format":"date-time","nullable":true,"type":"string"},"valid_not_before":{"format":"date-time","nullable":true,"type":"string"}},"title":"PartialMacAddress","type":"object"},"MacAddressRequest":{"allOf":[{"$ref":"#/components/schemas/MacAddressRequestPartial"},{"required":["managing_account","consuming_account","address"],"title":"MacAddressRequest","type":"object"}]},"MacAddressRequestPartial":{"description":"MAC-Address Request","properties":{"address":{"description":"Unicast MAC address, formatted hexadecimal values with colons.\n","example":"42:23:bc:8e:b8:b0","type":"string"},"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"valid_not_after":{"format":"date-time","nullable":true,"type":"string"},"valid_not_before":{"format":"date-time","nullable":true,"type":"string"}},"title":"PartialMacAddressRequest","type":"object"},"Manageable":{"allOf":[{"$ref":"#/components/schemas/ManageablePartial"},{"required":["managing_account"],"title":"Manageable","type":"object"}]},"ManageablePartial":{"description":"Managed","properties":{"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"}},"title":"PartialManageable","type":"object"},"MemberJoiningRule":{"description":"Polymorphic Member Joining Rule","discriminator":{"mapping":{"allow":"#/components/schemas/AllowMemberJoiningRule","deny":"#/components/schemas/DenyMemberJoiningRule"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/AllowMemberJoiningRule"},{"$ref":"#/components/schemas/DenyMemberJoiningRule"}],"title":"MemberJoiningRule"},"MemberJoiningRulePartial":{"description":"Polymorphic Member Joining Rule","discriminator":{"mapping":{"allow":"#/components/schemas/AllowMemberJoiningRulePartial","deny":"#/components/schemas/DenyMemberJoiningRulePartial"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/AllowMemberJoiningRulePartial"},{"$ref":"#/components/schemas/DenyMemberJoiningRulePartial"}],"title":"MemberJoiningRule (partial)"},"MemberJoiningRuleRequest":{"description":"Polymorphic Member Joining Rule Request","discriminator":{"mapping":{"allow":"#/components/schemas/AllowMemberJoiningRuleRequest","deny":"#/components/schemas/DenyMemberJoiningRuleRequest"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/AllowMemberJoiningRuleRequest"},{"$ref":"#/components/schemas/DenyMemberJoiningRuleRequest"}],"title":"MemberJoiningRuleRequest"},"MemberJoiningRuleRequestPartial":{"description":"Polymorphic Member Joining Rule Request","discriminator":{"mapping":{"allow":"#/components/schemas/AllowMemberJoiningRuleRequestPartial","deny":"#/components/schemas/DenyMemberJoiningRuleRequestPartial"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/AllowMemberJoiningRuleRequestPartial"},{"$ref":"#/components/schemas/DenyMemberJoiningRuleRequestPartial"}],"title":"MemberJoiningRuleRequest (partial)"},"MemberJoiningRuleUpdate":{"description":"Polymorphic Member Joining Rule Update","discriminator":{"mapping":{"allow":"#/components/schemas/AllowMemberJoiningRuleUpdate","deny":"#/components/schemas/DenyMemberJoiningRuleUpdate"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/AllowMemberJoiningRuleUpdate"},{"$ref":"#/components/schemas/DenyMemberJoiningRuleUpdate"}],"title":"MemberJoiningRuleUpdate"},"MemberJoiningRuleUpdatePartial":{"description":"Polymorphic Member Joining Rule Update","discriminator":{"mapping":{"allow":"#/components/schemas/AllowMemberJoiningRuleUpdatePartial","deny":"#/components/schemas/DenyMemberJoiningRuleUpdatePartial"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/AllowMemberJoiningRuleUpdatePartial"},{"$ref":"#/components/schemas/DenyMemberJoiningRuleUpdatePartial"}],"title":"MemberJoiningRuleUpdate (partial)"},"MetroArea":{"allOf":[{"$ref":"#/components/schemas/MetroAreaPartial"},{"required":["id","un_locode","iata_code","display_name","facilities","metro_area_networks"],"title":"MetroArea","type":"object"}]},"MetroAreaNetwork":{"allOf":[{"$ref":"#/components/schemas/MetroAreaNetworkPartial"},{"required":["name","metro_area","service_provider","pops","id"],"title":"MetroAreaNetwork","type":"object"}]},"MetroAreaNetworkPartial":{"description":"MetroAreaNetwork","properties":{"id":{"maxLength":80,"type":"string"},"metro_area":{"description":"The id of the metro area.\n","example":"met:199399:FRA","type":"string"},"name":{"description":"The name of the metro area network.\n","example":"MY-IX-FRA1","maxLength":32,"type":"string"},"pops":{"description":"List of pops in the metro area network.","items":{"type":"string"},"type":"array"},"service_provider":{"description":"The service provider is operating the network.\nUsually the exchange.\n","example":"MY-IX","maxLength":128,"type":"string"}},"title":"PartialMetroAreaNetwork","type":"object"},"MetroAreaPartial":{"description":"MetroArea","properties":{"display_name":{"description":"The name of the metro area. Likely the same as the IATA code.\n","example":"FRA","maxLength":64,"type":"string"},"facilities":{"description":"List of facilities the metro area network.","items":{"type":"string"},"type":"array"},"iata_code":{"description":"The three letter IATA airport code for identiying the\nmetro area.\n","example":"FRA","maxLength":3,"type":"string"},"id":{"maxLength":80,"type":"string"},"metro_area_networks":{"description":"List of networks in the metro area.","items":{"type":"string"},"type":"array"},"un_locode":{"description":"The UN/LOCODE for identifying the metro area.\n","example":"DE FRA","maxLength":6,"type":"string"}},"title":"PartialMetroArea","type":"object"},"NetworkFeature":{"description":"Polymorphic Network Feature","discriminator":{"mapping":{"route_server":"#/components/schemas/RouteServerNetworkFeature"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/RouteServerNetworkFeature"}],"title":"NetworkFeature"},"NetworkFeatureConfig":{"description":"Polymorphic Network Feature Config","discriminator":{"mapping":{"route_server":"#/components/schemas/RouteServerNetworkFeatureConfig"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/RouteServerNetworkFeatureConfig"}],"title":"NetworkFeatureConfig"},"NetworkFeatureConfigPartial":{"description":"Polymorphic Network Feature Config","discriminator":{"mapping":{"route_server":"#/components/schemas/RouteServerNetworkFeatureConfigPartial"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/RouteServerNetworkFeatureConfigPartial"}],"title":"NetworkFeatureConfig (partial)"},"NetworkFeatureConfigRequest":{"description":"Polymorphic Network Feature Config Request","discriminator":{"mapping":{"route_server":"#/components/schemas/RouteServerNetworkFeatureConfigRequest"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/RouteServerNetworkFeatureConfigRequest"}],"title":"NetworkFeatureConfigRequest"},"NetworkFeatureConfigRequestPartial":{"description":"Polymorphic Network Feature Config Request","discriminator":{"mapping":{"route_server":"#/components/schemas/RouteServerNetworkFeatureConfigRequestPartial"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/RouteServerNetworkFeatureConfigRequestPartial"}],"title":"NetworkFeatureConfigRequest (partial)"},"NetworkFeatureConfigUpdate":{"description":"Polymorphic Network Feauture Config Update","discriminator":{"mapping":{"route_server":"#/components/schemas/RouteServerNetworkFeatureConfigUpdate"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/RouteServerNetworkFeatureConfigUpdate"}],"title":"NetworkFeatureConfigUpdate"},"NetworkFeatureConfigUpdatePartial":{"description":"Polymorphic Network Feauture Config Update","discriminator":{"mapping":{"route_server":"#/components/schemas/RouteServerNetworkFeatureConfigUpdatePartial"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/RouteServerNetworkFeatureConfigUpdatePartial"}],"title":"NetworkFeatureConfigUpdate (partial)"},"NetworkFeaturePartial":{"description":"Polymorphic Network Feature","discriminator":{"mapping":{"route_server":"#/components/schemas/RouteServerNetworkFeaturePartial"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/RouteServerNetworkFeaturePartial"}],"title":"NetworkFeature (partial)"},"NetworkService":{"description":"Polymorphic Network Services","discriminator":{"mapping":{"cloud_vc":"#/components/schemas/CloudNetworkService","exchange_lan":"#/components/schemas/ExchangeLanNetworkService","mp2mp_vc":"#/components/schemas/MP2MPNetworkService","p2mp_vc":"#/components/schemas/P2MPNetworkService","p2p_vc":"#/components/schemas/P2PNetworkService"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/ExchangeLanNetworkService"},{"$ref":"#/components/schemas/P2PNetworkService"},{"$ref":"#/components/schemas/P2MPNetworkService"},{"$ref":"#/components/schemas/MP2MPNetworkService"},{"$ref":"#/components/schemas/CloudNetworkService"}],"title":"NetworkService"},"NetworkServiceChangeRequest":{"allOf":[{"$ref":"#/components/schemas/NetworkServiceChangeRequestPartial"},{"required":["product_offering"],"title":"NetworkServiceChangeRequest","type":"object"}]},"NetworkServiceChangeRequestPartial":{"description":"NetworkServiceChangeRequest","properties":{"capacity":{"description":"The desired capacity of the service in Mbps.\n\nMust be within the range of `bandwidth_min` and\n`bandwidth_max` of the `ProductOffering`.\n\nWhen `null` the maximum capacity wil be used.","minimum":1,"nullable":true,"type":"integer"},"product_offering":{"description":"Migrate to a diffrent product offering. Please note, that\nthe offering only may differ in bandwidth.","type":"string"}},"title":"PartialNetworkServiceChangeRequest","type":"object"},"NetworkServiceConfig":{"description":"Polymorphic Network Service Config","discriminator":{"mapping":{"cloud_vc":"#/components/schemas/CloudNetworkServiceConfig","exchange_lan":"#/components/schemas/ExchangeLanNetworkServiceConfig","mp2mp_vc":"#/components/schemas/MP2MPNetworkServiceConfig","p2mp_vc":"#/components/schemas/P2MPNetworkServiceConfig","p2p_vc":"#/components/schemas/P2PNetworkServiceConfig"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/ExchangeLanNetworkServiceConfig"},{"$ref":"#/components/schemas/P2PNetworkServiceConfig"},{"$ref":"#/components/schemas/P2MPNetworkServiceConfig"},{"$ref":"#/components/schemas/MP2MPNetworkServiceConfig"},{"$ref":"#/components/schemas/CloudNetworkServiceConfig"}],"title":"NetworkServiceConfig"},"NetworkServiceConfigPartial":{"description":"Polymorphic Network Service Config","discriminator":{"mapping":{"cloud_vc":"#/components/schemas/CloudNetworkServiceConfigPartial","exchange_lan":"#/components/schemas/ExchangeLanNetworkServiceConfigPartial","mp2mp_vc":"#/components/schemas/MP2MPNetworkServiceConfigPartial","p2mp_vc":"#/components/schemas/P2MPNetworkServiceConfigPartial","p2p_vc":"#/components/schemas/P2PNetworkServiceConfigPartial"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/ExchangeLanNetworkServiceConfigPartial"},{"$ref":"#/components/schemas/P2PNetworkServiceConfigPartial"},{"$ref":"#/components/schemas/P2MPNetworkServiceConfigPartial"},{"$ref":"#/components/schemas/MP2MPNetworkServiceConfigPartial"},{"$ref":"#/components/schemas/CloudNetworkServiceConfigPartial"}],"title":"NetworkServiceConfig (partial)"},"NetworkServiceConfigRequest":{"description":"Polymorhic Network Service Config Request","discriminator":{"mapping":{"cloud_vc":"#/components/schemas/CloudNetworkServiceConfigRequest","exchange_lan":"#/components/schemas/ExchangeLanNetworkServiceConfigRequest","mp2mp_vc":"#/components/schemas/MP2MPNetworkServiceConfigRequest","p2mp_vc":"#/components/schemas/P2MPNetworkServiceConfigRequest","p2p_vc":"#/components/schemas/P2PNetworkServiceConfigRequest"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/ExchangeLanNetworkServiceConfigRequest"},{"$ref":"#/components/schemas/P2PNetworkServiceConfigRequest"},{"$ref":"#/components/schemas/P2MPNetworkServiceConfigRequest"},{"$ref":"#/components/schemas/MP2MPNetworkServiceConfigRequest"},{"$ref":"#/components/schemas/CloudNetworkServiceConfigRequest"}],"title":"NetworkServiceConfigRequest"},"NetworkServiceConfigRequestPartial":{"description":"Polymorhic Network Service Config Request","discriminator":{"mapping":{"cloud_vc":"#/components/schemas/CloudNetworkServiceConfigRequestPartial","exchange_lan":"#/components/schemas/ExchangeLanNetworkServiceConfigRequestPartial","mp2mp_vc":"#/components/schemas/MP2MPNetworkServiceConfigRequestPartial","p2mp_vc":"#/components/schemas/P2MPNetworkServiceConfigRequestPartial","p2p_vc":"#/components/schemas/P2PNetworkServiceConfigRequestPartial"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/ExchangeLanNetworkServiceConfigRequestPartial"},{"$ref":"#/components/schemas/P2PNetworkServiceConfigRequestPartial"},{"$ref":"#/components/schemas/P2MPNetworkServiceConfigRequestPartial"},{"$ref":"#/components/schemas/MP2MPNetworkServiceConfigRequestPartial"},{"$ref":"#/components/schemas/CloudNetworkServiceConfigRequestPartial"}],"title":"NetworkServiceConfigRequest (partial)"},"NetworkServiceConfigUpdate":{"description":"Polymorphic Network Service Config","discriminator":{"mapping":{"cloud_vc":"#/components/schemas/CloudNetworkServiceConfigUpdate","exchange_lan":"#/components/schemas/ExchangeLanNetworkServiceConfigUpdate","mp2mp_vc":"#/components/schemas/MP2MPNetworkServiceConfigRequest","p2mp_vc":"#/components/schemas/P2MPNetworkServiceConfigRequest","p2p_vc":"#/components/schemas/P2PNetworkServiceConfigUpdate"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/ExchangeLanNetworkServiceConfigUpdate"},{"$ref":"#/components/schemas/P2PNetworkServiceConfigUpdate"},{"$ref":"#/components/schemas/P2MPNetworkServiceConfigRequest"},{"$ref":"#/components/schemas/MP2MPNetworkServiceConfigRequest"},{"$ref":"#/components/schemas/CloudNetworkServiceConfigUpdate"}],"title":"NetworkServiceConfigUpdate"},"NetworkServiceConfigUpdatePartial":{"description":"Polymorphic Network Service Config","discriminator":{"mapping":{"cloud_vc":"#/components/schemas/CloudNetworkServiceConfigUpdatePartial","exchange_lan":"#/components/schemas/ExchangeLanNetworkServiceConfigUpdatePartial","mp2mp_vc":"#/components/schemas/MP2MPNetworkServiceConfigRequestPartial","p2mp_vc":"#/components/schemas/P2MPNetworkServiceConfigRequestPartial","p2p_vc":"#/components/schemas/P2PNetworkServiceConfigUpdatePartial"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/ExchangeLanNetworkServiceConfigUpdatePartial"},{"$ref":"#/components/schemas/P2PNetworkServiceConfigUpdatePartial"},{"$ref":"#/components/schemas/P2MPNetworkServiceConfigRequestPartial"},{"$ref":"#/components/schemas/MP2MPNetworkServiceConfigRequestPartial"},{"$ref":"#/components/schemas/CloudNetworkServiceConfigUpdatePartial"}],"title":"NetworkServiceConfigUpdate (partial)"},"NetworkServiceDeleteResponse":{"description":"Polymorphic Network Service Request","discriminator":{"mapping":{"cloud_vc":"#/components/schemas/CloudNetworkService","mp2mp_vc":"#/components/schemas/MP2MPNetworkService","p2mp_vc":"#/components/schemas/P2MPNetworkService","p2p_vc":"#/components/schemas/P2PNetworkService"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/P2PNetworkService"},{"$ref":"#/components/schemas/P2MPNetworkService"},{"$ref":"#/components/schemas/MP2MPNetworkService"},{"$ref":"#/components/schemas/CloudNetworkService"}],"title":"NetworkServiceDeleteResponse"},"NetworkServiceDeleteResponsePartial":{"description":"Polymorphic Network Service Request","discriminator":{"mapping":{"cloud_vc":"#/components/schemas/CloudNetworkServicePartial","mp2mp_vc":"#/components/schemas/MP2MPNetworkServicePartial","p2mp_vc":"#/components/schemas/P2MPNetworkServicePartial","p2p_vc":"#/components/schemas/P2PNetworkServicePartial"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/P2PNetworkServicePartial"},{"$ref":"#/components/schemas/P2MPNetworkServicePartial"},{"$ref":"#/components/schemas/MP2MPNetworkServicePartial"},{"$ref":"#/components/schemas/CloudNetworkServicePartial"}],"title":"NetworkServiceDeleteResponse (partial)"},"NetworkServicePartial":{"description":"Polymorphic Network Services","discriminator":{"mapping":{"cloud_vc":"#/components/schemas/CloudNetworkServicePartial","exchange_lan":"#/components/schemas/ExchangeLanNetworkServicePartial","mp2mp_vc":"#/components/schemas/MP2MPNetworkServicePartial","p2mp_vc":"#/components/schemas/P2MPNetworkServicePartial","p2p_vc":"#/components/schemas/P2PNetworkServicePartial"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/ExchangeLanNetworkServicePartial"},{"$ref":"#/components/schemas/P2PNetworkServicePartial"},{"$ref":"#/components/schemas/P2MPNetworkServicePartial"},{"$ref":"#/components/schemas/MP2MPNetworkServicePartial"},{"$ref":"#/components/schemas/CloudNetworkServicePartial"}],"title":"NetworkService (partial)"},"NetworkServiceRequest":{"description":"Polymorphic Network Service Request","discriminator":{"mapping":{"cloud_vc":"#/components/schemas/CloudNetworkServiceRequest","mp2mp_vc":"#/components/schemas/MP2MPNetworkServiceRequest","p2mp_vc":"#/components/schemas/P2MPNetworkServiceRequest","p2p_vc":"#/components/schemas/P2PNetworkServiceRequest"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/P2PNetworkServiceRequest"},{"$ref":"#/components/schemas/P2MPNetworkServiceRequest"},{"$ref":"#/components/schemas/MP2MPNetworkServiceRequest"},{"$ref":"#/components/schemas/CloudNetworkServiceRequest"}],"title":"NetworkServiceRequest"},"NetworkServiceRequestPartial":{"description":"Polymorphic Network Service Request","discriminator":{"mapping":{"cloud_vc":"#/components/schemas/CloudNetworkServiceRequestPartial","mp2mp_vc":"#/components/schemas/MP2MPNetworkServiceRequestPartial","p2mp_vc":"#/components/schemas/P2MPNetworkServiceRequestPartial","p2p_vc":"#/components/schemas/P2PNetworkServiceRequestPartial"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/P2PNetworkServiceRequestPartial"},{"$ref":"#/components/schemas/P2MPNetworkServiceRequestPartial"},{"$ref":"#/components/schemas/MP2MPNetworkServiceRequestPartial"},{"$ref":"#/components/schemas/CloudNetworkServiceRequestPartial"}],"title":"NetworkServiceRequest (partial)"},"Ownable":{"allOf":[{"$ref":"#/components/schemas/OwnablePartial"},{"required":["managing_account","consuming_account"],"title":"Ownable","type":"object"}]},"OwnablePartial":{"description":"Ownable","properties":{"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"}},"title":"PartialOwnable","type":"object"},"P2MPNetworkProductOffering":{"allOf":[{"$ref":"#/components/schemas/P2MPNetworkProductOfferingPartial"},{"required":["id","name","display_name","provider_vlans","resource_type","handover_metro_area_network","handover_metro_area","service_metro_area_network","service_metro_area","bandwidth_min","bandwidth_max","physical_port_speed","service_provider","downgrade_allowed","upgrade_allowed","type"],"title":"P2MPNetworkProductOffering","type":"object"}]},"P2MPNetworkProductOfferingPartial":{"description":"P2MP Network Product Offering","properties":{"bandwidth_max":{"description":"When not `null`, this value enforces a mandatory\nrate limit for all network service configs.","minimum":0,"nullable":true,"type":"integer"},"bandwidth_min":{"description":"When configuring access to the network service, at least\nthis `capacity` must be provided.","minimum":0,"nullable":true,"type":"integer"},"display_name":{"maxLength":256,"type":"string"},"downgrade_allowed":{"description":"Indicates if the service can be migrated to\na lower bandwidth.","type":"boolean"},"handover_metro_area":{"description":"Id of the `MetroArea`. The network service will be\naccessed from this metro area.\n","example":"met:29381993:NYC","type":"string"},"handover_metro_area_network":{"description":"Id of the `MetroAreaNetwork`. The service will be accessed\nthrough the handover metro area network.\n","example":"191239810","type":"string"},"id":{"maxLength":80,"type":"string"},"name":{"description":"Name of the product","maxLength":160,"type":"string"},"physical_port_speed":{"description":"If the service is dependent on the speed of\nthe physical port this field denotes the speed.","minimum":0,"nullable":true,"type":"integer"},"provider_vlans":{"description":"The `NetworkService` provides `single` or `multi`ple vlans.","enum":["single","multi"],"type":"string"},"resource_type":{"description":"The resource type refers to an ix-api resource.\n","enum":["connection","demarc","network_service","network_service_config"],"example":"network_service","type":"string"},"service_metro_area":{"description":"Id of the `MetroArea`. The service is delivered\nin this metro area.\n","example":"met:213913485:LON","type":"string"},"service_metro_area_network":{"description":"Id of the `MetroAreaNetwork`.\nThe service is directly provided on the metro area network.\n","example":"9123843","type":"string"},"service_provider":{"description":"The name of the provider providing the service.\n","example":"AWS","type":"string"},"type":{"example":"p2mp_vc","type":"string"},"upgrade_allowed":{"description":"Indicates if the service can be migrated to\na higher bandwidth.","type":"boolean"}},"required":["type"],"title":"PartialP2MPNetworkProductOffering","type":"object"},"P2MPNetworkService":{"allOf":[{"$ref":"#/components/schemas/P2MPNetworkServicePartial"},{"required":["state","id","product_offering","managing_account","consuming_account","billing_account","name","network_features","member_joining_rules","type"],"title":"P2MPNetworkService","type":"object"}]},"P2MPNetworkServiceConfig":{"allOf":[{"$ref":"#/components/schemas/P2MPNetworkServiceConfigPartial"},{"required":["state","id","network_service","managing_account","consuming_account","billing_account","role_assignments","connection","vlan_config","type"],"title":"P2MPNetworkServiceConfig","type":"object"}]},"P2MPNetworkServiceConfigPartial":{"description":"P2MP Network Service Config","properties":{"billing_account":{"description":"An account requires billing_information to be used as a `billing_account`.","type":"string"},"capacity":{"description":"The capacity of the service in Mbps. If set to Null,\nthe maximum capacity will be used, i.e. the virtual circuit is\nnot rate-limited.\n\nAn exchange may choose to constrain the available capacity range\nof a `ProductOffering`.\n\nThat means, the service can consume up to the total bandwidth\nof the `Connection`.\n\nTypically the service is charged based on the capacity.","minimum":1,"nullable":true,"type":"integer"},"charged_until":{"description":"Your obligation to pay for the service will end on this date.\nTypically `≥ decommission_at`.\n\nThis field is only used when\nthe state is `DECOMMISSION_REQUESTED` or\n`DECOMMISSIONED`.","format":"date","type":"string"},"connection":{"description":"The id of the connection to use for this `NetworkServiceConfig`.","type":"string"},"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"contract_ref":{"description":"A reference to a contract. If no specific contract is used, a default\nMAY be chosen by the implementer.\n","example":"contract:31824","maxLength":128,"nullable":true,"type":"string"},"decommission_at":{"description":"The service will be decommissioned on this date.\n\nThis field is only used when\nthe state is `DECOMMISSION_REQUESTED` or\n`DECOMMISSIONED`.","format":"date","type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"id":{"maxLength":80,"type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"network_feature_configs":{"description":"A list of ids of `NetworkFeatureConfig`s.\n","example":["12356","43829"],"items":{"type":"string"},"readOnly":true,"type":"array"},"network_service":{"description":"The id of the configured network service.","type":"string"},"purchase_order":{"default":"","description":"Purchase Order ID which will be displayed on the invoice.\n","example":"Project: DC Moon","maxLength":80,"type":"string"},"role":{"default":"leaf","description":"A `leaf` can only reach roots and is\nisolated from other leafs. A `root` can\nreach any other point in the virtual circuit\nincluding other roots.","enum":["root","leaf"],"type":"string"},"role_assignments":{"description":"A set of `RoleAssignment`s. See the documentation\non the specific `required_contact_roles`,\n`nfc_required_contact_roles` or `nsc_required_contact_roles`\non what `RoleAssignment`s to provide.\n","example":["c-impl:123","c-noc:331"],"items":{"type":"string"},"type":"array"},"state":{"enum":["requested","allocated","testing","production","production_change_pending","decommission_requested","decommissioned","archived","error","operator","scheduled"],"type":"string"},"status":{"items":{"$ref":"#/components/schemas/Status"},"type":"array"},"type":{"example":"p2mp_vc","type":"string"},"vlan_config":{"$ref":"#/components/schemas/VlanConfig"}},"required":["type"],"title":"PartialP2MPNetworkServiceConfig","type":"object"},"P2MPNetworkServiceConfigRequest":{"allOf":[{"$ref":"#/components/schemas/P2MPNetworkServiceConfigRequestPartial"},{"required":["managing_account","consuming_account","network_service","billing_account","role_assignments","connection","vlan_config","type"],"title":"P2MPNetworkServiceConfigRequest","type":"object"}]},"P2MPNetworkServiceConfigRequestPartial":{"description":"P2MP Network Service Config Request","properties":{"billing_account":{"description":"An account requires billing_information to be used as a `billing_account`.","type":"string"},"capacity":{"description":"The capacity of the service in Mbps. If set to Null,\nthe maximum capacity will be used, i.e. the virtual circuit is\nnot rate-limited.\n\nAn exchange may choose to constrain the available capacity range\nof a `ProductOffering`.\n\nThat means, the service can consume up to the total bandwidth\nof the `Connection`.\n\nTypically the service is charged based on the capacity.","minimum":1,"nullable":true,"type":"integer"},"connection":{"description":"The id of the connection to use for this `NetworkServiceConfig`.","type":"string"},"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"contract_ref":{"description":"A reference to a contract. If no specific contract is used, a default\nMAY be chosen by the implementer.\n","example":"contract:31824","maxLength":128,"nullable":true,"type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"network_feature_configs":{"description":"A list of ids of `NetworkFeatureConfig`s.\n","example":["12356","43829"],"items":{"type":"string"},"readOnly":true,"type":"array"},"network_service":{"description":"The id of the `NetworkService` to configure.","type":"string"},"purchase_order":{"default":"","description":"Purchase Order ID which will be displayed on the invoice.\n","example":"Project: DC Moon","maxLength":80,"type":"string"},"role":{"default":"leaf","description":"A `leaf` can only reach roots and is\nisolated from other leafs. A `root` can\nreach any other point in the virtual circuit\nincluding other roots.","enum":["root","leaf"],"type":"string"},"role_assignments":{"description":"A set of `RoleAssignment`s. See the documentation\non the specific `required_contact_roles`,\n`nfc_required_contact_roles` or `nsc_required_contact_roles`\non what `RoleAssignment`s to provide.\n","example":["c-impl:123","c-noc:331"],"items":{"type":"string"},"type":"array"},"type":{"example":"p2mp_vc","type":"string"},"vlan_config":{"$ref":"#/components/schemas/VlanConfig"}},"required":["type"],"title":"PartialP2MPNetworkServiceConfigRequest","type":"object"},"P2MPNetworkServiceConfigUpdate":{"allOf":[{"$ref":"#/components/schemas/P2MPNetworkServiceConfigUpdatePartial"},{"required":["managing_account","consuming_account","vlan_config","billing_account","role_assignments","connection","type"],"title":"P2MPNetworkServiceConfigUpdate","type":"object"}]},"P2MPNetworkServiceConfigUpdatePartial":{"description":"P2MP Network Service Config Update","properties":{"billing_account":{"description":"An account requires billing_information to be used as a `billing_account`.","type":"string"},"capacity":{"description":"The capacity of the service in Mbps. If set to Null,\nthe maximum capacity will be used, i.e. the virtual circuit is\nnot rate-limited.\n\nAn exchange may choose to constrain the available capacity range\nof a `ProductOffering`.\n\nThat means, the service can consume up to the total bandwidth\nof the `Connection`.\n\nTypically the service is charged based on the capacity.","minimum":1,"nullable":true,"type":"integer"},"connection":{"description":"The id of the connection to use for this `NetworkServiceConfig`.","type":"string"},"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"contract_ref":{"description":"A reference to a contract. If no specific contract is used, a default\nMAY be chosen by the implementer.\n","example":"contract:31824","maxLength":128,"nullable":true,"type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"network_feature_configs":{"description":"A list of ids of `NetworkFeatureConfig`s.\n","example":["12356","43829"],"items":{"type":"string"},"readOnly":true,"type":"array"},"purchase_order":{"default":"","description":"Purchase Order ID which will be displayed on the invoice.\n","example":"Project: DC Moon","maxLength":80,"type":"string"},"role":{"default":"leaf","description":"A `leaf` can only reach roots and is\nisolated from other leafs. A `root` can\nreach any other point in the virtual circuit\nincluding other roots.","enum":["root","leaf"],"type":"string"},"role_assignments":{"description":"A set of `RoleAssignment`s. See the documentation\non the specific `required_contact_roles`,\n`nfc_required_contact_roles` or `nsc_required_contact_roles`\non what `RoleAssignment`s to provide.\n","example":["c-impl:123","c-noc:331"],"items":{"type":"string"},"type":"array"},"type":{"example":"p2mp_vc","type":"string"},"vlan_config":{"$ref":"#/components/schemas/VlanConfig"}},"required":["type"],"title":"PartialP2MPNetworkServiceConfigUpdate","type":"object"},"P2MPNetworkServicePartial":{"description":"P2MP Network Service","properties":{"billing_account":{"description":"An account requires billing_information to be used as a `billing_account`.","type":"string"},"charged_until":{"description":"Your obligation to pay for the service will end on this date.\nTypically `≥ decommission_at`.\n\nThis field is only used when\nthe state is `DECOMMISSION_REQUESTED` or\n`DECOMMISSIONED`.","format":"date","type":"string"},"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"contract_ref":{"description":"A reference to a contract. If no specific contract is used, a default\nMAY be chosen by the implementer.\n","example":"contract:31824","maxLength":128,"nullable":true,"type":"string"},"decommission_at":{"description":"The service will be decommissioned on this date.\n\nThis field is only used when\nthe state is `DECOMMISSION_REQUESTED` or\n`DECOMMISSIONED`.","format":"date","type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"id":{"type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"member_joining_rules":{"items":{"type":"string"},"type":"array"},"name":{"description":"Name of the point to multi-point virtual circuit.","maxLength":40,"type":"string"},"network_features":{"items":{"type":"string"},"type":"array"},"nsc_required_contact_roles":{"description":"The configuration will require at least one of each of the\nspecified roles assigned to contacts.\n\nThe `RoleAssignment` is associated through the\n`role_assignments` list property of the network service configuration.","items":{"type":"string"},"readOnly":true,"type":"array"},"product_offering":{"type":"string"},"public":{"default":false,"description":"A public p2mp network service can be joined\nby everyone on the exchange unless denied by\na member-joining-rule.\n\nPublic network services are visible to other\nmembers of the IXP, however only `name`, `type`,\n`product_offering`, `consuming_account` and\n`managing_account` are made\navailable.\n\nOther required fields are redacted.","type":"boolean"},"purchase_order":{"default":"","description":"Purchase Order ID which will be displayed on the invoice.\n","example":"Project: DC Moon","maxLength":80,"type":"string"},"state":{"enum":["requested","allocated","testing","production","production_change_pending","decommission_requested","decommissioned","archived","error","operator","scheduled"],"type":"string"},"status":{"items":{"$ref":"#/components/schemas/Status"},"type":"array"},"type":{"example":"p2mp_vc","type":"string"}},"required":["type"],"title":"PartialP2MPNetworkService","type":"object"},"P2MPNetworkServiceRequest":{"allOf":[{"$ref":"#/components/schemas/P2MPNetworkServiceRequestPartial"},{"required":["product_offering","managing_account","consuming_account","billing_account","name","type"],"title":"P2MPNetworkServiceRequest","type":"object"}]},"P2MPNetworkServiceRequestPartial":{"description":"P2MP Network Service Request","properties":{"billing_account":{"description":"An account requires billing_information to be used as a `billing_account`.","type":"string"},"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"contract_ref":{"description":"A reference to a contract. If no specific contract is used, a default\nMAY be chosen by the implementer.\n","example":"contract:31824","maxLength":128,"nullable":true,"type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"name":{"description":"Name of the point to multi-point virtual circuit.","maxLength":40,"type":"string"},"product_offering":{"type":"string"},"public":{"default":false,"description":"A public p2mp network service can be joined\nby everyone on the exchange unless denied by\na member-joining-rule.\n\nPublic network services are visible to other\nmembers of the IXP, however only `name`, `type`,\n`product_offering`, `consuming_account` and\n`managing_account` are made\navailable.\n\nOther required fields are redacted.","type":"boolean"},"purchase_order":{"default":"","description":"Purchase Order ID which will be displayed on the invoice.\n","example":"Project: DC Moon","maxLength":80,"type":"string"},"type":{"example":"p2mp_vc","type":"string"}},"required":["type"],"title":"PartialP2MPNetworkServiceRequest","type":"object"},"P2PNetworkProductOffering":{"allOf":[{"$ref":"#/components/schemas/P2PNetworkProductOfferingPartial"},{"required":["id","name","display_name","provider_vlans","resource_type","handover_metro_area_network","handover_metro_area","service_metro_area_network","service_metro_area","bandwidth_min","bandwidth_max","physical_port_speed","service_provider","downgrade_allowed","upgrade_allowed","type"],"title":"P2PNetworkProductOffering","type":"object"}]},"P2PNetworkProductOfferingPartial":{"description":"P2P Network Product Offering","properties":{"bandwidth_max":{"description":"When not `null`, this value enforces a mandatory\nrate limit for all network service configs.","minimum":0,"nullable":true,"type":"integer"},"bandwidth_min":{"description":"When configuring access to the network service, at least\nthis `capacity` must be provided.","minimum":0,"nullable":true,"type":"integer"},"display_name":{"maxLength":256,"type":"string"},"downgrade_allowed":{"description":"Indicates if the service can be migrated to\na lower bandwidth.","type":"boolean"},"handover_metro_area":{"description":"Id of the `MetroArea`. The network service will be\naccessed from this metro area.\n","example":"met:29381993:NYC","type":"string"},"handover_metro_area_network":{"description":"Id of the `MetroAreaNetwork`. The service will be accessed\nthrough the handover metro area network.\n","example":"191239810","type":"string"},"id":{"maxLength":80,"type":"string"},"name":{"description":"Name of the product","maxLength":160,"type":"string"},"physical_port_speed":{"description":"If the service is dependent on the speed of\nthe physical port this field denotes the speed.","minimum":0,"nullable":true,"type":"integer"},"provider_vlans":{"description":"The `NetworkService` provides `single` or `multi`ple vlans.","enum":["single","multi"],"type":"string"},"resource_type":{"description":"The resource type refers to an ix-api resource.\n","enum":["connection","demarc","network_service","network_service_config"],"example":"network_service","type":"string"},"service_metro_area":{"description":"Id of the `MetroArea`. The service is delivered\nin this metro area.\n","example":"met:213913485:LON","type":"string"},"service_metro_area_network":{"description":"Id of the `MetroAreaNetwork`.\nThe service is directly provided on the metro area network.\n","example":"9123843","type":"string"},"service_provider":{"description":"The name of the provider providing the service.\n","example":"AWS","type":"string"},"type":{"example":"p2p_vc","type":"string"},"upgrade_allowed":{"description":"Indicates if the service can be migrated to\na higher bandwidth.","type":"boolean"}},"required":["type"],"title":"PartialP2PNetworkProductOffering","type":"object"},"P2PNetworkService":{"allOf":[{"$ref":"#/components/schemas/P2PNetworkServicePartial"},{"required":["state","id","product_offering","managing_account","consuming_account","billing_account","joining_member_account","type"],"title":"P2PNetworkService","type":"object"}]},"P2PNetworkServiceConfig":{"allOf":[{"$ref":"#/components/schemas/P2PNetworkServiceConfigPartial"},{"required":["state","id","network_service","managing_account","consuming_account","billing_account","role_assignments","connection","vlan_config","type"],"title":"P2PNetworkServiceConfig","type":"object"}]},"P2PNetworkServiceConfigPartial":{"description":"P2P Network Service Config","properties":{"billing_account":{"description":"An account requires billing_information to be used as a `billing_account`.","type":"string"},"capacity":{"description":"The capacity of the service in Mbps. If set to Null,\nthe maximum capacity will be used, i.e. the virtual circuit is\nnot rate-limited.\n\nAn exchange may choose to constrain the available capacity range\nof a `ProductOffering`.\n\nThat means, the service can consume up to the total bandwidth\nof the `Connection`.\n\nTypically the service is charged based on the capacity.","minimum":1,"nullable":true,"type":"integer"},"charged_until":{"description":"Your obligation to pay for the service will end on this date.\nTypically `≥ decommission_at`.\n\nThis field is only used when\nthe state is `DECOMMISSION_REQUESTED` or\n`DECOMMISSIONED`.","format":"date","type":"string"},"connection":{"description":"The id of the connection to use for this `NetworkServiceConfig`.","type":"string"},"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"contract_ref":{"description":"A reference to a contract. If no specific contract is used, a default\nMAY be chosen by the implementer.\n","example":"contract:31824","maxLength":128,"nullable":true,"type":"string"},"decommission_at":{"description":"The service will be decommissioned on this date.\n\nThis field is only used when\nthe state is `DECOMMISSION_REQUESTED` or\n`DECOMMISSIONED`.","format":"date","type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"id":{"maxLength":80,"type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"network_feature_configs":{"description":"A list of ids of `NetworkFeatureConfig`s.\n","example":["12356","43829"],"items":{"type":"string"},"readOnly":true,"type":"array"},"network_service":{"description":"The id of the configured network service.","type":"string"},"purchase_order":{"default":"","description":"Purchase Order ID which will be displayed on the invoice.\n","example":"Project: DC Moon","maxLength":80,"type":"string"},"role_assignments":{"description":"A set of `RoleAssignment`s. See the documentation\non the specific `required_contact_roles`,\n`nfc_required_contact_roles` or `nsc_required_contact_roles`\non what `RoleAssignment`s to provide.\n","example":["c-impl:123","c-noc:331"],"items":{"type":"string"},"type":"array"},"state":{"enum":["requested","allocated","testing","production","production_change_pending","decommission_requested","decommissioned","archived","error","operator","scheduled"],"type":"string"},"status":{"items":{"$ref":"#/components/schemas/Status"},"type":"array"},"type":{"example":"p2p_vc","type":"string"},"vlan_config":{"$ref":"#/components/schemas/VlanConfig"}},"required":["type"],"title":"PartialP2PNetworkServiceConfig","type":"object"},"P2PNetworkServiceConfigRequest":{"allOf":[{"$ref":"#/components/schemas/P2PNetworkServiceConfigRequestPartial"},{"required":["managing_account","consuming_account","network_service","billing_account","role_assignments","connection","vlan_config","type"],"title":"P2PNetworkServiceConfigRequest","type":"object"}]},"P2PNetworkServiceConfigRequestPartial":{"description":"P2P Network Service Config Request","properties":{"billing_account":{"description":"An account requires billing_information to be used as a `billing_account`.","type":"string"},"capacity":{"description":"The capacity of the service in Mbps. If set to Null,\nthe maximum capacity will be used, i.e. the virtual circuit is\nnot rate-limited.\n\nAn exchange may choose to constrain the available capacity range\nof a `ProductOffering`.\n\nThat means, the service can consume up to the total bandwidth\nof the `Connection`.\n\nTypically the service is charged based on the capacity.","minimum":1,"nullable":true,"type":"integer"},"connection":{"description":"The id of the connection to use for this `NetworkServiceConfig`.","type":"string"},"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"contract_ref":{"description":"A reference to a contract. If no specific contract is used, a default\nMAY be chosen by the implementer.\n","example":"contract:31824","maxLength":128,"nullable":true,"type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"network_feature_configs":{"description":"A list of ids of `NetworkFeatureConfig`s.\n","example":["12356","43829"],"items":{"type":"string"},"readOnly":true,"type":"array"},"network_service":{"description":"The id of the `NetworkService` to configure.","type":"string"},"purchase_order":{"default":"","description":"Purchase Order ID which will be displayed on the invoice.\n","example":"Project: DC Moon","maxLength":80,"type":"string"},"role_assignments":{"description":"A set of `RoleAssignment`s. See the documentation\non the specific `required_contact_roles`,\n`nfc_required_contact_roles` or `nsc_required_contact_roles`\non what `RoleAssignment`s to provide.\n","example":["c-impl:123","c-noc:331"],"items":{"type":"string"},"type":"array"},"type":{"example":"p2p_vc","type":"string"},"vlan_config":{"$ref":"#/components/schemas/VlanConfig"}},"required":["type"],"title":"PartialP2PNetworkServiceConfigRequest","type":"object"},"P2PNetworkServiceConfigUpdate":{"allOf":[{"$ref":"#/components/schemas/P2PNetworkServiceConfigUpdatePartial"},{"required":["managing_account","consuming_account","vlan_config","billing_account","role_assignments","connection","type"],"title":"P2PNetworkServiceConfigUpdate","type":"object"}]},"P2PNetworkServiceConfigUpdatePartial":{"description":"P2P Network Service Config Update","properties":{"billing_account":{"description":"An account requires billing_information to be used as a `billing_account`.","type":"string"},"capacity":{"description":"The capacity of the service in Mbps. If set to Null,\nthe maximum capacity will be used, i.e. the virtual circuit is\nnot rate-limited.\n\nAn exchange may choose to constrain the available capacity range\nof a `ProductOffering`.\n\nThat means, the service can consume up to the total bandwidth\nof the `Connection`.\n\nTypically the service is charged based on the capacity.","minimum":1,"nullable":true,"type":"integer"},"connection":{"description":"The id of the connection to use for this `NetworkServiceConfig`.","type":"string"},"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"contract_ref":{"description":"A reference to a contract. If no specific contract is used, a default\nMAY be chosen by the implementer.\n","example":"contract:31824","maxLength":128,"nullable":true,"type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"network_feature_configs":{"description":"A list of ids of `NetworkFeatureConfig`s.\n","example":["12356","43829"],"items":{"type":"string"},"readOnly":true,"type":"array"},"purchase_order":{"default":"","description":"Purchase Order ID which will be displayed on the invoice.\n","example":"Project: DC Moon","maxLength":80,"type":"string"},"role_assignments":{"description":"A set of `RoleAssignment`s. See the documentation\non the specific `required_contact_roles`,\n`nfc_required_contact_roles` or `nsc_required_contact_roles`\non what `RoleAssignment`s to provide.\n","example":["c-impl:123","c-noc:331"],"items":{"type":"string"},"type":"array"},"type":{"example":"p2p_vc","type":"string"},"vlan_config":{"$ref":"#/components/schemas/VlanConfig"}},"required":["type"],"title":"PartialP2PNetworkServiceConfigUpdate","type":"object"},"P2PNetworkServicePartial":{"description":"P2P Network Service","properties":{"billing_account":{"description":"An account requires billing_information to be used as a `billing_account`.","type":"string"},"capacity":{"description":"The capacity of the service in Mbps. When null,\nthe maximum capacity will be used.","minimum":1,"nullable":true,"type":"integer"},"charged_until":{"description":"Your obligation to pay for the service will end on this date.\nTypically `≥ decommission_at`.\n\nThis field is only used when\nthe state is `DECOMMISSION_REQUESTED` or\n`DECOMMISSIONED`.","format":"date","type":"string"},"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"contract_ref":{"description":"A reference to a contract. If no specific contract is used, a default\nMAY be chosen by the implementer.\n","example":"contract:31824","maxLength":128,"nullable":true,"type":"string"},"decommission_at":{"description":"The service will be decommissioned on this date.\n\nThis field is only used when\nthe state is `DECOMMISSION_REQUESTED` or\n`DECOMMISSIONED`.","format":"date","type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"id":{"type":"string"},"joining_member_account":{"description":"The account of the B-side member joining the virtual circuit.\n","example":"231829","type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"nsc_required_contact_roles":{"description":"The configuration will require at least one of each of the\nspecified roles assigned to contacts.\n\nThe `RoleAssignment` is associated through the\n`role_assignments` list property of the network service configuration.","items":{"type":"string"},"readOnly":true,"type":"array"},"product_offering":{"type":"string"},"purchase_order":{"default":"","description":"Purchase Order ID which will be displayed on the invoice.\n","example":"Project: DC Moon","maxLength":80,"type":"string"},"state":{"enum":["requested","allocated","testing","production","production_change_pending","decommission_requested","decommissioned","archived","error","operator","scheduled"],"type":"string"},"status":{"items":{"$ref":"#/components/schemas/Status"},"type":"array"},"type":{"example":"p2p_vc","type":"string"}},"required":["type"],"title":"PartialP2PNetworkService","type":"object"},"P2PNetworkServiceRequest":{"allOf":[{"$ref":"#/components/schemas/P2PNetworkServiceRequestPartial"},{"required":["product_offering","managing_account","consuming_account","billing_account","joining_member_account","type"],"title":"P2PNetworkServiceRequest","type":"object"}]},"P2PNetworkServiceRequestPartial":{"description":"P2P Network Service Request","properties":{"billing_account":{"description":"An account requires billing_information to be used as a `billing_account`.","type":"string"},"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"contract_ref":{"description":"A reference to a contract. If no specific contract is used, a default\nMAY be chosen by the implementer.\n","example":"contract:31824","maxLength":128,"nullable":true,"type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"joining_member_account":{"description":"The account of the B-side member joining the virtual circuit.\n","example":"231829","type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"product_offering":{"type":"string"},"purchase_order":{"default":"","description":"Purchase Order ID which will be displayed on the invoice.\n","example":"Project: DC Moon","maxLength":80,"type":"string"},"type":{"example":"p2p_vc","type":"string"}},"required":["type"],"title":"PartialP2PNetworkServiceRequest","type":"object"},"PointOfPresence":{"allOf":[{"$ref":"#/components/schemas/PointOfPresencePartial"},{"required":["name","facility","metro_area_network","devices","id"],"title":"PointOfPresence","type":"object"}]},"PointOfPresencePartial":{"description":"Point Of Presence","properties":{"devices":{"items":{"type":"string"},"type":"array"},"facility":{"type":"string"},"id":{"maxLength":80,"type":"string"},"metro_area_network":{"type":"string"},"name":{"maxLength":40,"type":"string"}},"title":"PartialPointOfPresence","type":"object"},"Port":{"allOf":[{"$ref":"#/components/schemas/PortPartial"},{"required":["state","managing_account","consuming_account","billing_account","role_assignments","id","media_type","device","pop"],"title":"Port","type":"object"}]},"PortPartial":{"description":"Port","properties":{"billing_account":{"description":"An account requires billing_information to be used as a `billing_account`.","type":"string"},"connection":{"nullable":true,"type":"string"},"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"contract_ref":{"description":"A reference to a contract. If no specific contract is used, a default\nMAY be chosen by the implementer.\n","example":"contract:31824","maxLength":128,"nullable":true,"type":"string"},"device":{"description":"The device the port.\n","example":"device:29139871","type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"id":{"maxLength":80,"type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"media_type":{"description":"The media type of the port.\nQuery the device's capabilities for available types.\n","example":"10GBASE-LR","maxLength":20,"type":"string"},"name":{"default":"","description":"Name of the port (set by the exchange)","maxLength":80,"readOnly":true,"type":"string"},"pop":{"description":"Same as the `pop` of the `device`.\n","example":"pop:2913","type":"string"},"purchase_order":{"default":"","description":"Purchase Order ID which will be displayed on the invoice.\n","example":"Project: DC Moon","maxLength":80,"type":"string"},"role_assignments":{"description":"A set of `RoleAssignment`s. See the documentation\non the specific `required_contact_roles`,\n`nfc_required_contact_roles` or `nsc_required_contact_roles`\non what `RoleAssignment`s to provide.\n","example":["c-impl:123","c-noc:331"],"items":{"type":"string"},"type":"array"},"speed":{"minimum":0,"nullable":true,"readOnly":true,"type":"integer"},"state":{"enum":["requested","allocated","testing","production","production_change_pending","decommission_requested","decommissioned","archived","error","operator","scheduled"],"type":"string"},"status":{"items":{"$ref":"#/components/schemas/Status"},"type":"array"}},"title":"PartialPort","type":"object"},"PortRequest":{"allOf":[{"$ref":"#/components/schemas/PortRequestPartial"},{"required":["managing_account","consuming_account","billing_account","role_assignments","pop","media_type"],"title":"PortRequest","type":"object"}]},"PortRequestPartial":{"description":"Port Request","properties":{"billing_account":{"description":"An account requires billing_information to be used as a `billing_account`.","type":"string"},"connection":{"nullable":true,"type":"string"},"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"contract_ref":{"description":"A reference to a contract. If no specific contract is used, a default\nMAY be chosen by the implementer.\n","example":"contract:31824","maxLength":128,"nullable":true,"type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"media_type":{"description":"The media type of the interface.\nSee the device's capabilities to see what types\nare available.\n","example":"10GBASE-LR","maxLength":20,"type":"string"},"pop":{"description":"Same as the `pop` of the `device`.\n","example":"pop:2913","type":"string"},"purchase_order":{"default":"","description":"Purchase Order ID which will be displayed on the invoice.\n","example":"Project: DC Moon","maxLength":80,"type":"string"},"role_assignments":{"description":"A set of `RoleAssignment`s. See the documentation\non the specific `required_contact_roles`,\n`nfc_required_contact_roles` or `nsc_required_contact_roles`\non what `RoleAssignment`s to provide.\n","example":["c-impl:123","c-noc:331"],"items":{"type":"string"},"type":"array"},"speed":{"minimum":0,"nullable":true,"readOnly":true,"type":"integer"}},"title":"PartialPortRequest","type":"object"},"PortUpdate":{"allOf":[{"$ref":"#/components/schemas/PortUpdatePartial"},{"required":["managing_account","consuming_account","billing_account","role_assignments"],"title":"PortUpdate","type":"object"}]},"PortUpdatePartial":{"description":"Port Update","properties":{"billing_account":{"description":"An account requires billing_information to be used as a `billing_account`.","type":"string"},"connection":{"nullable":true,"type":"string"},"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"contract_ref":{"description":"A reference to a contract. If no specific contract is used, a default\nMAY be chosen by the implementer.\n","example":"contract:31824","maxLength":128,"nullable":true,"type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"purchase_order":{"default":"","description":"Purchase Order ID which will be displayed on the invoice.\n","example":"Project: DC Moon","maxLength":80,"type":"string"},"role_assignments":{"description":"A set of `RoleAssignment`s. See the documentation\non the specific `required_contact_roles`,\n`nfc_required_contact_roles` or `nsc_required_contact_roles`\non what `RoleAssignment`s to provide.\n","example":["c-impl:123","c-noc:331"],"items":{"type":"string"},"type":"array"},"speed":{"minimum":0,"nullable":true,"readOnly":true,"type":"integer"}},"title":"PartialPortUpdate","type":"object"},"ProblemResponse":{"allOf":[{"$ref":"#/components/schemas/ProblemResponsePartial"},{"required":["type"],"title":"ProblemResponse","type":"object"}]},"ProblemResponsePartial":{"description":"Encodes a problem into an appropriate response body.","properties":{"detail":{"description":"A human-readable explanation specific to this\noccurrence of the problem.","type":"string"},"instance":{"description":"A URI reference that identifies the specific\noccurrence of the problem.  It may or may not yield\nfurther information if dereferenced.","type":"string"},"status":{"description":"The HTTP status code ([RFC7231], Section 6)\ngenerated by the origin server for this occurrence\nof the problem.","minimum":100,"type":"integer"},"title":{"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.","type":"string"},"type":{"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","type":"string"}},"title":"PartialProblemResponse","type":"object"},"ProductOffering":{"description":"Polymorphic Product Offering","discriminator":{"mapping":{"cloud_vc":"#/components/schemas/CloudNetworkProductOffering","exchange_lan":"#/components/schemas/ExchangeLanNetworkProductOffering","mp2mp_vc":"#/components/schemas/MP2MPNetworkProductOffering","p2mp_vc":"#/components/schemas/P2MPNetworkProductOffering","p2p_vc":"#/components/schemas/P2PNetworkProductOffering"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/ExchangeLanNetworkProductOffering"},{"$ref":"#/components/schemas/P2PNetworkProductOffering"},{"$ref":"#/components/schemas/MP2MPNetworkProductOffering"},{"$ref":"#/components/schemas/P2MPNetworkProductOffering"},{"$ref":"#/components/schemas/CloudNetworkProductOffering"}],"title":"ProductOffering"},"ProductOfferingPartial":{"description":"Polymorphic Product Offering","discriminator":{"mapping":{"cloud_vc":"#/components/schemas/CloudNetworkProductOfferingPartial","exchange_lan":"#/components/schemas/ExchangeLanNetworkProductOfferingPartial","mp2mp_vc":"#/components/schemas/MP2MPNetworkProductOfferingPartial","p2mp_vc":"#/components/schemas/P2MPNetworkProductOfferingPartial","p2p_vc":"#/components/schemas/P2PNetworkProductOfferingPartial"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/ExchangeLanNetworkProductOfferingPartial"},{"$ref":"#/components/schemas/P2PNetworkProductOfferingPartial"},{"$ref":"#/components/schemas/MP2MPNetworkProductOfferingPartial"},{"$ref":"#/components/schemas/P2MPNetworkProductOfferingPartial"},{"$ref":"#/components/schemas/CloudNetworkProductOfferingPartial"}],"title":"ProductOffering (partial)"},"RateLimitedNetworkServiceConfig":{"allOf":[{"$ref":"#/components/schemas/RateLimitedNetworkServiceConfigPartial"},{"title":"RateLimitedNetworkServiceConfig","type":"object"}]},"RateLimitedNetworkServiceConfigPartial":{"description":"Rate limited network services include a capacity\nproperty.","properties":{"capacity":{"description":"The capacity of the service in Mbps. If set to Null,\nthe maximum capacity will be used, i.e. the virtual circuit is\nnot rate-limited.\n\nAn exchange may choose to constrain the available capacity range\nof a `ProductOffering`.\n\nThat means, the service can consume up to the total bandwidth\nof the `Connection`.\n\nTypically the service is charged based on the capacity.","minimum":1,"nullable":true,"type":"integer"}},"title":"PartialRateLimitedNetworkServiceConfig","type":"object"},"RefreshTokenRequest":{"allOf":[{"$ref":"#/components/schemas/RefreshTokenRequestPartial"},{"required":["refresh_token"],"title":"RefreshTokenRequest","type":"object"}]},"RefreshTokenRequestPartial":{"description":"RefreshTokenRequest","properties":{"refresh_token":{"type":"string"}},"title":"PartialRefreshTokenRequest","type":"object"},"Role":{"allOf":[{"$ref":"#/components/schemas/RolePartial"},{"required":["name","required_fields","id"],"title":"Role","type":"object"}]},"RoleAssignment":{"allOf":[{"$ref":"#/components/schemas/RoleAssignmentPartial"},{"required":["role","contact","id"],"title":"RoleAssignment","type":"object"}]},"RoleAssignmentPartial":{"description":"A role assignment for a contact","properties":{"contact":{"description":"The `id` of a contact the role is assigned to.\n","example":"contact:42b","type":"string"},"id":{"type":"string"},"role":{"description":"The `id` of a role the contact is assigned to.\n","example":"role:23","type":"string"}},"title":"PartialRoleAssignment","type":"object"},"RoleAssignmentRequest":{"allOf":[{"$ref":"#/components/schemas/RoleAssignmentRequestPartial"},{"required":["role","contact"],"title":"RoleAssignmentRequest","type":"object"}]},"RoleAssignmentRequestPartial":{"description":"A role assignment request","properties":{"contact":{"description":"The `id` of a contact the role is assigned to.\n","example":"contact:42b","type":"string"},"role":{"description":"The `id` of a role the contact is assigned to.\n","example":"role:23","type":"string"}},"title":"PartialRoleAssignmentRequest","type":"object"},"RoleAssignmentUpdate":{"allOf":[{"$ref":"#/components/schemas/RoleAssignmentUpdatePartial"},{"required":["role","contact"],"title":"RoleAssignmentUpdate","type":"object"}]},"RoleAssignmentUpdatePartial":{"description":"A role assignemnt update","properties":{"contact":{"description":"The `id` of a contact the role is assigned to.\n","example":"contact:42b","type":"string"},"role":{"description":"The `id` of a role the contact is assigned to.\n","example":"role:23","type":"string"}},"title":"PartialRoleAssignmentUpdate","type":"object"},"RolePartial":{"description":"A role for a contact","properties":{"id":{"type":"string"},"name":{"description":"The name of the role.\n","example":"noc","maxLength":80,"type":"string"},"required_fields":{"description":"A list of required field names.\n","example":["name","email"],"items":{"maxLength":80,"type":"string"},"type":"array"}},"title":"PartialRole","type":"object"},"RoleRequest":{"allOf":[{"$ref":"#/components/schemas/RoleRequestPartial"},{"required":["name","required_fields"],"title":"RoleRequest","type":"object"}]},"RoleRequestPartial":{"description":"A new role","properties":{"name":{"description":"The name of the role.\n","example":"noc","maxLength":80,"type":"string"},"required_fields":{"description":"A list of required field names.\n","example":["name","email"],"items":{"maxLength":80,"type":"string"},"type":"array"}},"title":"PartialRoleRequest","type":"object"},"RoleUpdate":{"allOf":[{"$ref":"#/components/schemas/RoleUpdatePartial"},{"required":["name","required_fields"],"title":"RoleUpdate","type":"object"}]},"RoleUpdatePartial":{"description":"A role update","properties":{"name":{"description":"The name of the role.\n","example":"noc","maxLength":80,"type":"string"},"required_fields":{"description":"A list of required field names.\n","example":["name","email"],"items":{"maxLength":80,"type":"string"},"type":"array"}},"title":"PartialRoleUpdate","type":"object"},"RouteServerNetworkFeature":{"allOf":[{"$ref":"#/components/schemas/RouteServerNetworkFeaturePartial"},{"required":["id","name","required","flags","network_service","asn","fqdn","address_families","session_mode","available_bgp_session_types","ip_v4","ip_v6","type"],"title":"RouteServerNetworkFeature","type":"object"}]},"RouteServerNetworkFeatureConfig":{"allOf":[{"$ref":"#/components/schemas/RouteServerNetworkFeatureConfigPartial"},{"required":["state","managing_account","consuming_account","billing_account","role_assignments","network_feature","network_service_config","asn","session_mode","bgp_session_type","ip","id","type"],"title":"RouteServerNetworkFeatureConfig","type":"object"}]},"RouteServerNetworkFeatureConfigPartial":{"description":"Route Server Network Feature Config","properties":{"as_set_v4":{"description":"AS-SET of the customer for IPv4 prefix filtering.\nThis is used to generate filters on the router servers.\n\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* if the route server network feature only\nsupports the `af_inet` address family.\nIf multiple address families are supported, it is optional if the\n`as_set_v6` is provided.\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","maxLength":100,"nullable":true,"type":"string"},"as_set_v6":{"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* if the route server network feature only\nsupports the `af_inet6` address family.\nIf multiple address families are supported, it is optional if the\n`as_set_v4` is provided.\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","maxLength":100,"nullable":true,"type":"string"},"asn":{"description":"The ASN of the peer.\n","example":4200000023,"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"bgp_session_type":{"description":"The session type describes which of the both parties will open the\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 exchanges is passive.\n","enum":["active","passive"],"example":"passive","type":"string"},"billing_account":{"description":"An account requires billing_information to be used as a `billing_account`.","type":"string"},"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"contract_ref":{"description":"A reference to a contract. If no specific contract is used, a default\nMAY be chosen by the implementer.\n","example":"contract:31824","maxLength":128,"nullable":true,"type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"id":{"maxLength":80,"type":"string"},"insert_ixp_asn":{"default":true,"description":"Insert the ASN of the exchange into the AS path. This function is only\nused in special cases. In 99% of all cases, it should be false.\n","type":"boolean"},"ip":{"description":"The BGP session will be established from this IP address.\nOnly IPs assigned to the corresponding network service\nconfig can be used.","type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"max_prefix_v4":{"description":"Announcing more than `max_prefix` IPv4 prefixes the bgp\nsession will be droped.\n","example":5000,"minimum":0,"nullable":true,"type":"integer"},"max_prefix_v6":{"description":"Announcing more than `max_prefix` IPv6 prefixes the bgp\nsession will be droped.\n","example":5000,"minimum":0,"nullable":true,"type":"integer"},"network_feature":{"type":"string"},"network_service_config":{"type":"string"},"password":{"default":"","description":"The cleartext BGP session password","example":"bgp-session-test-23","maxLength":128,"type":"string"},"purchase_order":{"default":"","description":"Purchase Order ID which will be displayed on the invoice.\n","example":"Project: DC Moon","maxLength":80,"type":"string"},"role_assignments":{"description":"A set of `RoleAssignment`s. See the documentation\non the specific `required_contact_roles`,\n`nfc_required_contact_roles` or `nsc_required_contact_roles`\non what `RoleAssignment`s to provide.\n","example":["c-impl:123","c-noc:331"],"items":{"type":"string"},"type":"array"},"session_mode":{"description":"Set the session mode with the routeserver.\n","enum":["public","collector"],"example":"public","type":"string"},"state":{"enum":["requested","allocated","testing","production","production_change_pending","decommission_requested","decommissioned","archived","error","operator","scheduled"],"type":"string"},"status":{"items":{"$ref":"#/components/schemas/Status"},"type":"array"},"type":{"example":"route_server","type":"string"}},"required":["type"],"title":"PartialRouteServerNetworkFeatureConfig","type":"object"},"RouteServerNetworkFeatureConfigRequest":{"allOf":[{"$ref":"#/components/schemas/RouteServerNetworkFeatureConfigRequestPartial"},{"required":["managing_account","consuming_account","billing_account","role_assignments","network_feature","network_service_config","asn","session_mode","bgp_session_type","ip","type"],"title":"RouteServerNetworkFeatureConfigRequest","type":"object"}]},"RouteServerNetworkFeatureConfigRequestPartial":{"description":"Route Server Network Feature Config Request","properties":{"as_set_v4":{"description":"AS-SET of the customer for IPv4 prefix filtering.\nThis is used to generate filters on the router servers.\n\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* if the route server network feature only\nsupports the `af_inet` address family.\nIf multiple address families are supported, it is optional if the\n`as_set_v6` is provided.\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","maxLength":100,"nullable":true,"type":"string"},"as_set_v6":{"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* if the route server network feature only\nsupports the `af_inet6` address family.\nIf multiple address families are supported, it is optional if the\n`as_set_v4` is provided.\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","maxLength":100,"nullable":true,"type":"string"},"asn":{"description":"The ASN of the peer.\n","example":4200000023,"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"bgp_session_type":{"description":"The session type describes which of the both parties will open the\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 exchanges is passive.\n","enum":["active","passive"],"example":"passive","type":"string"},"billing_account":{"description":"An account requires billing_information to be used as a `billing_account`.","type":"string"},"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"contract_ref":{"description":"A reference to a contract. If no specific contract is used, a default\nMAY be chosen by the implementer.\n","example":"contract:31824","maxLength":128,"nullable":true,"type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"insert_ixp_asn":{"default":true,"description":"Insert the ASN of the exchange into the AS path. This function is only\nused in special cases. In 99% of all cases, it should be false.\n","type":"boolean"},"ip":{"description":"The BGP session will be established from this IP address.\nOnly IPs assigned to the corresponding network service\nconfig can be used.","type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"max_prefix_v4":{"description":"Announcing more than `max_prefix` IPv4 prefixes the bgp\nsession will be droped.\n","example":5000,"minimum":0,"nullable":true,"type":"integer"},"max_prefix_v6":{"description":"Announcing more than `max_prefix` IPv6 prefixes the bgp\nsession will be droped.\n","example":5000,"minimum":0,"nullable":true,"type":"integer"},"network_feature":{"type":"string"},"network_service_config":{"type":"string"},"password":{"default":"","description":"The cleartext BGP session password","example":"bgp-session-test-23","maxLength":128,"type":"string"},"purchase_order":{"default":"","description":"Purchase Order ID which will be displayed on the invoice.\n","example":"Project: DC Moon","maxLength":80,"type":"string"},"role_assignments":{"description":"A set of `RoleAssignment`s. See the documentation\non the specific `required_contact_roles`,\n`nfc_required_contact_roles` or `nsc_required_contact_roles`\non what `RoleAssignment`s to provide.\n","example":["c-impl:123","c-noc:331"],"items":{"type":"string"},"type":"array"},"session_mode":{"description":"Set the session mode with the routeserver.\n","enum":["public","collector"],"example":"public","type":"string"},"type":{"example":"route_server","type":"string"}},"required":["type"],"title":"PartialRouteServerNetworkFeatureConfigRequest","type":"object"},"RouteServerNetworkFeatureConfigUpdate":{"allOf":[{"$ref":"#/components/schemas/RouteServerNetworkFeatureConfigUpdatePartial"},{"required":["managing_account","consuming_account","asn","session_mode","bgp_session_type","ip","type"],"title":"RouteServerNetworkFeatureConfigUpdate","type":"object"}]},"RouteServerNetworkFeatureConfigUpdatePartial":{"description":"Route Server Network Feature Config Update","properties":{"as_set_v4":{"description":"AS-SET of the customer for IPv4 prefix filtering.\nThis is used to generate filters on the router servers.\n\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* if the route server network feature only\nsupports the `af_inet` address family.\nIf multiple address families are supported, it is optional if the\n`as_set_v6` is provided.\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","maxLength":100,"nullable":true,"type":"string"},"as_set_v6":{"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* if the route server network feature only\nsupports the `af_inet6` address family.\nIf multiple address families are supported, it is optional if the\n`as_set_v4` is provided.\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","maxLength":100,"nullable":true,"type":"string"},"asn":{"description":"The ASN of the peer.\n","example":4200000023,"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"bgp_session_type":{"description":"The session type describes which of the both parties will open the\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 exchanges is passive.\n","enum":["active","passive"],"example":"passive","type":"string"},"consuming_account":{"description":"The `id` of the account consuming a service.\n\nUsed to be `owning_customer`.\n","example":"2381982","type":"string"},"external_ref":{"description":"Reference field, free to use for the API user.","example":"IX:Service:23042","maxLength":128,"nullable":true,"type":"string"},"insert_ixp_asn":{"default":true,"description":"Insert the ASN of the exchange into the AS path. This function is only\nused in special cases. In 99% of all cases, it should be false.\n","type":"boolean"},"ip":{"description":"The BGP session will be established from this IP address.\nOnly IPs assigned to the corresponding network service\nconfig can be used.","type":"string"},"managing_account":{"description":"The `id` of the account responsible for managing the service via\nthe API. A manager can read and update the state of entities.\n","example":"238189294","type":"string"},"max_prefix_v4":{"description":"Announcing more than `max_prefix` IPv4 prefixes the bgp\nsession will be droped.\n","example":5000,"minimum":0,"nullable":true,"type":"integer"},"max_prefix_v6":{"description":"Announcing more than `max_prefix` IPv6 prefixes the bgp\nsession will be droped.\n","example":5000,"minimum":0,"nullable":true,"type":"integer"},"password":{"default":"","description":"The cleartext BGP session password","example":"bgp-session-test-23","maxLength":128,"type":"string"},"session_mode":{"description":"Set the session mode with the routeserver.\n","enum":["public","collector"],"example":"public","type":"string"},"type":{"example":"route_server","type":"string"}},"required":["type"],"title":"PartialRouteServerNetworkFeatureConfigUpdate","type":"object"},"RouteServerNetworkFeaturePartial":{"description":"Route Server Network Feature","properties":{"address_families":{"description":"When creating a route server feature config, remember\nto specify which address family or families to use:\n\nIf the route server network feature only supports `af_inet`,\nthen the `as_set_v4` in the network feature config is required.\n\nIf only `af_inet6` is supported, then the `as_set_v6` is required.\n\nIf both `af_inet` and `af_inet6` are supported, either\n`as_set_v4` or `as_set_v6` is required, but both can be provided\nin the network service config.\n","example":["af_inet"],"items":{"enum":["af_inet","af_inet6"],"type":"string"},"type":"array"},"asn":{"minimum":0,"type":"integer"},"available_bgp_session_types":{"description":"The route server provides the following session modes.\n","example":["passive"],"items":{"enum":["active","passive"],"type":"string"},"type":"array"},"flags":{"description":"A list of IXP specific feature flags. This can be used\nto see if e.g. RPKI hard filtering is available.","items":{"$ref":"#/components/schemas/IXPSpecificFeatureFlag"},"type":"array"},"fqdn":{"description":"The FQDN of the route server.\n","example":"rs1.moon-ix.net","maxLength":80,"type":"string"},"id":{"type":"string"},"ip_v4":{"description":"IPv4 address in [dot-decimal notation](https://en.wikipedia.org/wiki/Dot-decimal_notation)\nnotation.\n","example":"23.42.0.1","type":"string"},"ip_v6":{"description":"IPv6 address in hexadecimal colon separated notation.\n","example":"2001:23:42::1","type":"string"},"looking_glass_url":{"description":"The url of the looking glass.\n","example":"https://lg.moon-ix.net/rs1","type":"string"},"name":{"maxLength":80,"type":"string"},"network_service":{"type":"string"},"nfc_required_contact_roles":{"description":"The configuration will require at least one of each of the\nspecified roles assigned to contacts.\n\nThe role assignments is associated with the network feature\nconfig through the `role_assignments` list property.","items":{"type":"string"},"readOnly":true,"type":"array"},"required":{"type":"boolean"},"session_mode":{"description":"When creating a route server feature config, remember\nto specify the same session_mode as the route server.\n","enum":["public","collector"],"example":"public","type":"string"},"type":{"example":"route_server","type":"string"}},"required":["type"],"title":"PartialRouteServerNetworkFeature","type":"object"},"Stateful":{"allOf":[{"$ref":"#/components/schemas/StatefulPartial"},{"required":["state"],"title":"Stateful","type":"object"}]},"StatefulPartial":{"description":"A stateful object","properties":{"state":{"enum":["requested","allocated","testing","production","production_change_pending","decommission_requested","decommissioned","archived","error","operator","scheduled"],"type":"string"},"status":{"items":{"$ref":"#/components/schemas/Status"},"type":"array"}},"title":"PartialStateful","type":"object"},"Status":{"allOf":[{"$ref":"#/components/schemas/StatusPartial"},{"required":["severity","tag","message","attrs","timestamp"],"title":"Status","type":"object"}]},"StatusPartial":{"description":"Status Message","properties":{"attrs":{"type":"object"},"message":{"type":"string"},"severity":{"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,"format":"int32","maximum":7,"minimum":0,"type":"integer"},"tag":{"type":"string"},"timestamp":{"format":"date-time","type":"string"}},"title":"PartialStatus","type":"object"},"VLanConfigDot1Q":{"allOf":[{"$ref":"#/components/schemas/VLanConfigDot1QPartial"},{"required":["vlan","vlan_type"],"title":"VLanConfigDot1Q","type":"object"}]},"VLanConfigDot1QPartial":{"description":"A Dot1Q vlan configuration","properties":{"vlan":{"description":"A VLAN tag\n","example":23,"format":"int32","maximum":4094,"minimum":1,"type":"integer"},"vlan_ethertype":{"default":"0x8100","description":"The ethertype of the vlan in hexadecimal notation.","enum":["0x8100","0x88a8","0x9100"],"type":"string"},"vlan_type":{"example":"dot1q","type":"string"}},"required":["vlan_type"],"title":"PartialVLanConfigDot1Q","type":"object"},"VLanConfigPort":{"allOf":[{"$ref":"#/components/schemas/VLanConfigPortPartial"},{"required":["vlan_type"],"title":"VLanConfigPort","type":"object"}]},"VLanConfigPortPartial":{"description":"A Port vlan configuration","properties":{"vlan_type":{"example":"port","type":"string"}},"required":["vlan_type"],"title":"PartialVLanConfigPort","type":"object"},"VLanConfigQinQ":{"allOf":[{"$ref":"#/components/schemas/VLanConfigQinQPartial"},{"required":["outer_vlan","inner_vlan","vlan_type"],"title":"VLanConfigQinQ","type":"object"}]},"VLanConfigQinQPartial":{"description":"A QinQ vlan configuration","properties":{"inner_vlan":{"description":"The inner VLAN id.\n","example":200,"format":"int32","maximum":4094,"minimum":1,"type":"integer"},"outer_vlan":{"description":"The outer VLAN id.\n","example":200,"format":"int32","maximum":4094,"minimum":1,"type":"integer"},"outer_vlan_ethertype":{"default":"0x8100","description":"The ethertype of the outer tag in hexadecimal notation.","enum":["0x8100","0x88a8","0x9100"],"type":"string"},"vlan_type":{"example":"dot1q","type":"string"}},"required":["vlan_type"],"title":"PartialVLanConfigQinQ","type":"object"},"VlanConfig":{"description":"The vlan configuration defines how the service\nis made available on the connection.","discriminator":{"mapping":{"dot1q":"#/components/schemas/VLanConfigDot1Q","port":"#/components/schemas/VLanConfigPort","qinq":"#/components/schemas/VLanConfigQinQ"},"propertyName":"vlan_type"},"oneOf":[{"$ref":"#/components/schemas/VLanConfigDot1Q"},{"$ref":"#/components/schemas/VLanConfigQinQ"},{"$ref":"#/components/schemas/VLanConfigPort"}],"title":"VlanConfig"},"VlanConfigPartial":{"description":"The vlan configuration defines how the service\nis made available on the connection.","discriminator":{"mapping":{"dot1q":"#/components/schemas/VLanConfigDot1QPartial","port":"#/components/schemas/VLanConfigPortPartial","qinq":"#/components/schemas/VLanConfigQinQPartial"},"propertyName":"vlan_type"},"oneOf":[{"$ref":"#/components/schemas/VLanConfigDot1QPartial"},{"$ref":"#/components/schemas/VLanConfigQinQPartial"},{"$ref":"#/components/schemas/VLanConfigPortPartial"}],"title":"VlanConfig (partial)"}},"securitySchemes":{"Bearer":{"bearerFormat":"JWT","scheme":"bearer","type":"http"}}}}