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://api.bandwidth.com/api/v2`
  contact:
    email: support@bandwidth.com
    name: Bandwidth
    url: https://support.bandwidth.com
servers:
  - url: https://api.bandwidth.com/api/v2
paths:
  /accounts/{accountId}/emergency/endpoints:
    get:
      summary: List Endpoints
      operationId: listAllEndpoints
      description: List all emergency provisioned endpoints.
      tags:
        - Endpoints
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/callerId'
        - $ref: '#/components/parameters/addressIdQuery'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offset'
        - $ref: '#/components/parameters/region'
        - $ref: '#/components/parameters/phoneNumber'
      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/accountId'
        - $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. Only supported in the North America (NA) region.
      tags:
        - Endpoints
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/regionNa'
      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/accountId'
        - $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'
  /accounts/{accountId}/emergency/endpoints/{endpointId}:
    get:
      summary: Get Endpoint
      operationId: getEndpoint
      description: Get an endpoint.
      tags:
        - Endpoints
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $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: Update an endpoint. Only supported in the North America (NA) region.
      tags:
        - Endpoints
      requestBody:
        $ref: '#/components/requestBodies/updateEndpoint'
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/endpointId'
        - $ref: '#/components/parameters/regionNa'
      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/accountId'
        - $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'
  /accounts/{accountId}/emergency/addresses:
    get:
      summary: List Addresses
      operationId: listAddresses
      description: List all emergency addresses.
      tags:
        - Addresses
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/externalId'
        - $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/accountId'
        - $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'
  /accounts/{accountId}/emergency/addresses/{addressId}:
    get:
      summary: Get Address
      operationId: getAddress
      description: Get an emergency address.
      tags:
        - Addresses
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/addressId'
        - $ref: '#/components/parameters/region'
        - $ref: '#/components/parameters/allAddresses'
      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. Only supported in the North America (NA)
        region.
      tags:
        - Addresses
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/addressId'
        - $ref: '#/components/parameters/regionNa'
      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. Only supported in the North America (NA)
        region.
      tags:
        - Addresses
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/addressId'
        - $ref: '#/components/parameters/regionNa'
      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'
  /accounts/{accountId}/emergency/notifications:
    get:
      summary: List Notifications
      operationId: listNotifications
      description: List all emergency notifications. (North America Only)
      tags:
        - Notifications
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $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. (North America Only)
      tags:
        - Notifications
      parameters:
        - $ref: '#/components/parameters/accountId'
      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'
  /accounts/{accountId}/emergency/notifications/{notificationId}:
    get:
      summary: Get Notification
      operationId: getNotification
      description: Get an emergency notification. (North America Only)
      tags:
        - Notifications
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $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. (North America Only)
      tags:
        - Notifications
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $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. (North America Only)
      tags:
        - Notifications
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $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'
  /accounts/{accountId}/emergency/notificationGroups:
    get:
      summary: List Notification Groups
      operationId: listNotificationsGroups
      description: List emergency notification groups. (North America Only)
      tags:
        - Notification Groups
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $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. (North America Only)
      tags:
        - Notification Groups
      parameters:
        - $ref: '#/components/parameters/accountId'
      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'
  /accounts/{accountId}/emergency/notificationGroups/{groupId}:
    get:
      summary: Get Notification Group
      operationId: getNotificationGroup
      description: Get emergency notification group. (North America Only)
      tags:
        - Notification Groups
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $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. (North America Only)
      tags:
        - Notification Groups
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $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. (North America Only)
      tags:
        - Notification Groups
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $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'
  /accounts/{accountId}/emergency/orders:
    get:
      summary: List Orders
      operationId: listOrders
      description: List all emergency orders.
      tags:
        - Orders
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $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'
  /accounts/{accountId}/emergency/orders/{orderId}/details:
    get:
      summary: Get Order Details
      operationId: getOrderDetails
      description: Get emergency order details.
      tags:
        - Orders
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $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'
  /accounts/{accountId}/emergency/orders/{orderId}/history:
    get:
      summary: Get Order History
      operationId: getOrderHistory
      description: Get emergency order History.
      tags:
        - Orders
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $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:
    addEndpointsNorthAmericaBase:
      title: Add North America Endpoints
      description: Add North America Endpoints.
      type: object
      properties:
        endpoints:
          type: array
          items:
            type: object
            properties:
              phoneNumber:
                type: string
                example: '+15555555555'
                pattern: ^\+(\d{11})$
              name:
                type: string
                example: Caller Name
              lang:
                type: string
                default: en
                enum:
                  - en
                  - fr
                example: en
              country:
                type: string
                example: USA
            required:
              - phoneNumber
              - name
              - country
          minItems: 1
          maxItems: 5000
    addStandardNorthAmericaEndpointsWithAddressId:
      title: Add North America Endpoints With Address ID (STANDARD)
      description: Add Standard North America Endpoints With Address ID.
      type: object
      allOf:
        - $ref: '#/components/schemas/addEndpointsNorthAmericaBase'
        - properties:
            endpoints:
              items:
                properties:
                  addressId:
                    type: string
                    example: '7888993'
                    pattern: ^\S*$
                required:
                  - addressId
    addNomadicNorthAmericaEndpointsWithAddressId:
      title: Add North America Endpoints With Address ID (NOMADIC)
      description: Add Nomadic North America Endpoints With Address ID.
      type: object
      allOf:
        - $ref: '#/components/schemas/addEndpointsNorthAmericaBase'
        - properties:
            endpoints:
              items:
                properties:
                  id:
                    type: string
                    example: '7888993'
                    pattern: ^\S*$
                  addressId:
                    type: string
                    example: '7888993'
                    pattern: ^\S*$
                required:
                  - id
                  - addressId
    addStandardNorthAmericaEndpointsWithFullAddress:
      title: Add North America Endpoints With Full Address (STANDARD)
      description: Add Standard North America Endpoints With Full Address.
      type: object
      allOf:
        - $ref: '#/components/schemas/addEndpointsNorthAmericaBase'
        - properties:
            endpoints:
              type: array
              items:
                type: object
                properties:
                  address:
                    $ref: '#/components/schemas/addNorthAmericaAddressRequest'
              required:
                - address
    addNomadicNorthAmericaEndpointsWithFullAddress:
      title: Add North America Endpoints With Full Address (NOMADIC)
      description: Add Nomadic North America Endpoints With Full Address.
      type: object
      allOf:
        - $ref: '#/components/schemas/addEndpointsNorthAmericaBase'
        - properties:
            endpoints:
              items:
                properties:
                  id:
                    type: string
                    example: '7888993'
                    pattern: ^\S*$
                  address:
                    $ref: '#/components/schemas/addNorthAmericaAddressRequest'
                required:
                  - id
                  - address
    addEndpointsRowBase:
      title: Add Rest of World Endpoints
      description: Add Rest of World Endpoints.
      type: object
      properties:
        endpoints:
          type: array
          items:
            type: object
            properties:
              phoneNumber:
                type: string
                example: '+446175551212'
              name:
                type: string
                example: Caller Name
              customerType:
                $ref: '#/components/schemas/customerType'
              countrySpecificFields:
                type: object
                properties:
                  contactLanguage:
                    $ref: '#/components/schemas/contactLanguage'
                  listingLanguage:
                    $ref: '#/components/schemas/listingLanguage'
                  vatNumber:
                    type: string
                    example: '12345'
                    maxLength: 50
                    description: >-
                      The VAT number for the Spain Address. Required & Supported
                      for Spain only.
            required:
              - phoneNumber
              - name
          minItems: 1
          maxItems: 5000
    addRowEndpointsWithAddressId:
      title: Add Rest of World Endpoints With Address ID
      description: Add Rest of World Endpoints With Address ID.
      type: object
      allOf:
        - $ref: '#/components/schemas/addEndpointsRowBase'
        - properties:
            endpoints:
              type: array
              items:
                type: object
                properties:
                  addressId:
                    type: string
                    example: '7888993'
                    pattern: ^\S*$
                required:
                  - addressId
    addRowEndpointsWithFullAddress:
      title: Add Rest of World Endpoints With Full Address
      description: Add Rest of World Endpoints With Full Address.
      type: object
      allOf:
        - $ref: '#/components/schemas/addEndpointsRowBase'
        - properties:
            endpoints:
              type: array
              items:
                type: object
                properties:
                  address:
                    $ref: '#/components/schemas/addRowAddressRequest'
                required:
                  - address
    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*$
              name:
                type: string
                example: Caller Name
              lang:
                type: string
                example: en
                default: en
                enum:
                  - en
                  - fr
                description: Optional language field. Default is "en".
              phoneNumber:
                type: string
                example: '+15555555555'
                pattern: ^\+(\d{11})$
                description: Phone number can only be updated for Nomadic Endpoints
          minItems: 1
          maxItems: 5000
    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'
    addNorthAmericaAddressRequest:
      title: Add North America Address Request
      description: Add North America 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'
        postCode:
          type: string
          example: '98072'
        country:
          type: string
          example: US
      required:
        - addressLine1
        - city
        - state
        - postalCode
        - country
    addRowAddressRequest:
      title: Add Rest of World Address Request
      description: Add Rest of World Address Request.
      type: object
      properties:
        id:
          type: string
          example: home_office
          pattern: ^\S*$
        addressLine1:
          type: string
          example: 222 Bishopsgate
        addressLine2:
          type: string
          example: ''
        cityOrLocality:
          type: string
          example: London
        postCode:
          type: string
          example: EC2M 4QD
        postalCode:
          type: string
          example: EC2M 4QD
        countryCodeA3:
          type: string
          example: GBR
        officialMunicipalityKey:
          type: string
          example: '12345'
          description: >-
            The official municipality key for the address. Required & Supported
            for Poland only.
        block:
          type: string
          example: '12345'
          description: The block for the address. Required & Supported for Poland only.
      required:
        - addressLine1
        - cityOrLocality
        - postCode
        - countryCodeA3
    updateAddressRequest:
      title: Update Address Request
      description: Update Address Request. Supported for North America Only
      type: object
      properties:
        addressLine1:
          type: string
          example: 14024 NE 181st St
        addressLine2:
          type: string
          example: Apt. 8
        city:
          type: string
          example: Woodinville
        state:
          type: string
          example: WA
        postalCode:
          type: string
          example: '98072'
        postCode:
          type: string
          example: '98072'
        country:
          type: string
          example: USA
        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'
    endpointProvisioningOrder:
      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
        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'
              provisioningStatus:
                type: string
                enum:
                  - PROVISIONED
                  - NEEDS UPDATE
                  - PRE-PROVISIONED
                example: PROVISIONED
    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'
        provisioningStatus:
          type: string
          enum:
            - PROVISIONED
            - NEEDS UPDATE
            - PRE-PROVISIONED
          example: PROVISIONED
    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
              addressLine1:
                type: string
                example: 4916 NE 145th St
              addressLine2:
                type: string
                example: Apt. 8
              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
              formattedAddress:
                $ref: '#/components/schemas/formattedAddress'
              latitude:
                type: string
                example: '47.732682'
              longitude:
                type: string
                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'
    listAddressesWithEndpointCount:
      title: List Addresses With Endpoint Count
      description: List Addresses With Endpoint Count.
      type: object
      allOf:
        - $ref: '#/components/schemas/listAddresses'
        - properties:
            endpointCount:
              type: integer
              example: 1
              description: The number of endpoints associated with the address.
    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
        addressLine1:
          type: string
          example: 14024 NE 181st St
        addressLine2:
          type: string
          example: Apt. 8
        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
        formattedAddress:
          $ref: '#/components/schemas/formattedAddress'
        latitude:
          type: string
          example: '47.732682'
        longitude:
          type: string
          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: ''
        floor:
          type: string
          example: ''
        title:
          type: string
          example: ''
        county:
          type: string
          example: ''
        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
        streetCode:
          type: string
          example: ''
        taxNumber:
          type: string
          example: ''
        taxOffice:
          type: string
          example: ''
        traditionalName:
          type: string
          example: ''
        entered:
          $ref: '#/components/schemas/enteredAddress'
        msag:
          $ref: '#/components/schemas/msagAddress'
    addressResponseNorthAmerica:
      title: Address Response North America
      description: Address Response.
      type: object
      properties:
        address:
          type: string
          example: 14024 NE 181st St
          description: The full address
        addressLine1:
          type: string
          example: 14024 NE 181st St
        addressLine2:
          type: string
          example: Apt. 8
        city:
          type: string
          example: Woodinville
        country:
          type: string
          example: US
        formattedAddress:
          $ref: '#/components/schemas/formattedAddress'
        created:
          type: string
          format: date-time
          example: '2015-03-11T04:09:25.399Z'
          description: when was created
        description:
          type: string
          example: Home office, upstairs
        houseNumber:
          type: string
          example: '14024'
        id:
          type: string
          example: homeoffice
          pattern: ^\S*$
          description: Unique identifier for an address
        latitude:
          type: string
          example: '47.732682'
        longitude:
          type: string
          example: '-122.155174'
        postalCode:
          type: string
          example: '98072'
        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
        predirectional:
          type: string
          example: NE
          description: >-
            A word preceding the street name that indicates the directional
            taken by the thoroughfare
        state:
          type: string
          example: WA
        streetName:
          type: string
          example: 181st
        streetSuffix:
          type: string
          example: ST
        updated:
          type: string
          format: date-time
          example: '2016-03-11T04:09:25.399Z'
          description: when was updated last
        validationStatus:
          $ref: '#/components/schemas/validationStatus'
    enteredAddress:
      title: Entered Address
      description: The address as originally entered.
      type: object
      properties:
        address:
          type: string
          example: 14024 NE 181st St
        addressLine1:
          type: string
          example: 14024 NE 181st 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
    msagAddress:
      title: MSAG Address
      description: Master Street Address Guide (MSAG) validated address.
      type: object
      properties:
        hno:
          type: string
          example: '14024'
          description: House Number
        prd:
          type: string
          example: NE
          description: Pre-Directional
        rd:
          type: string
          example: 181ST ST
          description: Road Name
        sts:
          type: string
          example: ST
          description: Street Suffix
        pod:
          type: string
          example: 'N'
          description: Post-Directional
        validationType:
          type: string
          example: AUTO
          description: Validation Type
        loc:
          type: string
          example: APT 8
          description: Location
        city:
          type: string
          example: WOODINVILLE
        state:
          type: string
          example: WA
    lvfAddress:
      title: LVF Address
      description: Location Validation Function (LVF) address.
      type: object
      properties:
        hno:
          type: string
          example: '14024'
          description: Address Number
        hns:
          type: string
          example: 1/2
          description: Address Number Suffix
        hnp:
          type: string
          example: '10'
          description: Address Number Prefix
        country:
          type: string
          example: us
        city:
          type: string
          example: WOODINVILLE
        state:
          type: string
          example: WA
        pc:
          type: string
          example: '98072'
          description: Postal Code
        a2:
          type: string
          example: NE 181ST ST
          description: Address Line 2
        a5:
          type: string
        prd:
          type: string
          example: 'N'
          description: Street Name Pre-Directional
        rd:
          type: string
          example: 181ST
          description: Street Name
        sts:
          type: string
          example: ST
          description: Street Name Post-Type
        pod:
          type: string
          example: 'N'
          description: Street Name Post-Directional
        prm:
          type: string
          example: OLD
          description: Street Name Pre-Modifer
        stp:
          type: string
          example: ROUTE
          description: Street Name Pre-Type
        pom:
          type: string
          example: EXTENSION
          description: Street Name Post-Modifier
        loc:
          type: string
          example: APT 8
          description: Additional Location Information
        bld:
          type: string
          example: A
          description: Building
        flr:
          type: string
          example: '10'
          description: Floor
        unit:
          type: string
          example: '10'
        room:
          type: string
          example: '10'
      required:
        - hno
        - country
        - city
        - state
        - pc
        - rd
    addressResponseNorthAmericaWithMsag:
      title: Address Response North America With MSAG
      description: Address Response with MSAG validation.
      type: object
      allOf:
        - $ref: '#/components/schemas/addressResponseNorthAmerica'
        - properties:
            entered:
              $ref: '#/components/schemas/enteredAddress'
            msag:
              $ref: '#/components/schemas/msagAddress'
    addressResponseNorthAmericaWithLvf:
      title: Address Response North America With LVF
      description: Address Response with LVF validation.
      type: object
      allOf:
        - $ref: '#/components/schemas/addressResponseNorthAmerica'
        - properties:
            entered:
              $ref: '#/components/schemas/enteredAddress'
            lvf:
              $ref: '#/components/schemas/lvfAddress'
    addressResponseNorthAmericaWithAllAddresses:
      title: Address Response
      description: Address Response.
      type: object
      oneOf:
        - $ref: '#/components/schemas/addressResponseNorthAmericaWithMsag'
        - $ref: '#/components/schemas/addressResponseNorthAmericaWithLvf'
    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/orderType'
              status:
                $ref: '#/components/schemas/orderStatus'
              acceptedCount:
                type: integer
                minimum: 0
                example: 1
              invalidCount:
                type: integer
                minimum: 0
                example: 0
              created:
                type: string
                format: date-time
                example: '2022-05-18T08:56:00Z'
              updated:
                type: string
                format: date-time
                example: '2022-05-18T08:57:04Z'
              totalNumber:
                type: integer
                minimum: 0
                example: 1
          example: []
    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/orderType'
        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*$
              phoneNumber:
                type: string
                example: '+4525324234324'
              name:
                type: string
                example: Caller Name
              addressId:
                type: string
                example: '7888993'
                pattern: ^\S*$
              address:
                $ref: '#/components/schemas/formattedAddress'
              routeType:
                type: string
                example: STANDARD
              lang:
                type: string
                example: en
              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:
        id:
          type: string
          format: uuid
          example: 08e0be9a-52fd-45a0-be2e-86845c534aad
          pattern: ^\S*$
        type:
          $ref: '#/components/schemas/orderType'
        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
    listingLanguage:
      type: string
      enum:
        - NL
        - FR
        - DE
      example: NL
      description: Listing Language for the address. Required & Supported for Belgium only.
    contactLanguage:
      type: string
      enum:
        - NL
        - FR
        - DE
        - EN
      example: FR
      description: Contact Language for the address. Required & Supported for Belgium only.
    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
    orderType:
      type: string
      enum:
        - ADD_ENDPOINTS
        - UPDATE_ENDPOINTS
        - DELETE_ENDPOINTS
        - BULK_ADD_ENDPOINTS
      example: ADD_ENDPOINTS
    orderStatus:
      type: string
      enum:
        - RECEIVED
        - PROCESSING
        - COMPLETED
        - PARTIAL
        - FAILED
      example: COMPLETED
    validationStatus:
      type: string
      enum:
        - VALID
        - INVALID
      example: VALID
      description: Address is valid and represents a location
    endpointStatus:
      type: string
      enum:
        - IN_PROGRESS
        - SUCCESS
        - ERROR
        - ACTIVATED_WHILE_PENDING
      example: IN_PROGRESS
    region:
      type: string
      enum:
        - NA
        - ROW
      example: NA
    regionNa:
      type: string
      enum:
        - NA
      example: NA
    formattedAddress:
      type: string
      example: 102-104 ALBERT STREET, LONDON, NW1 7NE, United Kingdom
      description: The full formatted validated address
  requestBodies:
    addEndpoints:
      content:
        application/json:
          schema:
            oneOf:
              - $ref: >-
                  #/components/schemas/addStandardNorthAmericaEndpointsWithAddressId
              - $ref: >-
                  #/components/schemas/addNomadicNorthAmericaEndpointsWithAddressId
              - $ref: >-
                  #/components/schemas/addStandardNorthAmericaEndpointsWithFullAddress
              - $ref: >-
                  #/components/schemas/addNomadicNorthAmericaEndpointsWithFullAddress
              - $ref: '#/components/schemas/addRowEndpointsWithAddressId'
              - $ref: '#/components/schemas/addRowEndpointsWithFullAddress'
      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:
            oneOf:
              - $ref: '#/components/schemas/addNorthAmericaAddressRequest'
              - $ref: '#/components/schemas/addRowAddressRequest'
          examples:
            usaAddAddressRequest:
              $ref: '#/components/examples/usaAddAddressRequest'
            gbrAddAddressRequest:
              $ref: '#/components/examples/gbrAddAddressRequest'
      description: Add an emergency address
    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:
            allOf:
              - $ref: '#/components/schemas/endpointProvisioningOrder'
              - properties:
                  orderType:
                    type: string
                    example: ADD_ENDPOINTS
    provisioningOrderUpdateEndpoint:
      description: Accepted
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/endpointProvisioningOrder'
              - properties:
                  orderType:
                    type: string
                    example: UPDATE_ENDPOINTS
    provisioningOrderDeleteEndpoint:
      description: Accepted
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/endpointProvisioningOrder'
              - properties:
                  orderType:
                    type: string
                    example: DELETE_ENDPOINTS
    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:
            oneOf:
              - $ref: '#/components/schemas/listAddresses'
              - $ref: '#/components/schemas/listAddressesWithEndpointCount'
          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:
            oneOf:
              - $ref: '#/components/schemas/addressResponseNorthAmerica'
              - $ref: >-
                  #/components/schemas/addressResponseNorthAmericaWithAllAddresses
              - $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'
          examples:
            listNotifications:
              $ref: '#/components/examples/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'
          examples:
            listNotificationGroups:
              $ref: '#/components/examples/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:
            listOrderDetailsNa:
              $ref: '#/components/examples/listOrderDetailsNa'
            listOrderDetailsRow:
              $ref: '#/components/examples/listOrderDetailsRow'
    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:
    accountId:
      in: path
      name: accountId
      required: true
      schema:
        type: string
      description: Your Bandwidth Account ID.
      example: '9900000'
    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. This query parameter is only supported in the
        North America (NA) region.
    phoneNumber:
      name: phoneNumber
      in: query
      required: false
      schema:
        type: string
      description: >-
        Phone number associated with an endpoint. This query parameter is only
        supported in the North America (NA) region.
    callerId:
      name: id
      in: query
      required: false
      schema:
        type: string
      description: Substring of an endpoint ID
    externalId:
      name: id
      in: query
      required: false
      schema:
        type: string
      description: Substring of an address ID
    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/orderType'
      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: true
      schema:
        $ref: '#/components/schemas/region'
      description: Target region for the emergency services operation
    regionNa:
      name: region
      in: query
      required: true
      schema:
        $ref: '#/components/schemas/regionNa'
      description: Target region for the emergency services operation (North America only)
    allAddresses:
      name: allAddresses
      in: query
      required: false
      schema:
        type: boolean
        example: true
      description: >-
        Entered address information (and MSAG address if applicable) is also
        returned
  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: '13035554321'
            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'
            provisioningStatus: PROVISIONED
          - 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
            provisioningStatus: PROVISIONED
    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
            addressLine1: 4916 NE 145th St
            addressLine2: Apt. 8
            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
            addressLine1: 4916 S Angeline St
            addressLine2: Office
            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:
        addressLine1: 102-104 Albert Street
        cityOrLocality: London
        postCode: NW1 7NE
        service: ES
        countryCodeA3: GBR
    usaAddressResponse:
      summary: USA Address Response
      value:
        id: homeoffice
        validationStatus: INVALID
        address: 14024 NE 181st St, Apt. 8
        addressLine1: 14024 NE 181st St
        addressLine2: Apt. 8
        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
        address: 102-104 ALBERT STREET
        validationStatus: VALID
        service: ES
        houseNumber: 102-104
        streetName: ALBERT STREET
        cityOrLocality: LONDON
        postCode: NW1 7NE
        countryCodeA3: GBR
        formattedAddress: 102-104 ALBERT STREET, LONDON, NW1 7NE, United Kingdom
        created: '2023-09-26T17:37:10.432Z'
        updated: '2023-09-26T17:37:10.432Z'
    listNotifications:
      summary: Get Notifications
      value:
        links:
          - href: /api/v2/accounts/{accountId}/emergency/notifications
            rel: self
            method: GET
          - href: /notifications
            rel: first
            method: GET
          - href: >-
              /api/v2/accounts/{accountId}/emergency/notifications?offset=99000&limit=1000
            rel: last
            method: GET
          - href: ''
            rel: prev
            method: GET
          - href: >-
              /api/v2/accounts/{accountId}/emergency/notifications?offset=1000&limit=1000
            rel: next
            method: GET
        notifications:
          - id: notificationId1
            accountId: '34343434'
            activated: '2016-06-22T16:33:21.959Z'
            created: '2016-06-22T16:33:21.959Z'
            description: Notification 1
            groupCount: 2
            username: ''
            recipient: email@domain.com
            type: EMAIL
            updated: '2016-06-22T16:33:21.959Z'
            updatedBy: joe
          - id: notificationId2
            accountId: '34343434'
            activated: '2016-06-22T16:33:21.959Z'
            created: '2016-06-22T16:33:21.959Z'
            description: Notification 2
            groupCount: 1
            username: username
            recipient: https://foo.baz.com
            type: HTTP
            updated: '2016-06-22T16:33:21.959Z'
            updatedBy: joe
    listNotificationGroups:
      summary: Get Notification Groups
      value:
        links:
          - href: /api/v2/accounts/{accountId}/emergency/notificationGroups
            rel: self
            method: GET
          - href: /notificationGroups
            rel: first
            method: GET
          - href: >-
              /api/v2/accounts/{accountId}/emergency/notificationGroups?offset=99000&limit=1000
            rel: last
            method: GET
          - href: ''
            rel: prev
            method: GET
          - href: >-
              /api/v2/accounts/{accountId}/emergency/notificationGroups?offset=1000&limit=1000
            rel: next
            method: GET
        notificationGroups:
          - id: notificationGroupId1
            accountId: '34343434'
            created: '2016-06-22T16:33:21.959Z'
            description: Notification Group 1
            endpointCount: 2
            endpointIds:
              - '15555555555'
              - '17777777777'
            notificationIds:
              - notificationId1
            updated: '2016-06-22T16:33:21.959Z'
            updatedBy: joe
          - id: notificationGroupId2
            accountId: '34343434'
            created: '2016-06-22T16:33:21.959Z'
            description: Notification Group 2
            endpointCount: 0
            endpointIds: []
            notificationIds:
              - notificationId1
            updated: '2016-06-22T16:33:21.959Z'
            updatedBy: joe
    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
            created: '2022-05-18T08:56:00Z'
            updated: '2022-05-18T08:57:04Z'
            totalNumber: 1
          - id: 08e0be9a-52fd-45a0-be2e-96835c534aad
            type: UPDATE_ENDPOINTS
            status: COMPLETED
            acceptedCount: 3
            invalidCount: 0
            created: '2022-05-18T08:56:00Z'
            updated: '2022-05-18T08:57:04Z'
            totalNumber: 3
    listOrderDetailsRow:
      summary: List Rest of World 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'
            phoneNumber: '+263946349349374'
            name: Catherine
            addressId: vyMTrMrG
            address: 102-104 ALBERT STREET, LONDON, NW1 7NE, United Kingdom
            updatedBy: JJ
            status: IN_PROGRESS
            error: A reason
            errorCode: XXX
          - id: '2945239843274934'
            phoneNumber: '+2945239843274934'
            name: Catherine
            addressId: xhMTrMhK
            address: 102-104 ALBERT STREET, LONDON, NW1 7NE, United Kingdom
            updatedBy: JJ
            status: SUCCESS
            error: A reason
            errorCode: DDD
    listOrderDetailsNa:
      summary: List NA 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: '163946349349374'
            phoneNumber: '+163946349349374'
            name: Catherine
            addressId: xhMTrMhK
            address: 1400 EDWARDS MILL RD, RALEIGH, NC 27607, United States
            routeType: STANDARD
            lang: en
            updatedBy: JJ
            status: IN_PROGRESS
            error: A reason
            errorCode: XXX
          - id: '1945239843274934'
            phoneNumber: '+1945239843274934'
            name: Catherine
            addressId: vyMTrMrG
            address: 1400 EDWARDS MILL RD, RALEIGH, NC 27607, United States
            routeType: STANDARD
            lang: en
            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
