diff --git a/.github/workflows/listener.yml b/.github/workflows/listener.yml index a0a9f5876..5339b0b15 100644 --- a/.github/workflows/listener.yml +++ b/.github/workflows/listener.yml @@ -32,7 +32,7 @@ jobs: - name: Open Pull Request if: steps.replace-specs-snippets.outputs.needs_pr run: | - hub pull-request --base Bandwidth:main $(if ${{ github.event.client_payload.draftPr }} ; then echo "-d" ; fi) -m '${{ github.event.client_payload.branchName }}' -m 'Update API specs from upstream api-specs repository. Opened By: @${{ github.event.client_payload.author }}' + gh pr create -B main $(if ${{ github.event.client_payload.draftPr }} ; then echo "-d" ; fi) -t '${{ github.event.client_payload.branchName }}' -b 'Update API specs from upstream api-specs repository. Opened By: @${{ github.event.client_payload.author }}' env: GITHUB_TOKEN: ${{ secrets.DX_GITHUB_TOKEN }} diff --git a/site/custom.config.json b/site/custom.config.json index 3d7ae9f4f..2e3130c36 100644 --- a/site/custom.config.json +++ b/site/custom.config.json @@ -11,5 +11,6 @@ "dashSpecLink": "https://github.com/Bandwidth/api-docs/blob/main/site/specs/dash.json", "dashNotificationsSpecLink": "https://github.com/Bandwidth/api-docs/blob/main/site/specs/dashNotifications.json", "identitySpecLink": "https://github.com/Bandwidth/api-docs/blob/main/site/specs/one-identity-management.yml", - "insightsSpecLink": "https://github.com/Bandwidth/api-docs/blob/main/site/specs/insights.yml" + "insightsSpecLink": "https://github.com/Bandwidth/api-docs/blob/main/site/specs/insights.yml", + "emergencyProvisioningSpec": "https://github.com/Bandwidth/api-docs/blob/main/site/specs/emergency.yml" } diff --git a/site/docusaurus.config.js b/site/docusaurus.config.js index 081fba98c..d8eecd58e 100644 --- a/site/docusaurus.config.js +++ b/site/docusaurus.config.js @@ -40,6 +40,8 @@ const identitySpec = fs.readFileSync( const identityspecLink = ""; const insightsSpec = fs.readFileSync("./specs/insights.yml", "utf-8"); +const emergencyProvisioningSpec = fs.readFileSync("./specs/emergency.yml", "utf-8"); + module.exports = { title: "Bandwidth API Docs", tagline: "Learn About Bandwidth's Product APIs", @@ -200,6 +202,8 @@ module.exports = { identitySpecLink: `${customConfig.dashNotificationsSpecLink}`, insightsSpec: YAML.parse(insightsSpec), insightsSpecLink: `${customConfig.insightsSpecLink}`, + emergencyProvisioningSpec: YAML.parse(emergencyProvisioningSpec), + emergencyProvisioningSpecLink: `${customConfig.emergencyProvisioningSpecLink}`, blogPosts: blogPosts, diff --git a/site/specs/emergency.yml b/site/specs/emergency.yml new file mode 100644 index 000000000..eca455ab5 --- /dev/null +++ b/site/specs/emergency.yml @@ -0,0 +1,2913 @@ +openapi: 3.0.3 +info: + title: Unified Emergency Services Provisioning API + version: 1.0.0 + termsOfService: https://www.bandwidth.com/legal/terms-of-use-bandwidthcom-web-sites/ + description: >- + The API specification for Bandwidth’s unified Emergency Services + provisioning API. + + + ## Base URL + + `https://dashboard.bandwidth.com/api/v2/accounts/{accountId}/emergency` + contact: + email: support@bandwidth.com + name: Bandwidth + url: https://support.bandwidth.com +servers: + - url: https://dashboard.bandwidth.com/api/v2/accounts/{accountId}/emergency +paths: + /endpoints: + get: + summary: List Endpoints + operationId: listAllEndpoints + description: List all emergency provisioned endpoints. + tags: + - Endpoints + parameters: + - $ref: '#/components/parameters/addressIdQuery' + - $ref: '#/components/parameters/limit' + - $ref: '#/components/parameters/offset' + - $ref: '#/components/parameters/region' + responses: + '200': + $ref: '#/components/responses/listEndpoints' + '400': + $ref: '#/components/responses/badRequestError' + '401': + $ref: '#/components/responses/unauthorizedError' + '403': + $ref: '#/components/responses/forbiddenError' + '404': + $ref: '#/components/responses/notFoundError' + '405': + $ref: '#/components/responses/notAllowedError' + '429': + $ref: '#/components/responses/tooManyRequestsError' + '500': + $ref: '#/components/responses/internalServerError' + post: + summary: Add Endpoints + operationId: addEndpoints + description: Provision new emergency endpoints. + tags: + - Endpoints + parameters: + - $ref: '#/components/parameters/region' + requestBody: + $ref: '#/components/requestBodies/addEndpoints' + responses: + '202': + $ref: '#/components/responses/provisioningOrderAddEndpoint' + '400': + $ref: '#/components/responses/badRequestError' + '401': + $ref: '#/components/responses/unauthorizedError' + '403': + $ref: '#/components/responses/forbiddenError' + '404': + $ref: '#/components/responses/notFoundError' + '405': + $ref: '#/components/responses/notAllowedError' + '429': + $ref: '#/components/responses/tooManyRequestsError' + '500': + $ref: '#/components/responses/internalServerError' + patch: + summary: Update Endpoints + operationId: updateEndpoints + description: Update endpoints. + tags: + - Endpoints + parameters: + - $ref: '#/components/parameters/region' + requestBody: + $ref: '#/components/requestBodies/updateEndpoints' + responses: + '202': + $ref: '#/components/responses/provisioningOrderUpdateEndpoint' + '400': + $ref: '#/components/responses/badRequestError' + '401': + $ref: '#/components/responses/unauthorizedError' + '403': + $ref: '#/components/responses/forbiddenError' + '404': + $ref: '#/components/responses/notFoundError' + '405': + $ref: '#/components/responses/notAllowedError' + '429': + $ref: '#/components/responses/tooManyRequestsError' + '500': + $ref: '#/components/responses/internalServerError' + delete: + summary: Delete Endpoints + operationId: deleteEndpoints + description: Delete emergency endpoints. + tags: + - Endpoints + parameters: + - $ref: '#/components/parameters/region' + requestBody: + $ref: '#/components/requestBodies/deleteEndpoints' + responses: + '202': + $ref: '#/components/responses/provisioningOrderDeleteEndpoint' + '400': + $ref: '#/components/responses/badRequestError' + '401': + $ref: '#/components/responses/unauthorizedError' + '403': + $ref: '#/components/responses/forbiddenError' + '404': + $ref: '#/components/responses/notFoundError' + '405': + $ref: '#/components/responses/notAllowedError' + '429': + $ref: '#/components/responses/tooManyRequestsError' + '500': + $ref: '#/components/responses/internalServerError' + /endpoints/{endpointId}: + get: + summary: Get Endpoint + operationId: getEndpoint + description: Get an endpoint. + tags: + - Endpoints + parameters: + - $ref: '#/components/parameters/endpointId' + - $ref: '#/components/parameters/region' + responses: + '200': + $ref: '#/components/responses/getEndpoint' + '400': + $ref: '#/components/responses/badRequestError' + '401': + $ref: '#/components/responses/unauthorizedError' + '403': + $ref: '#/components/responses/forbiddenError' + '404': + $ref: '#/components/responses/notFoundError' + '405': + $ref: '#/components/responses/notAllowedError' + '429': + $ref: '#/components/responses/tooManyRequestsError' + '500': + $ref: '#/components/responses/internalServerError' + patch: + summary: Update Endpoint + operationId: updateEndpoint + description: Get an endpoint. + tags: + - Endpoints + requestBody: + $ref: '#/components/requestBodies/updateEndpoint' + parameters: + - $ref: '#/components/parameters/endpointId' + - $ref: '#/components/parameters/region' + responses: + '202': + $ref: '#/components/responses/provisioningOrderUpdateEndpoint' + '400': + $ref: '#/components/responses/badRequestError' + '401': + $ref: '#/components/responses/unauthorizedError' + '403': + $ref: '#/components/responses/forbiddenError' + '404': + $ref: '#/components/responses/notFoundError' + '405': + $ref: '#/components/responses/notAllowedError' + '429': + $ref: '#/components/responses/tooManyRequestsError' + '500': + $ref: '#/components/responses/internalServerError' + delete: + summary: Delete Endpoint + operationId: deleteEndpoint + description: Delete an endpoint. + tags: + - Endpoints + parameters: + - $ref: '#/components/parameters/endpointId' + - $ref: '#/components/parameters/region' + responses: + '202': + $ref: '#/components/responses/provisioningOrderDeleteEndpoint' + '400': + $ref: '#/components/responses/badRequestError' + '401': + $ref: '#/components/responses/unauthorizedError' + '403': + $ref: '#/components/responses/forbiddenError' + '404': + $ref: '#/components/responses/notFoundError' + '405': + $ref: '#/components/responses/notAllowedError' + '429': + $ref: '#/components/responses/tooManyRequestsError' + '500': + $ref: '#/components/responses/internalServerError' + /addresses: + get: + summary: List Addresses + operationId: listAddresses + description: List all emergency addresses. + tags: + - Addresses + parameters: + - $ref: '#/components/parameters/limit' + - $ref: '#/components/parameters/offset' + - $ref: '#/components/parameters/region' + responses: + '200': + $ref: '#/components/responses/listAddresses' + '400': + $ref: '#/components/responses/badRequestError' + '401': + $ref: '#/components/responses/unauthorizedError' + '403': + $ref: '#/components/responses/forbiddenError' + '404': + $ref: '#/components/responses/notFoundError' + '405': + $ref: '#/components/responses/notAllowedError' + '429': + $ref: '#/components/responses/tooManyRequestsError' + '500': + $ref: '#/components/responses/internalServerError' + post: + summary: Add Address + operationId: addAddress + description: Provision emergency addresses. + tags: + - Addresses + parameters: + - $ref: '#/components/parameters/region' + requestBody: + $ref: '#/components/requestBodies/addAddress' + responses: + '201': + $ref: '#/components/responses/addAddressResponse' + '400': + $ref: '#/components/responses/badRequestError' + '401': + $ref: '#/components/responses/unauthorizedError' + '403': + $ref: '#/components/responses/forbiddenError' + '404': + $ref: '#/components/responses/notFoundError' + '405': + $ref: '#/components/responses/notAllowedError' + '429': + $ref: '#/components/responses/tooManyRequestsError' + '500': + $ref: '#/components/responses/internalServerError' + /addresses/{addressId}: + get: + summary: Get Address + operationId: getAddress + description: Get an emergency address. + tags: + - Addresses + parameters: + - $ref: '#/components/parameters/addressId' + - $ref: '#/components/parameters/region' + responses: + '200': + $ref: '#/components/responses/getAddress' + '400': + $ref: '#/components/responses/badRequestError' + '401': + $ref: '#/components/responses/unauthorizedError' + '403': + $ref: '#/components/responses/forbiddenError' + '404': + $ref: '#/components/responses/notFoundError' + '405': + $ref: '#/components/responses/notAllowedError' + '429': + $ref: '#/components/responses/tooManyRequestsError' + '500': + $ref: '#/components/responses/internalServerError' + patch: + summary: Update Address + operationId: updateAddress + description: Update an emergency address. + tags: + - Addresses + parameters: + - $ref: '#/components/parameters/addressId' + - $ref: '#/components/parameters/region' + requestBody: + $ref: '#/components/requestBodies/updateAddress' + responses: + '200': + $ref: '#/components/responses/updateAddress' + '400': + $ref: '#/components/responses/badRequestError' + '401': + $ref: '#/components/responses/unauthorizedError' + '403': + $ref: '#/components/responses/forbiddenError' + '404': + $ref: '#/components/responses/notFoundError' + '405': + $ref: '#/components/responses/notAllowedError' + '429': + $ref: '#/components/responses/tooManyRequestsError' + '500': + $ref: '#/components/responses/internalServerError' + delete: + summary: Delete Address + operationId: deleteAddress + description: Delete an emergency address. + tags: + - Addresses + parameters: + - $ref: '#/components/parameters/addressId' + - $ref: '#/components/parameters/region' + responses: + '204': + $ref: '#/components/responses/noContentResponse' + '400': + $ref: '#/components/responses/badRequestError' + '401': + $ref: '#/components/responses/unauthorizedError' + '403': + $ref: '#/components/responses/forbiddenError' + '404': + $ref: '#/components/responses/notFoundError' + '405': + $ref: '#/components/responses/notAllowedError' + '429': + $ref: '#/components/responses/tooManyRequestsError' + '500': + $ref: '#/components/responses/internalServerError' + /notifications: + get: + summary: List Notifications + operationId: listNotifications + description: List all emergency notifications. + tags: + - Notifications + parameters: + - $ref: '#/components/parameters/limit' + - $ref: '#/components/parameters/offset' + responses: + '200': + $ref: '#/components/responses/listNotifications' + '400': + $ref: '#/components/responses/badRequestError' + '401': + $ref: '#/components/responses/unauthorizedError' + '403': + $ref: '#/components/responses/forbiddenError' + '404': + $ref: '#/components/responses/notFoundError' + '405': + $ref: '#/components/responses/notAllowedError' + '429': + $ref: '#/components/responses/tooManyRequestsError' + '500': + $ref: '#/components/responses/internalServerError' + post: + summary: Add Notification + operationId: addNotification + description: Add emergency notification. + tags: + - Notifications + requestBody: + $ref: '#/components/requestBodies/addNotification' + responses: + '201': + $ref: '#/components/responses/addNotification' + '400': + $ref: '#/components/responses/badRequestError' + '401': + $ref: '#/components/responses/unauthorizedError' + '403': + $ref: '#/components/responses/forbiddenError' + '404': + $ref: '#/components/responses/notFoundError' + '405': + $ref: '#/components/responses/notAllowedError' + '429': + $ref: '#/components/responses/tooManyRequestsError' + '500': + $ref: '#/components/responses/internalServerError' + /notifications/{notificationId}: + get: + summary: Get Notification + operationId: getNotification + description: Get an emergency notification. + tags: + - Notifications + parameters: + - $ref: '#/components/parameters/notificationId' + - $ref: '#/components/parameters/limit' + - $ref: '#/components/parameters/offset' + responses: + '200': + $ref: '#/components/responses/getNotification' + '400': + $ref: '#/components/responses/badRequestError' + '401': + $ref: '#/components/responses/unauthorizedError' + '403': + $ref: '#/components/responses/forbiddenError' + '404': + $ref: '#/components/responses/notFoundError' + '405': + $ref: '#/components/responses/notAllowedError' + '429': + $ref: '#/components/responses/tooManyRequestsError' + '500': + $ref: '#/components/responses/internalServerError' + patch: + summary: Update Notification + operationId: updateNotification + description: Update an emergency notification. + tags: + - Notifications + parameters: + - $ref: '#/components/parameters/notificationId' + requestBody: + $ref: '#/components/requestBodies/updateNotification' + responses: + '200': + $ref: '#/components/responses/updateNotification' + '400': + $ref: '#/components/responses/badRequestError' + '401': + $ref: '#/components/responses/unauthorizedError' + '403': + $ref: '#/components/responses/forbiddenError' + '404': + $ref: '#/components/responses/notFoundError' + '405': + $ref: '#/components/responses/notAllowedError' + '429': + $ref: '#/components/responses/tooManyRequestsError' + '500': + $ref: '#/components/responses/internalServerError' + delete: + summary: Delete Notification + operationId: deleteNotification + description: Delete an emergency notification. + tags: + - Notifications + parameters: + - $ref: '#/components/parameters/notificationId' + responses: + '204': + $ref: '#/components/responses/noContentResponse' + '400': + $ref: '#/components/responses/badRequestError' + '401': + $ref: '#/components/responses/unauthorizedError' + '403': + $ref: '#/components/responses/forbiddenError' + '404': + $ref: '#/components/responses/notFoundError' + '405': + $ref: '#/components/responses/notAllowedError' + '429': + $ref: '#/components/responses/tooManyRequestsError' + '500': + $ref: '#/components/responses/internalServerError' + /notificationGroups: + get: + summary: List Notification Groups + operationId: listNotificationsGroups + description: List emergency notification groups. + tags: + - Notification Groups + parameters: + - $ref: '#/components/parameters/limit' + - $ref: '#/components/parameters/offset' + responses: + '200': + $ref: '#/components/responses/listNotificationGroups' + '400': + $ref: '#/components/responses/badRequestError' + '401': + $ref: '#/components/responses/unauthorizedError' + '403': + $ref: '#/components/responses/forbiddenError' + '404': + $ref: '#/components/responses/notFoundError' + '405': + $ref: '#/components/responses/notAllowedError' + '429': + $ref: '#/components/responses/tooManyRequestsError' + '500': + $ref: '#/components/responses/internalServerError' + post: + summary: Add Notification Group + operationId: addNotificationGroup + description: Add emergency notification group. + tags: + - Notification Groups + requestBody: + $ref: '#/components/requestBodies/addNotificationGroup' + responses: + '201': + $ref: '#/components/responses/addNotificationGroup' + '400': + $ref: '#/components/responses/badRequestError' + '401': + $ref: '#/components/responses/unauthorizedError' + '403': + $ref: '#/components/responses/forbiddenError' + '404': + $ref: '#/components/responses/notFoundError' + '405': + $ref: '#/components/responses/notAllowedError' + '429': + $ref: '#/components/responses/tooManyRequestsError' + '500': + $ref: '#/components/responses/internalServerError' + /notificationGroups/{groupId}: + get: + summary: Get Notification Group + operationId: getNotificationGroup + description: Get emergency notification group. + tags: + - Notification Groups + parameters: + - $ref: '#/components/parameters/groupId' + responses: + '200': + $ref: '#/components/responses/getNotificationGroup' + '400': + $ref: '#/components/responses/badRequestError' + '401': + $ref: '#/components/responses/unauthorizedError' + '403': + $ref: '#/components/responses/forbiddenError' + '404': + $ref: '#/components/responses/notFoundError' + '405': + $ref: '#/components/responses/notAllowedError' + '429': + $ref: '#/components/responses/tooManyRequestsError' + '500': + $ref: '#/components/responses/internalServerError' + patch: + summary: Update Notification Group + operationId: updateNotificationGroup + description: Update emergency notification group. + tags: + - Notification Groups + parameters: + - $ref: '#/components/parameters/groupId' + requestBody: + $ref: '#/components/requestBodies/updateNotificationGroup' + responses: + '200': + $ref: '#/components/responses/updateNotificationGroup' + '400': + $ref: '#/components/responses/badRequestError' + '401': + $ref: '#/components/responses/unauthorizedError' + '403': + $ref: '#/components/responses/forbiddenError' + '404': + $ref: '#/components/responses/notFoundError' + '405': + $ref: '#/components/responses/notAllowedError' + '429': + $ref: '#/components/responses/tooManyRequestsError' + '500': + $ref: '#/components/responses/internalServerError' + delete: + summary: Delete Notification Group + operationId: deleteNotificationGroup + description: Delete emergency notification group. + tags: + - Notification Groups + parameters: + - $ref: '#/components/parameters/groupId' + responses: + '204': + $ref: '#/components/responses/noContentResponse' + '400': + $ref: '#/components/responses/badRequestError' + '401': + $ref: '#/components/responses/unauthorizedError' + '403': + $ref: '#/components/responses/forbiddenError' + '404': + $ref: '#/components/responses/notFoundError' + '405': + $ref: '#/components/responses/notAllowedError' + '429': + $ref: '#/components/responses/tooManyRequestsError' + '500': + $ref: '#/components/responses/internalServerError' + /orders: + get: + summary: List Orders + operationId: listOrders + description: List all emergency orders. + tags: + - Orders + parameters: + - $ref: '#/components/parameters/orderType' + - $ref: '#/components/parameters/limit' + - $ref: '#/components/parameters/offset' + - $ref: '#/components/parameters/region' + responses: + '200': + $ref: '#/components/responses/listOrders' + '400': + $ref: '#/components/responses/badRequestError' + '401': + $ref: '#/components/responses/unauthorizedError' + '403': + $ref: '#/components/responses/forbiddenError' + '404': + $ref: '#/components/responses/notFoundError' + '405': + $ref: '#/components/responses/notAllowedError' + '429': + $ref: '#/components/responses/tooManyRequestsError' + '500': + $ref: '#/components/responses/internalServerError' + /orders/{orderId}/details: + get: + summary: Get Order Details + operationId: getOrderDetails + description: Get emergency order details. + tags: + - Orders + parameters: + - $ref: '#/components/parameters/orderId' + - $ref: '#/components/parameters/limit' + - $ref: '#/components/parameters/offset' + - $ref: '#/components/parameters/region' + responses: + '200': + $ref: '#/components/responses/listOrderDetails' + '400': + $ref: '#/components/responses/badRequestError' + '401': + $ref: '#/components/responses/unauthorizedError' + '403': + $ref: '#/components/responses/forbiddenError' + '404': + $ref: '#/components/responses/notFoundError' + '405': + $ref: '#/components/responses/notAllowedError' + '429': + $ref: '#/components/responses/tooManyRequestsError' + '500': + $ref: '#/components/responses/internalServerError' + /orders/{orderId}/history: + get: + summary: Get Order History + operationId: getOrderHistory + description: Get emergency order History. + tags: + - Orders + parameters: + - $ref: '#/components/parameters/orderId' + - $ref: '#/components/parameters/region' + responses: + '200': + $ref: '#/components/responses/listOrderHistory' + '400': + $ref: '#/components/responses/badRequestError' + '401': + $ref: '#/components/responses/unauthorizedError' + '403': + $ref: '#/components/responses/forbiddenError' + '404': + $ref: '#/components/responses/notFoundError' + '405': + $ref: '#/components/responses/notAllowedError' + '429': + $ref: '#/components/responses/tooManyRequestsError' + '500': + $ref: '#/components/responses/internalServerError' +components: + schemas: + addEndpoints: + title: Add Endpoints + description: Add Endpoints. + type: object + properties: + endpoints: + type: array + items: + type: object + properties: + id: + type: string + example: home + phoneNumber: + type: string + example: '+16175551212' + pattern: >- + ^(\+\d{1,2}\s?)?1?\-?\.?\s?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$ + name: + type: string + example: Bob + lang: + type: string + example: en + country: + type: string + example: US + addressId: + type: string + example: '7888993' + updateEndpoints: + title: Update Endpoints + description: Update Endpoints. + type: object + properties: + action: + $ref: '#/components/schemas/updateAction' + endpoints: + type: array + items: + type: object + properties: + id: + type: string + example: '1606772208758' + pattern: ^\S*$ + addressId: + type: string + example: '7888993' + pattern: ^\S*$ + deleteEndpoints: + title: Delete Endpoints + description: Delete Endpoints. + type: object + properties: + endpointIds: + type: array + items: + type: string + example: + - '1606772208758' + updateEndpoint: + title: Update Endpoint + description: Update Endpoint. + type: object + properties: + action: + $ref: '#/components/schemas/updateAction' + addressId: + type: string + example: '7888993' + addAddressRequest: + title: Add Address Request + description: Add Address Request. + type: object + properties: + id: + type: string + example: home_office + pattern: ^\S*$ + description: + type: string + example: Home office, downstairs + addressLine1: + type: string + example: 14111 NE 145th St + addressLine2: + type: string + example: Apt. 8 + city: + type: string + example: Woodinville + state: + type: string + example: WA + postalCode: + type: string + example: '98072' + country: + type: string + example: US + customerType: + $ref: '#/components/schemas/customerType' + service: + $ref: '#/components/schemas/service' + district: + type: string + example: '' + companyName: + type: string + example: '' + firstName: + type: string + example: '' + lastName: + type: string + example: '' + floor: + type: string + example: '' + title: + type: string + example: '' + county: + type: string + example: '' + std: + type: string + example: '' + description: Subscriber Trunk Dialing + buildingName: + type: string + example: '' + houseNumberLetter: + type: string + example: '' + telephoneBook: + type: string + example: '' + contactFirstName: + type: string + example: '' + contactLastName: + type: string + example: '' + contactPhoneNumber: + type: string + example: '' + province: + type: string + example: '' + buildingLocation: + type: string + example: '' + buildingType: + type: string + example: '' + flatNumber: + type: string + example: '' + flatNumberLetter: + type: string + example: '' + floorLetter: + type: string + example: '' + floorType: + type: string + example: '' + secondaryHouseNumber: + type: string + example: '' + secondaryHouseNumberLetter: + type: string + example: '' + secondaryStreetType: + type: string + example: '' + secondFlatNumber: + type: string + example: '' + secondFlatNumberLetter: + type: string + example: '' + streetSuffix: + type: string + example: '' + streetType: + type: string + example: '' + addressSupplement: + type: string + example: '' + birthDate: + type: string + example: '' + birthPlace: + type: string + example: '' + block: + type: string + example: '' + commune: + type: string + example: '' + description: Community name using local name/spelling + companyLegalName: + type: string + example: '' + companyNameAddition: + type: string + example: '' + companyNumber: + type: string + example: '' + companyType: + type: string + example: '' + contactLanguage: + type: string + example: '' + documentNumber: + type: string + example: '' + door: + type: string + example: '' + email: + type: string + example: '' + entrance: + type: string + example: '' + foreignCity: + type: string + example: '' + foreignCountry: + type: string + example: '' + foreignStreet: + type: string + example: '' + houseNumberAddition: + type: string + example: '' + idNumber: + type: string + example: '' + idType: + type: string + example: '' + inseeCode: + type: string + example: '' + description: >- + is a numerical indexing code used by the French National Institute + for Statistics and Economic Studies + language: + type: string + example: '' + latitude: + type: string + example: '' + listingLanguage: + type: string + example: '' + longitude: + type: string + example: '' + middleName: + type: string + example: '' + municipality: + type: string + example: '' + municipalityCode: + type: string + example: '' + naceCode: + type: string + example: '' + description: Standard European nomenclature of productive economic activities + officialMunicipalityKey: + type: string + example: '' + poBox: + type: string + example: '' + postalDesignation: + type: string + example: '' + prepaidPhonecard: + type: boolean + example: false + description: Is the TN for a a prepaid phonecard? + profession: + type: string + example: '' + ruianAddressCode: + type: string + example: '' + description: RUIAN address format for Czech Republic + ruianBuildingCode: + type: string + example: '' + description: RUIAN address format for Czech Republic + ruianRegionCode: + type: string + example: '' + description: RUIAN address format for Czech Republic + ruianResidenceUnitCode: + type: string + example: '' + description: RUIAN address format for Czech Republic + ruianStreetCode: + type: string + example: '' + description: RUIAN address format for Czech Republic + ruianTownCode: + type: string + example: '' + description: RUIAN address format for Czech Republic + secondLastName: + type: string + example: '' + siretNumber: + type: string + example: '' + description: >- + a 14-digit identifier that includes the SIREN number and an + additional five-digit number that represents the specific location + or establishment of the business + socialSecurityNumber: + type: string + example: '' + streetCode: + type: string + example: '' + taxNumber: + type: string + example: '' + taxOffice: + type: string + example: '' + tranditionalName: + type: string + example: '' + vatNumber: + type: string + example: '' + description: Value Added Tax ID Number + friendlyName: + type: string + example: '' + updateAddressRequest: + title: Update Address Request + description: Update Address Request. + type: object + properties: + addressLine1: + type: string + example: 14024 NE 181st St + description: + type: string + example: Home office, upstairs + notificationsRequest: + title: notifications Request + description: notifications Request. + type: object + properties: + id: + type: string + example: Notification1 + pattern: ^\S*$ + type: + $ref: '#/components/schemas/notificationType' + recipient: + type: string + example: test1@bandwidth.com + password: + type: string + example: '' + username: + type: string + example: '' + updateNotification: + title: notifications Request + description: notifications Request. + type: object + properties: + type: + $ref: '#/components/schemas/notificationType' + recipient: + type: string + example: test1@bandwidth.com + password: + type: string + example: '' + username: + type: string + example: '' + notificationGroupRequest: + title: Notification Groups Request + description: Notification Groups Request. + type: object + properties: + id: + type: string + example: NotificationGroup1 + pattern: ^\S*$ + description: + type: string + example: Notification Group 1 + endpoints: + type: array + items: + type: string + example: + - '48658456485' + notifications: + type: array + items: + type: string + example: + - '85485345848' + updateNotificationGroup: + title: Notification Groups Update Request + description: Notification Groups Update Request. + type: object + properties: + description: + type: string + example: Update Group No. 1 + notificationIdsToAdd: + type: array + items: + type: string + example: + - '85485345848' + notificationIdsToDelete: + type: array + items: + type: string + example: + - '85485342348' + provisioningOrderAddEndpoint: + title: Provisioning Order + description: Provisioning Order. + type: object + properties: + orderId: + type: string + format: uuid + example: 08e0be9a-52fd-45a0-be2e-86835c534aad + updatedBy: + type: string + example: joe@crabshack.com + orderType: + $ref: '#/components/schemas/orderTypeAdd' + orderStatus: + $ref: '#/components/schemas/orderStatus' + acceptedCount: + type: integer + minimum: 0 + example: 1 + invalidCount: + type: integer + minimum: 0 + example: 0 + updated: + type: string + format: date-time + example: '2022-05-18T08:57:04Z' + totalNumber: + type: integer + minimum: 0 + example: 1 + provisioningOrderDeleteEndpoint: + title: Provisioning Order + description: Provisioning Order. + type: object + properties: + orderId: + type: string + format: uuid + example: 08e0be9a-52fd-45a0-be2e-86835c534aad + updatedBy: + type: string + example: joe@crabshack.com + orderType: + $ref: '#/components/schemas/orderTypeDelete' + orderStatus: + $ref: '#/components/schemas/orderStatus' + acceptedCount: + type: integer + minimum: 0 + example: 1 + invalidCount: + type: integer + minimum: 0 + example: 0 + updated: + type: string + format: date-time + example: '2022-05-18T08:57:04Z' + totalNumber: + type: integer + minimum: 0 + example: 1 + provisioningOrderUpdateEndpoint: + title: Provisioning Order + description: Provisioning Order. + type: object + properties: + orderId: + type: string + format: uuid + example: 08e0be9a-52fd-45a0-be2e-86835c534aad + updatedBy: + type: string + example: joe@crabshack.com + orderType: + $ref: '#/components/schemas/orderTypeUpdate' + orderStatus: + $ref: '#/components/schemas/orderStatus' + acceptedCount: + type: integer + minimum: 0 + example: 1 + invalidCount: + type: integer + minimum: 0 + example: 0 + updated: + type: string + format: date-time + example: '2022-05-18T08:57:04Z' + totalNumber: + type: integer + minimum: 0 + example: 1 + listEndpoints: + title: List Endpoints + description: List Endpoints. + type: object + properties: + links: + type: array + items: + $ref: '#/components/schemas/links' + nullable: true + endpoints: + type: array + items: + type: object + properties: + id: + type: string + example: Joe's_Home_tn + accountId: + type: string + example: '5001232' + phoneNumber: + type: string + example: '+13035554321' + pattern: >- + ^(\+\d{1,2}\s?)?1?\-?\.?\s?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$ + name: + type: string + example: Joe's Home + lang: + type: string + example: fr + created: + type: string + example: '2016-06-22T16:33:21.959Z' + format: date-time + updated: + type: string + example: '2016-06-22T16:33:21.959Z' + format: date-time + country: + type: string + example: US + addressId: + type: string + example: '7888993' + endpointResponse: + title: Get Endpoint + description: Get an endpoint. + type: object + properties: + id: + type: string + example: '283746343284623684' + accountId: + type: string + example: '5001232' + phoneNumber: + type: string + example: '+13035554321' + pattern: ^(\+\d{1,2}\s?)?1?\-?\.?\s?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$ + name: + type: string + example: Joe's Home + lang: + type: string + example: fr + created: + type: string + example: '2016-06-22T16:33:21.959Z' + format: date-time + updated: + type: string + example: '2016-06-22T16:33:21.959Z' + format: date-time + country: + type: string + example: US + addressId: + type: string + example: '7888993' + listAddresses: + title: List Addresses + description: List Addresses. + type: object + properties: + links: + type: array + items: + $ref: '#/components/schemas/links' + nullable: true + example: + - href: /relative/uri + rel: RelatedResource + method: GET + addresses: + type: array + items: + type: object + properties: + id: + type: string + example: '7888993' + pattern: ^\S*$ + validationStatus: + $ref: '#/components/schemas/validationStatus' + address: + type: string + example: 4916 NE 145th St + houseNumber: + type: string + example: '14111' + predirectional: + type: string + example: NE + postdirectional: + type: string + example: '' + streetName: + type: string + example: 145th + streetSuffix: + type: string + example: ST + city: + type: string + example: Woodinville + state: + type: string + example: WA + postalCode: + type: string + example: '98072' + country: + type: string + example: US + description: + type: string + example: Home office, downstairs + latitude: + type: number + example: 47.732682 + longitude: + type: number + example: -122.155174 + created: + type: string + format: date-time + example: '2015-03-11T04:09:25.399Z' + updated: + type: string + format: date-time + example: '2016-03-11T04:09:25.399Z' + addressResponse: + title: Address Response + description: Address Response. + type: object + properties: + id: + type: string + example: homeoffice + pattern: ^\S*$ + description: Unique identifier for an address + validationStatus: + $ref: '#/components/schemas/validationStatus' + address: + type: string + example: 14024 NE 181st St + description: The full address + houseNumber: + type: string + example: '14024' + predirectional: + type: string + example: NE + description: >- + A word preceding the street name that indicates the directional + taken by the thoroughfare + postdirectional: + type: string + example: '' + description: >- + A word following the street name that indicates the directional + taken by the thoroughfare from an arbitrary strating point, or the + sector where it is located + streetName: + type: string + example: 181st + streetSuffix: + type: string + example: ST + city: + type: string + example: Woodinville + state: + type: string + example: WA + postalCode: + type: string + example: '98072' + country: + type: string + example: US + description: + type: string + example: Home office, upstairs + latitude: + type: number + example: 47.732682 + longitude: + type: number + example: -122.155174 + created: + type: string + format: date-time + example: '2015-03-11T04:09:25.399Z' + description: when was created + updated: + type: string + format: date-time + example: '2016-03-11T04:09:25.399Z' + description: when was updated last + customerType: + $ref: '#/components/schemas/customerType' + service: + $ref: '#/components/schemas/service' + district: + type: string + example: '' + companyName: + type: string + example: '' + firstName: + type: string + example: '' + lastName: + type: string + example: '' + floor: + type: string + example: '' + title: + type: string + example: '' + county: + type: string + example: '' + std: + type: string + example: '' + description: Subscriber Trunk Dialing + buildingName: + type: string + example: '' + houseNumberLetter: + type: string + example: '' + telephoneBook: + type: string + example: '' + contactFirstName: + type: string + example: '' + contactLastName: + type: string + example: '' + contactPhoneNumber: + type: string + example: '' + province: + type: string + example: '' + buildingLocation: + type: string + example: '' + buildingType: + type: string + example: '' + flatNumber: + type: string + example: '' + flatNumberLetter: + type: string + example: '' + floorLetter: + type: string + example: '' + floorType: + type: string + example: '' + secondaryHouseNumber: + type: string + example: '' + secondaryHouseNumberLetter: + type: string + example: '' + secondaryStreetType: + type: string + example: '' + secondFlatNumber: + type: string + example: '' + secondFlatNumberLetter: + type: string + example: '' + streetType: + type: string + example: '' + addressSupplement: + type: string + example: '' + birthDate: + type: string + example: '' + birthPlace: + type: string + example: '' + block: + type: string + example: '' + commune: + type: string + example: '' + description: Community name using local name/spelling + companyLegalName: + type: string + example: '' + companyNameAddition: + type: string + example: '' + companyNumber: + type: string + example: '' + companyType: + type: string + example: '' + contactLanguage: + type: string + example: '' + documentNumber: + type: string + example: '' + door: + type: string + example: '' + email: + type: string + example: '' + entrance: + type: string + example: '' + foreignCity: + type: string + example: '' + foreignCountry: + type: string + example: '' + foreignStreet: + type: string + example: '' + houseNumberAddition: + type: string + example: '' + idNumber: + type: string + example: '' + idType: + type: string + example: '' + inseeCode: + type: string + example: '' + description: >- + is a numerical indexing code used by the French National Institute + for Statistics and Economic Studies + language: + type: string + example: '' + listingLanguage: + type: string + example: '' + middleName: + type: string + example: '' + municipality: + type: string + example: '' + municipalityCode: + type: string + example: '' + naceCode: + type: string + example: '' + description: Standard European nomenclature of productive economic activities + officialMunicipalityKey: + type: string + example: '' + poBox: + type: string + example: '' + postalDesignation: + type: string + example: '' + prepaidPhonecard: + type: boolean + example: false + description: Is the TN for a a prepaid phonecard? + profession: + type: string + example: '' + ruianAddressCode: + type: string + example: '' + description: RUIAN address format for Czech Republic + ruianBuildingCode: + type: string + example: '' + description: RUIAN address format for Czech Republic + ruianRegionCode: + type: string + example: '' + description: RUIAN address format for Czech Republic + ruianResidenceUnitCode: + type: string + example: '' + description: RUIAN address format for Czech Republic + ruianStreetCode: + type: string + example: '' + description: RUIAN address format for Czech Republic + ruianTownCode: + type: string + example: '' + description: RUIAN address format for Czech Republic + secondLastName: + type: string + example: '' + siretNumber: + type: string + example: '' + description: >- + a 14-digit identifier that includes the SIREN number and an + additional five-digit number that represents the specific location + or establishment of the business + socialSecurityNumber: + type: string + example: '' + streetCode: + type: string + example: '' + taxNumber: + type: string + example: '' + taxOffice: + type: string + example: '' + tranditionalName: + type: string + example: '' + vatNumber: + type: string + example: '' + description: Value Added Tax ID Number + friendlyName: + type: string + example: '' + uicBillingNumber: + type: string + example: '' + listNotifications: + title: List Notifications + description: List Notifications. + type: object + properties: + notifications: + type: array + items: + type: object + properties: + id: + type: string + example: '134314' + pattern: ^\S*$ + accountId: + type: string + example: '6454565654' + activated: + type: string + format: date-time + example: '2023-01-22T08:15:20.814Z' + created: + type: string + format: date-time + example: '2023-01-22T08:15:20.814Z' + description: + type: string + example: Notification 1 + groupCount: + type: integer + minimum: 0 + example: 1 + username: + type: string + example: joejoe + recipient: + type: string + example: joe@c.com + type: + $ref: '#/components/schemas/notificationType' + updated: + type: string + format: date-time + example: '2023-01-22T08:15:20.814Z' + updatedBy: + type: string + example: joe22 + notificationResponse: + title: Notification Response + description: Notification Response. + type: object + properties: + id: + type: string + example: '343434' + pattern: ^\S*$ + accountId: + type: string + example: '4545454' + activated: + type: string + format: date-time + example: '2023-01-22T08:15:20.814Z' + created: + type: string + format: date-time + example: '2023-01-22T08:15:20.814Z' + description: + type: string + example: Notification 2 + username: + type: string + example: '' + recipient: + type: string + example: joe@f.com + type: + $ref: '#/components/schemas/notificationType' + updated: + type: string + format: date-time + example: '2023-01-22T08:15:20.814Z' + updatedBy: + type: string + example: username 1 + getNotification: + title: Get Notification + description: Get Notification. + type: object + properties: + id: + type: string + example: '343434' + pattern: ^\S*$ + accountId: + type: string + example: '566565' + activated: + type: string + format: date-time + example: '2023-01-22T08:15:20.814Z' + created: + type: string + format: date-time + example: '2023-01-22T08:15:20.814Z' + description: + type: string + example: Notification 3 + username: + type: string + example: d + recipient: + type: string + example: recipient@email.com + type: + $ref: '#/components/schemas/notificationType' + updated: + type: string + format: date-time + example: '2023-01-22T08:15:20.814Z' + updatedBy: + type: string + example: joe33 + listNotificationGroups: + title: Get Notification Groups + description: Get Notification Groups. + type: object + properties: + notificationGroups: + type: array + items: + type: object + properties: + id: + type: string + example: '4334343' + pattern: ^\S*$ + accountId: + type: string + example: '34343434' + created: + type: string + format: date-time + example: '2023-01-22T09:33:36.208Z' + description: + type: string + example: Notification Group 1 + endpointCount: + type: integer + minimum: 0 + example: 0 + endpointIds: + type: array + items: + type: string + example: + - '793629347' + - '793629324' + notificationIds: + type: array + items: + type: string + example: + - '34343434' + updated: + type: string + format: date-time + example: '2023-01-22T09:33:36.208Z' + updatedBy: + type: string + example: Joe + notificationGroups: + title: Notification Group + description: Notification Group. + type: object + properties: + id: + type: string + example: '343434' + pattern: ^\S*$ + accountId: + type: string + example: '3434343' + created: + type: string + format: date-time + example: '2023-01-22T10:12:17.506Z' + description: + type: string + example: Notification Group 3 + endpointCount: + type: integer + example: 1 + endpointIds: + type: array + items: + type: string + example: + - '2243432443' + notificationIds: + type: array + items: + type: string + example: + - '2243432443' + updated: + type: string + format: date-time + example: '2023-01-22T10:12:17.506Z' + updatedBy: + type: string + example: JJ + listOrders: + title: Get Orders + description: Get Orders. + type: object + properties: + links: + type: array + items: + $ref: '#/components/schemas/links' + nullable: true + orders: + type: array + items: + type: object + properties: + id: + type: string + format: uuid + example: 123e4567-e89b-12d3-a456-426614174003 + pattern: ^\S*$ + type: + $ref: '#/components/schemas/orderTypeAdd' + status: + $ref: '#/components/schemas/orderStatus' + acceptedCount: + type: integer + minimum: 0 + example: 1 + invalidCount: + type: integer + minimum: 0 + example: 0 + updated: + type: string + format: date-time + example: '2022-05-18T08:57:04Z' + totalNumber: + type: integer + minimum: 0 + example: 1 + listOrderDetails: + title: List Order Details + description: List Order Details. + type: object + properties: + links: + type: array + items: + $ref: '#/components/schemas/links' + nullable: true + id: + type: string + format: uuid + example: 08e0be9a-52fd-45a0-be2e-86835c534aad + pattern: ^\S*$ + type: + $ref: '#/components/schemas/orderTypeAdd' + status: + $ref: '#/components/schemas/orderStatus' + acceptedCount: + type: integer + minimum: 0 + example: 1 + invalidCount: + type: integer + example: 0 + updated: + type: string + format: date-time + example: '2022-05-18T08:57:04Z' + totalNumber: + type: integer + minimum: 0 + example: 1 + endpoints: + type: array + items: + type: object + properties: + id: + type: string + example: '4525324234324' + pattern: ^\S*$ + updatedBy: + type: string + example: JJ + status: + $ref: '#/components/schemas/endpointStatus' + error: + type: string + example: A reason + errorCode: + type: string + example: XXX + listOrderHistory: + title: List Order History + description: List Order History. + type: object + properties: + links: + type: array + items: + $ref: '#/components/schemas/links' + nullable: true + id: + type: string + format: uuid + example: 08e0be9a-52fd-45a0-be2e-86845c534aad + pattern: ^\S*$ + type: + $ref: '#/components/schemas/orderTypeUpdate' + status: + $ref: '#/components/schemas/orderStatus' + created: + type: string + format: date-time + example: '2022-05-18T08:57:04Z' + orderHistory: + type: array + items: + type: object + properties: + status: + $ref: '#/components/schemas/orderStatus' + updated: + type: string + format: date-time + example: '2022-05-18T08:57:04Z' + updatedBy: + type: string + example: JJ + note: + type: string + example: message + genericError: + title: Generic Error + type: object + properties: + errors: + type: array + items: + $ref: '#/components/schemas/error' + nullable: true + required: + - errors + links: + title: Links + type: object + properties: + href: + type: string + description: URI of the link. + example: /relative/uri + rel: + type: string + description: Specifies the relationship between this link and the resource. + example: RelatedResource + method: + type: string + description: HTTP method to be used. + example: GET + error: + title: Error + type: object + properties: + id: + type: string + description: A unique identifier for this particular instance of this problem. + example: optional-error-id + pattern: ^\S*$ + type: + type: string + description: >- + A short, human-readable summary of the problem that SHOULD NOT + change from occurrence to occurrence of the problem. + example: REQUEST_ERROR + description: + type: string + description: >- + A human-readable explanation that SHOULD be specific to this + occurrence of the problem. + example: There was an issue with a field in your request body + code: + type: integer + format: int32 + description: >- + An application-specific error code for services with extensive error + scenarios to supplement `description`. + minimum: 4 + example: 51130 + source: + $ref: '#/components/schemas/errorSource' + meta: + $ref: '#/components/schemas/errorMeta' + required: + - description + errorSource: + title: Error Source + type: object + properties: + parameter: + type: string + description: A string indicating which URI query parameter caused the error. + example: someParameter + field: + type: string + description: A string indicating which request body field caused the error. + example: someField + header: + type: string + description: A string indicating which header field caused the error. + example: someHeader + reference: + type: string + description: >- + A string that references a resource ID or path to the resource (or + non-existent resource) causing the error. + example: /some/reference + errorMeta: + title: Error Meta + type: object + properties: + message: + type: string + example: An optional metadata field + service: + type: string + enum: + - ES + - DS + - ESDS + example: ES + description: Emergency services, directory services, or both + customerType: + type: string + enum: + - RES + - BUS + example: BUS + description: Residential or Business + updateAction: + type: string + enum: + - PROVISION + - UNPROVISION + example: PROVISION + notificationType: + type: string + enum: + - HTTP + - SMS + - EMAIL + - VOICE + example: EMAIL + orderTypeAdd: + type: string + enum: + - ADD_ENDPOINTS + - UPDATE_ENDPOINTS + - DELETE_ENDPOINTS + example: ADD_ENDPOINTS + orderTypeUpdate: + type: string + enum: + - ADD_ENDPOINTS + - UPDATE_ENDPOINTS + - DELETE_ENDPOINTS + example: UPDATE_ENDPOINTS + orderTypeDelete: + type: string + enum: + - ADD_ENDPOINTS + - UPDATE_ENDPOINTS + - DELETE_ENDPOINTS + example: DELETE_ENDPOINTS + orderStatus: + type: string + enum: + - RECEIVED + - PROCESSING + - COMPLETED + - PARTIAL + - FAILED + example: COMPLETED + validationStatus: + type: string + enum: + - VALID + - INVALID + - UNVALIDATED + example: INVALID + description: Address is valid and represents a location + endpointStatus: + type: string + enum: + - INPROGRESS + - SUCCESS + - ERROR + example: INPROGRESS + region: + type: string + enum: + - NA + - ROW + example: NA + requestBodies: + addEndpoints: + content: + application/json: + schema: + $ref: '#/components/schemas/addEndpoints' + description: Provision new endpoints and link them to an address using address id. + updateEndpoints: + content: + application/json: + schema: + $ref: '#/components/schemas/updateEndpoints' + description: >- + Update endpoints context, associate (PROVISION) or dissociate + (UNPROVISION) address using an address id. + updateEndpoint: + content: + application/json: + schema: + $ref: '#/components/schemas/updateEndpoint' + description: >- + Update endpoint context, associate (PROVISION) or dissociate + (UNPROVISION) address using an address id. + deleteEndpoints: + content: + application/json: + schema: + $ref: '#/components/schemas/deleteEndpoints' + description: Delete endpoints. + addAddress: + content: + application/json: + schema: + $ref: '#/components/schemas/addAddressRequest' + examples: + usaAddAddressRequest: + $ref: '#/components/examples/usaAddAddressRequest' + gbrAddAddressRequest: + $ref: '#/components/examples/gbrAddAddressRequest' + description: Add addresses, pick an id or leave id out to autogenerate one. + updateAddress: + content: + application/json: + schema: + $ref: '#/components/schemas/updateAddressRequest' + addNotification: + content: + application/json: + schema: + $ref: '#/components/schemas/notificationsRequest' + updateNotification: + content: + application/json: + schema: + $ref: '#/components/schemas/updateNotification' + addNotificationGroup: + content: + application/json: + schema: + $ref: '#/components/schemas/notificationGroupRequest' + updateNotificationGroup: + content: + application/json: + schema: + $ref: '#/components/schemas/updateNotificationGroup' + responses: + provisioningOrderAddEndpoint: + description: Accepted. + content: + application/json: + schema: + $ref: '#/components/schemas/provisioningOrderAddEndpoint' + provisioningOrderUpdateEndpoint: + description: Accepted. + content: + application/json: + schema: + $ref: '#/components/schemas/provisioningOrderUpdateEndpoint' + provisioningOrderDeleteEndpoint: + description: Accepted. + content: + application/json: + schema: + $ref: '#/components/schemas/provisioningOrderDeleteEndpoint' + listEndpoints: + description: OK. + content: + application/json: + schema: + $ref: '#/components/schemas/listEndpoints' + examples: + listEndpoints: + $ref: '#/components/examples/listEndpoints' + getEndpoint: + description: OK. + content: + application/json: + schema: + $ref: '#/components/schemas/endpointResponse' + listAddresses: + description: OK. + content: + application/json: + schema: + $ref: '#/components/schemas/listAddresses' + examples: + listAddresses: + $ref: '#/components/examples/listAddresses' + addAddressResponse: + description: Created. + content: + application/json: + schema: + $ref: '#/components/schemas/addressResponse' + examples: + usaAddressResponse: + $ref: '#/components/examples/usaAddressResponse' + gbrAddressResponse: + $ref: '#/components/examples/gbrAddressResponse' + getAddress: + description: OK. + content: + application/json: + schema: + $ref: '#/components/schemas/addressResponse' + examples: + usaAddressResponse: + $ref: '#/components/examples/usaAddressResponse' + gbrAddressResponse: + $ref: '#/components/examples/gbrAddressResponse' + noContentResponse: + description: No Content. + updateAddress: + description: OK. + content: + application/json: + schema: + $ref: '#/components/schemas/addressResponse' + examples: + usaAddressResponse: + $ref: '#/components/examples/usaAddressResponse' + gbrAddressResponse: + $ref: '#/components/examples/gbrAddressResponse' + listNotifications: + description: OK. + content: + application/json: + schema: + $ref: '#/components/schemas/listNotifications' + addNotification: + description: Created. + content: + application/json: + schema: + $ref: '#/components/schemas/notificationResponse' + getNotification: + description: OK. + content: + application/json: + schema: + $ref: '#/components/schemas/getNotification' + updateNotification: + description: OK. + content: + application/json: + schema: + $ref: '#/components/schemas/notificationResponse' + listNotificationGroups: + description: OK. + content: + application/json: + schema: + $ref: '#/components/schemas/listNotificationGroups' + getNotificationGroup: + description: OK. + content: + application/json: + schema: + $ref: '#/components/schemas/notificationGroups' + addNotificationGroup: + description: Created. + content: + application/json: + schema: + $ref: '#/components/schemas/notificationGroups' + updateNotificationGroup: + description: OK. + content: + application/json: + schema: + $ref: '#/components/schemas/notificationGroups' + listOrders: + description: OK. + content: + application/json: + schema: + $ref: '#/components/schemas/listOrders' + examples: + listOrders: + $ref: '#/components/examples/listOrders' + listOrderDetails: + description: OK. + content: + application/json: + schema: + $ref: '#/components/schemas/listOrderDetails' + examples: + listOrderDetails: + $ref: '#/components/examples/listOrderDetails' + listOrderHistory: + description: OK. + content: + application/json: + schema: + $ref: '#/components/schemas/listOrderHistory' + examples: + listOrderHistory: + $ref: '#/components/examples/listOrderHistory' + badRequestError: + description: Bad Request. + content: + application/json: + schema: + $ref: '#/components/schemas/genericError' + examples: + badRequestErrorExample: + $ref: '#/components/examples/badRequestErrorExample' + notFoundError: + description: Not Found. + content: + application/json: + schema: + $ref: '#/components/schemas/genericError' + examples: + notFoundErrorExample: + $ref: '#/components/examples/notFoundErrorExample' + notAllowedError: + description: Method Not Allowed. + content: + application/json: + schema: + $ref: '#/components/schemas/genericError' + examples: + notAllowedErrorExample: + $ref: '#/components/examples/notAllowedErrorExample' + tooManyRequestsError: + description: Too Many Requests. + content: + application/json: + schema: + $ref: '#/components/schemas/genericError' + examples: + tooManyRequestsErrorExample: + $ref: '#/components/examples/tooManyRequestsErrorExample' + internalServerError: + description: Internal Server Error. + content: + application/json: + schema: + $ref: '#/components/schemas/genericError' + examples: + internalServerErrorExample: + $ref: '#/components/examples/internalServerErrorExample' + forbiddenError: + description: Forbidden. + content: + application/json: + schema: + $ref: '#/components/schemas/genericError' + examples: + forbiddenErrorExample: + $ref: '#/components/examples/forbiddenErrorExample' + unauthorizedError: + description: Unauthorized. + content: + application/json: + schema: + $ref: '#/components/schemas/genericError' + examples: + unauthorizedErrorExample: + $ref: '#/components/examples/unauthorizedErrorExample' + parameters: + endpointId: + name: endpointId + in: path + required: true + schema: + type: string + description: String that identifies an endpoint. + addressIdQuery: + name: addressId + in: query + required: false + schema: + type: string + description: Unique ID for an address. + limit: + name: limit + in: query + required: false + schema: + type: string + description: Limit the number of returned record. + orderId: + name: orderId + in: path + required: true + schema: + type: string + description: UUID for orders. + notificationId: + name: notificationId + in: path + required: true + schema: + type: string + description: Unique emergency notification ID. + groupId: + name: groupId + in: path + required: true + schema: + type: integer + description: Unique emergency notification group ID. + orderType: + name: orderType + in: query + required: false + schema: + $ref: '#/components/schemas/orderTypeAdd' + description: Emergency order type filter. + addressId: + name: addressId + in: path + required: true + schema: + type: string + description: Address Id. + offset: + name: offset + in: query + description: Position in the dataset of a particular record to start the response. + schema: + type: integer + example: 100 + region: + name: region + in: query + required: false + schema: + $ref: '#/components/schemas/region' + description: List resources filtered by region + examples: + listEndpoints: + summary: Get Endpoints + value: + links: + - href: /endpoints + rel: self + method: GET + - href: /endpoints + rel: first + method: GET + - href: /endpoints?offset=99000&limit=1000 + rel: last + method: GET + - href: '' + rel: prev + method: GET + - href: /endpoints?offset=1000&limit=1000 + rel: next + method: GET + endpoints: + - id: '82734632846238746' + accountId: '5001232' + phoneNumber: '+13035554321' + name: Joe's Home + lang: fr + created: '2016-06-22T16:33:21.959Z' + updated: '2016-06-22T16:33:21.959Z' + country: US + addressId: '7888993' + - id: JDF9223kslemm23432 + accountId: '5001232' + phoneNumber: '+13035554322' + name: Joe's Office + lang: en + created: '2015-03-11T04:09:25.399Z' + updated: '2016-06-22T16:33:27.980Z' + country: US + addressId: cafoffice + listAddresses: + summary: List Addresses + value: + links: + - href: /addresses + rel: self + method: GET + - href: /addresses + rel: first + method: GET + - href: /addresses?offset=99000&limit=1000 + rel: last + method: GET + - href: '' + rel: prev + method: GET + - href: /addresses?offset=1000&limit=1000 + rel: next + method: GET + addresses: + - id: '7888993' + validationStatus: VALID + address: 4916 NE 145th St + houseNumber: '4916' + predirectional: NE + postdirectional: '' + streetName: 145th + streetSuffix: ST + city: Woodinville + state: WA + postalCode: '98072' + country: US + description: Home office, downstairs + latitude: 47.732682 + longitude: -122.155174 + created: '2015-03-11T04:09:25.399Z' + updated: '2016-06-22T16:33:27.980Z' + - id: cafoffice + validationStatus: INVALID + address: 4916 S Angeline St + houseNumber: '4916' + predirectional: S + postdirectional: '' + streetName: Angeline + streetSuffix: ST + city: Seattle + state: WA + postalCode: '98118' + country: US + description: Office by cafeteria + latitude: 47.560154 + longitude: -122.271105 + created: '2015-03-11T04:09:28.819Z' + updated: '2016-06-22T16:33:27.980Z' + usaAddAddressRequest: + summary: Add a US Address + value: + id: home_office + description: Home office, downstairs + addressLine1: 14111 NE 145th St + addressLine2: Apt. 8 + city: Woodinville + state: WA + postalCode: '98072' + country: US + gbrAddAddressRequest: + summary: Add a GBR Address + value: + id: london_office + friendlyName: London office + companyName: Jones + service: ES + customerType: BUS + addressLine1: 102-104 Albert Street + city: London + postalCode: NW1 7NE + country: BGR + usaAddressResponse: + summary: USA Address Response + value: + id: homeoffice + validationStatus: INVALID + address: 14024 NE 181st St + houseNumber: '14024' + predirectional: NE + postdirectional: '' + streetName: 181st + streetSuffix: ST + city: Woodinville + state: WA + postalCode: '98072' + country: US + description: Home office, upstairs + latitude: 47.732682 + longitude: -122.155174 + created: '2015-03-11T04:09:25.399Z' + updated: '2016-03-11T04:09:25.399Z' + gbrAddressResponse: + summary: GBR Address Response + value: + id: london_office_01 + validationStatus: UNVALIDATED + friendlyName: London office + customerType: BUS + service: ES + houseNumber: 102-104 + streetName: ALBERT STREET + streetType: STREET + city: LONDON + postalCode: NW1 7NE + country: GBR + created: '2023-09-26T17:37:10.432Z' + updated: '2023-09-26T17:37:10.432Z' + listOrders: + summary: Get Orders + value: + links: + - href: /orders + rel: self + method: GET + - href: /orders + rel: first + method: GET + - href: /orders?offset=99000&limit=1000 + rel: last + method: GET + - href: /orders + rel: prev + method: GET + - href: /orders?offset=1000&limit=1000 + rel: next + method: GET + orders: + - id: 08e0be9a-52fd-45a0-be2e-86825c534aad + type: ADD_ENDPOINTS + status: COMPLETED + acceptedCount: 1 + invalidCount: 0 + updated: '2022-05-18T08:57:04Z' + totalNumber: 1 + - id: 08e0be9a-52fd-45a0-be2e-96835c534aad + type: UPDATE_ENDPOINTS + status: COMPLETED + acceptedCount: 3 + invalidCount: 0 + updated: '2022-05-18T08:57:04Z' + totalNumber: 3 + listOrderDetails: + summary: List Order Details + value: + links: + - href: /orders/details/08e0be9a-52fd-45a0-be2e-86825c537aad + rel: self + method: GET + - href: /orders/details/08e0be9a-52fd-45a0-be2e-86825c537aad + rel: first + method: GET + - href: >- + /orders/details/08e0be9a-52fd-45a0-be2e-86825c537aad?offset=99000&limit=1000 + rel: last + method: GET + - href: /orders/details/08e0be9a-52fd-45a0-be2e-86825c537aad + rel: prev + method: GET + - href: >- + /orders/details/08e0be9a-52fd-45a0-be2e-86825c537aad?offset=1000&limit=1000 + rel: next + method: GET + id: 08e0be9a-52fd-45a0-be2e-86825c537aad + type: DELETE_ENDPOINTS + status: COMPLETED + acceptedCount: 1 + invalidCount: 0 + updated: '2022-05-18T08:57:04Z' + totalNumber: 1 + endpoints: + - id: '263946349349374' + updatedBy: JJ + status: INPROGRESS + error: A reason + errorCode: XXX + - id: '2945239843274934' + updatedBy: JJ + status: SUCCESS + error: A reason + errorCode: DDD + listOrderHistory: + summary: List Order History + value: + id: 08e0be9a-52fd-45a0-be2e-86825c734aad + type: ADD_ENDPOINTS + status: COMPLETED + created: '2022-01-18T08:57:04Z' + orderHistory: + - status: RECEIVED + updatedBy: JJ + updated: '2022-05-18T08:57:04Z' + note: message + - status: PROCESSING + updatedBy: JJ + updated: '2022-05-18T08:58:04Z' + note: message + - status: COMPLETED + updatedBy: JJ + updated: '2022-05-18T08:59:04Z' + note: message + badRequestErrorExample: + summary: An example of a generic Bad Request Error + value: + errors: + - id: optional-error-id + type: bad-request + description: There was an issue with your request. + code: 205617 + pattern: ^\S*$ + unauthorizedErrorExample: + summary: An example of a generic Unauthorized Error + value: + errors: + - id: optional-error-id + type: authentication-credentials + description: Invalid or missing credentials. + code: 206401 + pattern: ^\S*$ + forbiddenErrorExample: + summary: An example of a generic Unauthorized Error + value: + errors: + - id: optional-error-id + type: resource-permissions + description: User does not have permissions to access this resource. + code: 109107 + notFoundErrorExample: + summary: An example of a generic Not Found Error + value: + errors: + - id: optional-error-id + type: resource-not-found + description: The resource specified cannot be found. + code: 50420 + notAllowedErrorExample: + summary: An example of a generic Not Allowed Error + value: + errors: + - id: optional-error-id + type: http-method-not-supported + description: The HTTP method used is not supported by this resource. + code: 205621 + meta: + method: TRACE + tooManyRequestsErrorExample: + summary: An example of a generic Too Many Requests Error + value: + errors: + - id: optional-error-id + type: rate-limiting + description: >- + Rate limit exceeded. Wait for the time specified in the + 'Retry-After' header before sending another request. + code: 32002 + internalServerErrorExample: + summary: An example of a generic Internal Server Error + value: + errors: + - id: optional-error-id + type: internal-server-error + description: >- + Unexpected internal server error. Contact Bandwidth Customer + Support if this problem persists. + code: 32030 + securitySchemes: + Basic: + type: http + scheme: basic + description: >- + Basic authentication is a simple authentication scheme built into the + HTTP protocol. To use it, send your HTTP requests with an Authorization + header that contains the word Basic followed by a space and a + base64-encoded string `username:password`. + + Example: `Authorization: Basic ZGVtbZpwQDU1dzByZA==` + Token: + type: http + scheme: bearer + bearerFormat: JWT + ApiKey: + type: apiKey + in: header + name: apikey +security: + - Basic: [] + - Token: [] + - ApiKey: [] +tags: + - name: Endpoints + - name: Addresses + - name: Notifications + - name: Notification Groups + - name: Orders diff --git a/site/src/pages/apis/emergency-provisioning.js b/site/src/pages/apis/emergency-provisioning.js new file mode 100644 index 000000000..20e70546d --- /dev/null +++ b/site/src/pages/apis/emergency-provisioning.js @@ -0,0 +1,16 @@ +import React from 'react'; +import Layout from '@theme/Layout'; +import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; +import ApiReference from '@site/src/components/ApiReference'; + +export default function ApiReferencePage() { + const {siteConfig} = useDocusaurusContext(); + return ( + + + + ); +} diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 000000000..fb57ccd13 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,4 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + +