openapi: 3.0.3
info:
  contact:
    email: letstalk@bandwidth.com
    name: Bandwidth
    url: https://dev.bandwidth.com
  description: Bandwidth's Communication APIs
  title: Bandwidth
  version: 1.0.0
servers:
- url: /
security:
- Basic: []
- OAuth2: []
tags:
- name: Messages
- name: Media
- name: Multi-Channel
- name: Calls
- name: Conferences
- name: Recordings
- name: Statistics
- name: Transcriptions
- name: MFA
- name: Phone Number Lookup
- name: Toll-Free Verification
paths:
  /users/{accountId}/media:
    get:
      description: Gets a list of your media files. No query parameters are supported.
      operationId: listMedia
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      - description: Continuation token used to retrieve subsequent media.
        example: 1XEi2tsFtLo1JbtLwETnM1ZJ+PqAa8w6ENvC5QKvwyrCDYII663Gy5M4s40owR1tjkuWUif6qbWvFtQJR5/ipqbUnfAqL254LKNlPy6tATCzioKSuHuOqgzloDkSwRtX0LtcL2otHS69hK343m+SjdL+vlj71tT39
        explode: false
        in: header
        name: Continuation-Token
        required: false
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/media"
                type: array
          description: OK
          headers:
            Continuation-Token:
              description: Continuation token used to retrieve subsequent media.
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Not Found
        "406":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Not Acceptable
        "415":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Unsupported Media Type
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Too Many Requests
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Internal Server Error
      summary: List Media
      tags:
      - Media
      x-accepts:
      - application/json
    servers:
    - description: Production
      url: https://messaging.bandwidth.com/api/v2
  /users/{accountId}/media/{mediaId}:
    delete:
      description: |-
        Deletes a media file from Bandwidth API server. Make sure you don't have
        any application scripts still using the media before you delete.

        If you accidentally delete a media file you can immediately upload a new
        file with the same name.
      operationId: deleteMedia
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      - description: Media ID to retrieve.
        example: 14762070468292kw2fuqty55yp2b2/0/bw.png
        explode: false
        in: path
        name: mediaId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "204":
          description: No Content
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Not Found
        "406":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Not Acceptable
        "415":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Unsupported Media Type
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Too Many Requests
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Internal Server Error
      summary: Delete Media
      tags:
      - Media
      x-accepts:
      - application/json
    get:
      description: Downloads a media file you previously uploaded.
      operationId: getMedia
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      - description: Media ID to retrieve.
        example: 14762070468292kw2fuqty55yp2b2/0/bw.png
        explode: false
        in: path
        name: mediaId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/octet-stream:
              schema:
                description: Successful Operation
                format: binary
                type: string
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Not Found
        "406":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Not Acceptable
        "415":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Unsupported Media Type
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Too Many Requests
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Internal Server Error
      summary: Get Media
      tags:
      - Media
      x-accepts:
      - application/json
      - application/octet-stream
    put:
      description: |-
        Upload a file. You may add headers to the request in order to provide some control to your media file.

        If a file is uploaded with the same name as a file that already exists under this account, the previous file will be overwritten.

        A list of supported media types can be found [here](https://support.bandwidth.com/hc/en-us/articles/360014128994-What-MMS-file-types-are-supported-).
      operationId: uploadMedia
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      - description: Media ID to retrieve.
        example: 14762070468292kw2fuqty55yp2b2/0/bw.png
        explode: false
        in: path
        name: mediaId
        required: true
        schema:
          type: string
        style: simple
      - description: The media type of the entity-body.
        example: audio/wav
        explode: false
        in: header
        name: Content-Type
        required: false
        schema:
          type: string
        style: simple
      - description: General-header field is used to specify directives that MUST
          be obeyed by all caching mechanisms along the request/response chain.
        example: no-cache
        explode: false
        in: header
        name: Cache-Control
        required: false
        schema:
          type: string
        style: simple
      requestBody:
        $ref: "#/components/requestBodies/uploadMediaRequest"
      responses:
        "204":
          description: No Content
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Not Found
        "406":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Not Acceptable
        "415":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Unsupported Media Type
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Too Many Requests
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Internal Server Error
      summary: Upload Media
      tags:
      - Media
      x-content-type: application/json
      x-accepts:
      - application/json
    servers:
    - description: Production
      url: https://messaging.bandwidth.com/api/v2
  /users/{accountId}/messages:
    get:
      description: |
        Returns a list of messages based on query parameters.

        **Rate Limit:** This endpoint is rate limited to 3500 requests per 5 minutes per Source IP address. Exceeding the limit returns HTTP 429 with a `Retry-After` header.
      operationId: listMessages
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      - description: "The ID of the message to search for. Special characters need\
          \ to be encoded using URL encoding. Message IDs could come in different\
          \ formats, e.g., 9e0df4ca-b18d-40d7-a59f-82fcdf5ae8e6 and 1589228074636lm4k2je7j7jklbn2\
          \ are valid message ID formats. Note that you must include at least one\
          \ query parameter."
        example: 9e0df4ca-b18d-40d7-a59f-82fcdf5ae8e6
        explode: true
        in: query
        name: messageId
        required: false
        schema:
          type: string
        style: form
      - description: "The phone number that sent the message. Accepted values are:\
          \ a single full phone number a comma separated list of full phone numbers\
          \ (maximum of 10) or a single partial phone number (minimum of 5 characters\
          \ e.g. '%2B1919')."
        example: '%2B15554443333'
        explode: true
        in: query
        name: sourceTn
        required: false
        schema:
          type: string
        style: form
      - description: "The phone number that received the message. Accepted values\
          \ are: a single full phone number a comma separated list of full phone numbers\
          \ (maximum of 10) or a single partial phone number (minimum of 5 characters\
          \ e.g. '%2B1919')."
        example: '%2B15554443333'
        explode: true
        in: query
        name: destinationTn
        required: false
        schema:
          type: string
        style: form
      - description: The status of the message. One of RECEIVED QUEUED SENDING SENT
          FAILED DELIVERED ACCEPTED UNDELIVERED.
        explode: true
        in: query
        name: messageStatus
        required: false
        schema:
          $ref: "#/components/schemas/messageStatusEnum"
        style: form
      - description: The direction of the message. One of INBOUND OUTBOUND.
        explode: true
        in: query
        name: messageDirection
        required: false
        schema:
          $ref: "#/components/schemas/listMessageDirectionEnum"
        style: form
      - description: The name of the carrier used for this message. Possible values
          include but are not limited to Verizon and TMobile. Special characters need
          to be encoded using URL encoding (i.e. AT&T should be passed as AT%26T).
        example: Verizon
        explode: true
        in: query
        name: carrierName
        required: false
        schema:
          type: string
        style: form
      - description: The type of message. Either sms or mms.
        explode: true
        in: query
        name: messageType
        required: false
        schema:
          $ref: "#/components/schemas/messageTypeEnum"
        style: form
      - description: The error code of the message.
        example: 9902
        explode: true
        in: query
        name: errorCode
        required: false
        schema:
          type: integer
        style: form
      - description: The start of the date range to search in ISO 8601 format. Uses
          the message receive time. The date range to search in is currently 14 days.
        example: 2022-09-14T18:20:16.000Z
        explode: true
        in: query
        name: fromDateTime
        required: false
        schema:
          type: string
        style: form
      - description: The end of the date range to search in ISO 8601 format. Uses
          the message receive time. The date range to search in is currently 14 days.
        example: 2022-09-14T18:20:16.000Z
        explode: true
        in: query
        name: toDateTime
        required: false
        schema:
          type: string
        style: form
      - description: The campaign ID of the message.
        example: CJEUMDK
        explode: true
        in: query
        name: campaignId
        required: false
        schema:
          type: string
        style: form
      - description: The minimum Bandwidth latency of the message in seconds. Only
          available for accounts with the Advanced Quality Metrics feature enabled.
        example: 5
        explode: true
        in: query
        name: fromBwLatency
        required: false
        schema:
          type: integer
        style: form
      - description: A boolean value indicating whether the message is queued in the
          Bandwidth network.
        example: true
        explode: true
        in: query
        name: bwQueued
        required: false
        schema:
          type: boolean
        style: form
      - description: Messaging product associated with the message.
        example: P2P
        explode: true
        in: query
        name: product
        required: false
        schema:
          $ref: "#/components/schemas/productTypeEnum"
        style: form
      - description: Location Id associated with the message.
        example: 123ABC
        explode: true
        in: query
        name: location
        required: false
        schema:
          type: string
        style: form
      - description: A boolean value indicating whether the message is queued in the
          carrier network. Only available for OUTBOUND messages from accounts with
          the Advanced Quality Metrics feature enabled.
        example: true
        explode: true
        in: query
        name: carrierQueued
        required: false
        schema:
          type: boolean
        style: form
      - description: The minimum carrier latency of the message in seconds. Only available
          for OUTBOUND messages from accounts with the Advanced Quality Metrics feature
          enabled.
        example: 50
        explode: true
        in: query
        name: fromCarrierLatency
        required: false
        schema:
          type: integer
        style: form
      - description: Calling number country in A3 format.
        example: USA
        explode: true
        in: query
        name: callingNumberCountryA3
        required: false
        schema:
          type: string
        style: form
      - description: Called number country in A3 format.
        example: USA
        explode: true
        in: query
        name: calledNumberCountryA3
        required: false
        schema:
          type: string
        style: form
      - description: Segment count (start range).
        example: 1
        explode: true
        in: query
        name: fromSegmentCount
        required: false
        schema:
          type: integer
        style: form
      - description: Segment count (end range).
        example: 3
        explode: true
        in: query
        name: toSegmentCount
        required: false
        schema:
          type: integer
        style: form
      - description: Message size (start range).
        example: 100
        explode: true
        in: query
        name: fromMessageSize
        required: false
        schema:
          type: integer
        style: form
      - description: Message size (end range).
        example: 120
        explode: true
        in: query
        name: toMessageSize
        required: false
        schema:
          type: integer
        style: form
      - description: The field and direction to sort by combined with a colon. Direction
          is either asc or desc.
        example: sourceTn:desc
        explode: true
        in: query
        name: sort
        required: false
        schema:
          type: string
        style: form
      - description: A base64 encoded value used for pagination of results.
        example: gdEewhcJLQRB5
        explode: true
        in: query
        name: pageToken
        required: false
        schema:
          type: string
        style: form
      - description: The maximum records requested in search result. Default 100.
          The sum of limit and after cannot be more than 10000.
        example: 50
        explode: true
        in: query
        name: limit
        required: false
        schema:
          type: integer
        style: form
      - description: "When set to true, the response's totalCount field will have\
          \ a maximum value of 10,000. When set to false, or excluded, this will give\
          \ an accurate totalCount of all messages that match the provided filters.\
          \ If you are experiencing latency, try using this parameter to limit your\
          \ results."
        example: true
        explode: true
        in: query
        name: limitTotalCount
        required: false
        schema:
          type: boolean
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagesList"
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Not Found
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Method Not Allowed
        "415":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Unsupported Media Type
        "429":
          content:
            application/json:
              example:
                type: rate_limit_exceeded
                description: Rate limit exceeded. Wait for Retry-After time before
                  sending another request.
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Too Many Requests
          headers:
            Retry-After:
              description: The number of seconds to wait before retrying the request.
              explode: false
              schema:
                example: 300
                type: integer
              style: simple
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Internal Server Error
      summary: List Messages
      tags:
      - Messages
      x-accepts:
      - application/json
    post:
      callbacks:
        statusCallback:
          $ref: "#/components/callbacks/statusCallback"
      description: Endpoint for sending text messages and picture messages using V2
        messaging.
      operationId: createMessage
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        $ref: "#/components/requestBodies/createMessageRequest"
      responses:
        "202":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/message"
          description: Accepted
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/createMessageRequestError"
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Not Found
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Method Not Allowed
        "406":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Not Acceptable
        "415":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Unsupported Media Type
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Too Many Requests
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingRequestError"
          description: Internal Server Error
      summary: Create Message
      tags:
      - Messages
      x-content-type: application/json
      x-accepts:
      - application/json
    servers:
    - description: Production
      url: https://messaging.bandwidth.com/api/v2
  /users/{accountId}/messages/multiChannel:
    post:
      callbacks:
        statusCallback:
          $ref: "#/components/callbacks/statusCallback"
      description: Endpoint for sending Multi-Channel messages.
      operationId: createMultiChannelMessage
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        $ref: "#/components/requestBodies/createMultiChannelMessageRequest"
      responses:
        "202":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/createMultiChannelMessageResponse"
          description: Accepted
        "400":
          content:
            application/json:
              example:
                links: []
                data: null
                errors:
                - type: request-validation
                  description: "The 'channelList[0].from' field must contain exactly\
                    \ one telephone number"
                  source:
                    field: "channelList[0].from"
              schema:
                $ref: "#/components/schemas/multiChannelError"
          description: Bad Request
        "401":
          content:
            application/json:
              example:
                links: []
                data: null
                errors:
                - type: unauthorized
                  description: Authentication Failed
                  source: {}
              schema:
                $ref: "#/components/schemas/multiChannelError"
          description: Unauthorized
        "403":
          content:
            application/json:
              example:
                links: []
                data: null
                errors:
                - type: forbidden
                  description: Access Denied
                  source: {}
              schema:
                $ref: "#/components/schemas/multiChannelError"
          description: Forbidden
        "404":
          content:
            application/json:
              example:
                links: []
                data: null
                errors:
                - type: forbidden
                  description: Resource not found.
                  source: {}
              schema:
                $ref: "#/components/schemas/multiChannelError"
          description: Not Found
        "405":
          content:
            application/json:
              example:
                links: []
                data: null
                errors:
                - type: method-not-allowed
                  description: Method 'PUT' not supported for this resource.
                  source: {}
              schema:
                $ref: "#/components/schemas/multiChannelError"
          description: Method Not Allowed
        "406":
          description: Not Acceptable
        "415":
          content:
            application/json:
              example:
                links: []
                data: null
                errors:
                - type: unsupported-content-type
                  description: Content-Type 'application/xml;charset=UTF-8' is not
                    supported. Please use 'application/json'
                  source:
                    header: Content-Type
              schema:
                $ref: "#/components/schemas/multiChannelError"
          description: Unsupported Media Type
        "429":
          content:
            application/json:
              example:
                links: []
                data: null
                errors:
                - type: rate-limit-exceeded
                  description: You have exceeded your rate limit for this endpoint.
                    Please retry later.
                  source: {}
              schema:
                $ref: "#/components/schemas/multiChannelError"
          description: Too Many Requests
        "500":
          content:
            application/json:
              example:
                links: []
                data: null
                errors:
                - type: internal-server-error
                  description: Internal server error. No further information available
                  source: {}
              schema:
                $ref: "#/components/schemas/multiChannelError"
          description: Internal Server Error
      summary: Create Multi-Channel Message
      tags:
      - Multi-Channel
      x-badges:
      - name: Beta
        color: "#076EA8"
      x-content-type: application/json
      x-accepts:
      - application/json
    servers:
    - description: Production
      url: https://messaging.bandwidth.com/api/v2
  /accounts/{accountId}/calls:
    get:
      description: |-
        Returns a max of 10000 calls, sorted by `createdTime` from oldest to newest.

        **NOTE:** If the number of calls in the account is bigger than `pageSize`, a `Link` header (with format `<{url}>; rel="next"`) will be returned in the response. The url can be used to retrieve the next page of call records.
        Also, call information is kept for 7 days after the calls are hung up. If you attempt to retrieve information for a call that is older than 7 days, you will get an empty array [] in response.
      operationId: listCalls
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      - description: Filter results by the `to` field.
        example: '%2b19195551234'
        explode: true
        in: query
        name: to
        required: false
        schema:
          type: string
        style: form
      - description: Filter results by the `from` field.
        example: '%2b19195554321'
        explode: true
        in: query
        name: from
        required: false
        schema:
          type: string
        style: form
      - description: Filter results to calls which have a `startTime` after or including
          `minStartTime` (in ISO8601 format).
        example: 2022-06-21T19:13:21Z
        explode: true
        in: query
        name: minStartTime
        required: false
        schema:
          type: string
        style: form
      - description: Filter results to calls which have a `startTime` before or including
          `maxStartTime` (in ISO8601 format).
        example: 2022-06-21T19:13:21Z
        explode: true
        in: query
        name: maxStartTime
        required: false
        schema:
          type: string
        style: form
      - description: Filter results to calls with specified call Disconnect Cause.
        example: hangup
        explode: true
        in: query
        name: disconnectCause
        required: false
        schema:
          type: string
        style: form
      - description: Specifies the max number of calls that will be returned.
        example: 500
        explode: true
        in: query
        name: pageSize
        required: false
        schema:
          default: 1000
          format: int32
          maximum: 10000
          minimum: 1
          type: integer
        style: form
      - description: "Not intended for explicit use. To use pagination, follow the\
          \ links in the `Link` header of the response, as indicated in the endpoint\
          \ description."
        example: eyJwYWdlVG9rZW4iOiJ0b2tlbiJ9
        explode: true
        in: query
        name: pageToken
        required: false
        schema:
          type: string
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/callState"
                type: array
          description: OK
        "400":
          content:
            application/json:
              examples:
                badRequestErrorExample:
                  $ref: "#/components/examples/voiceBadRequestErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Bad Request
        "401":
          content:
            application/json:
              examples:
                unauthorizedErrorExample:
                  $ref: "#/components/examples/voiceUnauthorizedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                forbiddenErrorExample:
                  $ref: "#/components/examples/voiceForbiddenErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Forbidden
        "404":
          content:
            application/json:
              examples:
                notFoundErrorExample:
                  $ref: "#/components/examples/voiceNotFoundErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Not Found
        "405":
          content:
            application/json:
              examples:
                notAllowedErrorExample:
                  $ref: "#/components/examples/voiceNotAllowedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Method Not Allowed
        "415":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceUnsupportedMediaTypeErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unsupported Media Type
        "429":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceTooManyRequestsErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Too Many Requests
          headers:
            Retry-After:
              description: When you should try your request again.
              explode: false
              schema:
                type: string
              style: simple
        "500":
          content:
            application/json:
              examples:
                internalServerErrorExample:
                  $ref: "#/components/examples/voiceInternalServerErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Internal Server Error
      summary: Get Calls
      tags:
      - Calls
      x-accepts:
      - application/json
    post:
      description: |-
        Creates an outbound phone call.

        All calls are initially queued. Your outbound calls will initiated at a specific dequeueing rate, enabling your application to "fire and forget" when creating calls. Queued calls may not be modified until they are dequeued and placed, but may be removed from your queue on demand.

        <b>Please note:</b> Calls submitted to your queue will be placed approximately in order, but exact ordering is not guaranteed.
      operationId: createCall
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        $ref: "#/components/requestBodies/createCallRequest"
      responses:
        "201":
          content:
            application/json:
              examples:
                createCall Response:
                  $ref: "#/components/examples/createCallResponseExample"
              schema:
                $ref: "#/components/schemas/createCallResponse"
          description: Created
          headers:
            Location:
              description: The URL for further interactions with this call
              explode: false
              schema:
                type: string
              style: simple
        "400":
          content:
            application/json:
              examples:
                badRequestErrorExample:
                  $ref: "#/components/examples/voiceBadRequestErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Bad Request
        "401":
          content:
            application/json:
              examples:
                unauthorizedErrorExample:
                  $ref: "#/components/examples/voiceUnauthorizedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                forbiddenErrorExample:
                  $ref: "#/components/examples/voiceForbiddenErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Forbidden
        "404":
          content:
            application/json:
              examples:
                notFoundErrorExample:
                  $ref: "#/components/examples/voiceNotFoundErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Not Found
        "405":
          content:
            application/json:
              examples:
                notAllowedErrorExample:
                  $ref: "#/components/examples/voiceNotAllowedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Method Not Allowed
        "415":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceUnsupportedMediaTypeErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unsupported Media Type
        "429":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceTooManyRequestsErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Too Many Requests
          headers:
            Retry-After:
              description: When you should try your request again.
              explode: false
              schema:
                type: string
              style: simple
        "500":
          content:
            application/json:
              examples:
                internalServerErrorExample:
                  $ref: "#/components/examples/voiceInternalServerErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Internal Server Error
      summary: Create Call
      tags:
      - Calls
      x-content-type: application/json
      x-accepts:
      - application/json
    servers:
    - description: Production
      url: https://voice.bandwidth.com/api/v2
  /accounts/{accountId}/calls/{callId}:
    get:
      description: |-
        Retrieve the current state of a specific call. This information is near-realtime, so it may take a few minutes for your call to be accessible using this endpoint.

        **Note**: Call information is kept for 7 days after the calls are hung up. If you attempt to retrieve information for a call that is older than 7 days, you will get an HTTP 404 response.
      operationId: getCallState
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      - description: Programmable Voice API Call ID.
        example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        explode: false
        in: path
        name: callId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/callState"
          description: OK
        "400":
          content:
            application/json:
              examples:
                badRequestErrorExample:
                  $ref: "#/components/examples/voiceBadRequestErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Bad Request
        "401":
          content:
            application/json:
              examples:
                unauthorizedErrorExample:
                  $ref: "#/components/examples/voiceUnauthorizedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                forbiddenErrorExample:
                  $ref: "#/components/examples/voiceForbiddenErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Forbidden
        "404":
          content:
            application/json:
              examples:
                notFoundErrorExample:
                  $ref: "#/components/examples/voiceNotFoundErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Not Found
        "405":
          content:
            application/json:
              examples:
                notAllowedErrorExample:
                  $ref: "#/components/examples/voiceNotAllowedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Method Not Allowed
        "415":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceUnsupportedMediaTypeErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unsupported Media Type
        "429":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceTooManyRequestsErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Too Many Requests
          headers:
            Retry-After:
              description: When you should try your request again.
              explode: false
              schema:
                type: string
              style: simple
        "500":
          content:
            application/json:
              examples:
                internalServerErrorExample:
                  $ref: "#/components/examples/voiceInternalServerErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Internal Server Error
      summary: Get Call State Information
      tags:
      - Calls
      x-accepts:
      - application/json
    post:
      description: Interrupts and redirects a call to a different URL that should
        return a BXML document.
      operationId: updateCall
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      - description: Programmable Voice API Call ID.
        example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        explode: false
        in: path
        name: callId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        $ref: "#/components/requestBodies/updateCallRequest"
      responses:
        "200":
          description: OK
        "400":
          content:
            application/json:
              examples:
                badRequestErrorExample:
                  $ref: "#/components/examples/voiceBadRequestErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Bad Request
        "401":
          content:
            application/json:
              examples:
                unauthorizedErrorExample:
                  $ref: "#/components/examples/voiceUnauthorizedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                forbiddenErrorExample:
                  $ref: "#/components/examples/voiceForbiddenErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Forbidden
        "404":
          content:
            application/json:
              examples:
                notFoundErrorExample:
                  $ref: "#/components/examples/voiceNotFoundErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Not Found
        "405":
          content:
            application/json:
              examples:
                notAllowedErrorExample:
                  $ref: "#/components/examples/voiceNotAllowedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Method Not Allowed
        "409":
          content:
            application/json:
              examples:
                conflictErrorExample:
                  $ref: "#/components/examples/voiceConflictErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Conflict
        "415":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceUnsupportedMediaTypeErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unsupported Media Type
        "429":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceTooManyRequestsErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Too Many Requests
          headers:
            Retry-After:
              description: When you should try your request again.
              explode: false
              schema:
                type: string
              style: simple
        "500":
          content:
            application/json:
              examples:
                internalServerErrorExample:
                  $ref: "#/components/examples/voiceInternalServerErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Internal Server Error
      summary: Update Call
      tags:
      - Calls
      x-content-type: application/json
      x-accepts:
      - application/json
    servers:
    - description: Production
      url: https://voice.bandwidth.com/api/v2
  /accounts/{accountId}/calls/{callId}/bxml:
    put:
      description: Interrupts and replaces an active call's BXML document.
      operationId: updateCallBxml
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      - description: Programmable Voice API Call ID.
        example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        explode: false
        in: path
        name: callId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        $ref: "#/components/requestBodies/updateCallBxmlRequest"
      responses:
        "204":
          description: Call BXML was successfully replaced.
        "400":
          content:
            application/json:
              examples:
                badRequestErrorExample:
                  $ref: "#/components/examples/voiceBadRequestErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Bad Request
        "401":
          content:
            application/json:
              examples:
                unauthorizedErrorExample:
                  $ref: "#/components/examples/voiceUnauthorizedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                forbiddenErrorExample:
                  $ref: "#/components/examples/voiceForbiddenErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Forbidden
        "404":
          content:
            application/json:
              examples:
                notFoundErrorExample:
                  $ref: "#/components/examples/voiceNotFoundErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Not Found
        "405":
          content:
            application/json:
              examples:
                notAllowedErrorExample:
                  $ref: "#/components/examples/voiceNotAllowedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Method Not Allowed
        "409":
          content:
            application/json:
              examples:
                conflictErrorExample:
                  $ref: "#/components/examples/voiceConflictErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Conflict
        "415":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceUnsupportedMediaTypeErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unsupported Media Type
        "429":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceTooManyRequestsErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Too Many Requests
          headers:
            Retry-After:
              description: When you should try your request again.
              explode: false
              schema:
                type: string
              style: simple
        "500":
          content:
            application/json:
              examples:
                internalServerErrorExample:
                  $ref: "#/components/examples/voiceInternalServerErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Internal Server Error
      summary: Update Call BXML
      tags:
      - Calls
      x-content-type: application/xml
      x-accepts:
      - application/json
    servers:
    - description: Production
      url: https://voice.bandwidth.com/api/v2
  /accounts/{accountId}/conferences:
    get:
      description: |-
        Returns a max of 1000 conferences, sorted by `createdTime` from oldest to newest.

        **NOTE:** If the number of conferences in the account is bigger than `pageSize`, a `Link` header (with format `<{url}>; rel="next"`) will be returned in the response. The url can be used to retrieve the next page of conference records.
      operationId: listConferences
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      - description: Filter results by the `name` field.
        example: my-custom-name
        explode: true
        in: query
        name: name
        required: false
        schema:
          type: string
        style: form
      - description: Filter results to conferences which have a `createdTime` after
          or at `minCreatedTime` (in ISO8601 format).
        example: 2022-06-21T19:13:21Z
        explode: true
        in: query
        name: minCreatedTime
        required: false
        schema:
          type: string
        style: form
      - description: Filter results to conferences which have a `createdTime` before
          or at `maxCreatedTime` (in ISO8601 format).
        example: 2022-06-21T19:13:21Z
        explode: true
        in: query
        name: maxCreatedTime
        required: false
        schema:
          type: string
        style: form
      - description: Specifies the max number of conferences that will be returned.
        example: 500
        explode: true
        in: query
        name: pageSize
        required: false
        schema:
          default: 1000
          format: int32
          maximum: 1000
          minimum: 1
          type: integer
        style: form
      - description: "Not intended for explicit use. To use pagination, follow the\
          \ links in the `Link` header of the response, as indicated in the endpoint\
          \ description."
        example: eyJwYWdlVG9rZW4iOiJ0b2tlbiJ9
        explode: true
        in: query
        name: pageToken
        required: false
        schema:
          type: string
        style: form
      responses:
        "200":
          content:
            application/json:
              examples:
                listConferences Response:
                  $ref: "#/components/examples/listConferencesResponseExample"
              schema:
                items:
                  $ref: "#/components/schemas/conference"
                type: array
          description: OK
        "400":
          content:
            application/json:
              examples:
                badRequestErrorExample:
                  $ref: "#/components/examples/voiceBadRequestErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Bad Request
        "401":
          content:
            application/json:
              examples:
                unauthorizedErrorExample:
                  $ref: "#/components/examples/voiceUnauthorizedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                forbiddenErrorExample:
                  $ref: "#/components/examples/voiceForbiddenErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Forbidden
        "404":
          content:
            application/json:
              examples:
                notFoundErrorExample:
                  $ref: "#/components/examples/voiceNotFoundErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Not Found
        "405":
          content:
            application/json:
              examples:
                notAllowedErrorExample:
                  $ref: "#/components/examples/voiceNotAllowedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Method Not Allowed
        "415":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceUnsupportedMediaTypeErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unsupported Media Type
        "429":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceTooManyRequestsErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Too Many Requests
          headers:
            Retry-After:
              description: When you should try your request again.
              explode: false
              schema:
                type: string
              style: simple
        "500":
          content:
            application/json:
              examples:
                internalServerErrorExample:
                  $ref: "#/components/examples/voiceInternalServerErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Internal Server Error
      summary: Get Conferences
      tags:
      - Conferences
      x-accepts:
      - application/json
    servers:
    - description: Production
      url: https://voice.bandwidth.com/api/v2
  /accounts/{accountId}/conferences/{conferenceId}:
    get:
      description: Returns information about the specified conference.
      operationId: getConference
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      - description: Programmable Voice API Conference ID.
        example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
        explode: false
        in: path
        name: conferenceId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/conference"
          description: OK
        "400":
          content:
            application/json:
              examples:
                badRequestErrorExample:
                  $ref: "#/components/examples/voiceBadRequestErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Bad Request
        "401":
          content:
            application/json:
              examples:
                unauthorizedErrorExample:
                  $ref: "#/components/examples/voiceUnauthorizedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                forbiddenErrorExample:
                  $ref: "#/components/examples/voiceForbiddenErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Forbidden
        "404":
          content:
            application/json:
              examples:
                notFoundErrorExample:
                  $ref: "#/components/examples/voiceNotFoundErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Not Found
        "405":
          content:
            application/json:
              examples:
                notAllowedErrorExample:
                  $ref: "#/components/examples/voiceNotAllowedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Method Not Allowed
        "415":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceUnsupportedMediaTypeErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unsupported Media Type
        "429":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceTooManyRequestsErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Too Many Requests
          headers:
            Retry-After:
              description: When you should try your request again.
              explode: false
              schema:
                type: string
              style: simple
        "500":
          content:
            application/json:
              examples:
                internalServerErrorExample:
                  $ref: "#/components/examples/voiceInternalServerErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Internal Server Error
      summary: Get Conference Information
      tags:
      - Conferences
      x-accepts:
      - application/json
    post:
      description: Update the conference state.
      operationId: updateConference
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      - description: Programmable Voice API Conference ID.
        example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
        explode: false
        in: path
        name: conferenceId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        $ref: "#/components/requestBodies/updateConferenceRequest"
      responses:
        "204":
          description: Conference was successfully modified.
        "400":
          content:
            application/json:
              examples:
                badRequestErrorExample:
                  $ref: "#/components/examples/voiceBadRequestErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Bad Request
        "401":
          content:
            application/json:
              examples:
                unauthorizedErrorExample:
                  $ref: "#/components/examples/voiceUnauthorizedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                forbiddenErrorExample:
                  $ref: "#/components/examples/voiceForbiddenErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Forbidden
        "404":
          content:
            application/json:
              examples:
                notFoundErrorExample:
                  $ref: "#/components/examples/voiceNotFoundErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Not Found
        "405":
          content:
            application/json:
              examples:
                notAllowedErrorExample:
                  $ref: "#/components/examples/voiceNotAllowedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Method Not Allowed
        "415":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceUnsupportedMediaTypeErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unsupported Media Type
        "429":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceTooManyRequestsErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Too Many Requests
          headers:
            Retry-After:
              description: When you should try your request again.
              explode: false
              schema:
                type: string
              style: simple
        "500":
          content:
            application/json:
              examples:
                internalServerErrorExample:
                  $ref: "#/components/examples/voiceInternalServerErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Internal Server Error
      summary: Update Conference
      tags:
      - Conferences
      x-content-type: application/json
      x-accepts:
      - application/json
    servers:
    - description: Production
      url: https://voice.bandwidth.com/api/v2
  /accounts/{accountId}/conferences/{conferenceId}/bxml:
    put:
      description: Update the conference BXML document.
      operationId: updateConferenceBxml
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      - description: Programmable Voice API Conference ID.
        example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
        explode: false
        in: path
        name: conferenceId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        $ref: "#/components/requestBodies/updateConferenceBxmlRequest"
      responses:
        "204":
          description: Conference successfully modified.
        "400":
          content:
            application/json:
              examples:
                badRequestErrorExample:
                  $ref: "#/components/examples/voiceBadRequestErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Bad Request
        "401":
          content:
            application/json:
              examples:
                unauthorizedErrorExample:
                  $ref: "#/components/examples/voiceUnauthorizedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                forbiddenErrorExample:
                  $ref: "#/components/examples/voiceForbiddenErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Forbidden
        "404":
          content:
            application/json:
              examples:
                notFoundErrorExample:
                  $ref: "#/components/examples/voiceNotFoundErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Not Found
        "405":
          content:
            application/json:
              examples:
                notAllowedErrorExample:
                  $ref: "#/components/examples/voiceNotAllowedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Method Not Allowed
        "415":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceUnsupportedMediaTypeErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unsupported Media Type
        "429":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceTooManyRequestsErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Too Many Requests
          headers:
            Retry-After:
              description: When you should try your request again.
              explode: false
              schema:
                type: string
              style: simple
        "500":
          content:
            application/json:
              examples:
                internalServerErrorExample:
                  $ref: "#/components/examples/voiceInternalServerErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Internal Server Error
      summary: Update Conference BXML
      tags:
      - Conferences
      x-content-type: application/xml
      x-accepts:
      - application/json
    servers:
    - description: Production
      url: https://voice.bandwidth.com/api/v2
  /accounts/{accountId}/conferences/{conferenceId}/members/{memberId}:
    get:
      description: Returns information about the specified conference member.
      operationId: getConferenceMember
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      - description: Programmable Voice API Conference ID.
        example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
        explode: false
        in: path
        name: conferenceId
        required: true
        schema:
          type: string
        style: simple
      - description: Programmable Voice API Conference Member ID.
        example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        explode: false
        in: path
        name: memberId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/conferenceMember"
          description: OK
        "400":
          content:
            application/json:
              examples:
                badRequestErrorExample:
                  $ref: "#/components/examples/voiceBadRequestErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Bad Request
        "401":
          content:
            application/json:
              examples:
                unauthorizedErrorExample:
                  $ref: "#/components/examples/voiceUnauthorizedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                forbiddenErrorExample:
                  $ref: "#/components/examples/voiceForbiddenErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Forbidden
        "404":
          content:
            application/json:
              examples:
                notFoundErrorExample:
                  $ref: "#/components/examples/voiceNotFoundErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Not Found
        "405":
          content:
            application/json:
              examples:
                notAllowedErrorExample:
                  $ref: "#/components/examples/voiceNotAllowedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Method Not Allowed
        "415":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceUnsupportedMediaTypeErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unsupported Media Type
        "429":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceTooManyRequestsErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Too Many Requests
          headers:
            Retry-After:
              description: When you should try your request again.
              explode: false
              schema:
                type: string
              style: simple
        "500":
          content:
            application/json:
              examples:
                internalServerErrorExample:
                  $ref: "#/components/examples/voiceInternalServerErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Internal Server Error
      summary: Get Conference Member
      tags:
      - Conferences
      x-accepts:
      - application/json
    put:
      description: Updates settings for a particular conference member.
      operationId: updateConferenceMember
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      - description: Programmable Voice API Conference ID.
        example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
        explode: false
        in: path
        name: conferenceId
        required: true
        schema:
          type: string
        style: simple
      - description: Programmable Voice API Conference Member ID.
        example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        explode: false
        in: path
        name: memberId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        $ref: "#/components/requestBodies/updateConferenceMemberRequest"
      responses:
        "204":
          description: Conference member was successfully modified.
        "400":
          content:
            application/json:
              examples:
                badRequestErrorExample:
                  $ref: "#/components/examples/voiceBadRequestErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Bad Request
        "401":
          content:
            application/json:
              examples:
                unauthorizedErrorExample:
                  $ref: "#/components/examples/voiceUnauthorizedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                forbiddenErrorExample:
                  $ref: "#/components/examples/voiceForbiddenErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Forbidden
        "404":
          content:
            application/json:
              examples:
                notFoundErrorExample:
                  $ref: "#/components/examples/voiceNotFoundErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Not Found
        "405":
          content:
            application/json:
              examples:
                notAllowedErrorExample:
                  $ref: "#/components/examples/voiceNotAllowedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Method Not Allowed
        "415":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceUnsupportedMediaTypeErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unsupported Media Type
        "429":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceTooManyRequestsErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Too Many Requests
          headers:
            Retry-After:
              description: When you should try your request again.
              explode: false
              schema:
                type: string
              style: simple
        "500":
          content:
            application/json:
              examples:
                internalServerErrorExample:
                  $ref: "#/components/examples/voiceInternalServerErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Internal Server Error
      summary: Update Conference Member
      tags:
      - Conferences
      x-content-type: application/json
      x-accepts:
      - application/json
    servers:
    - description: Production
      url: https://voice.bandwidth.com/api/v2
  /accounts/{accountId}/conferences/{conferenceId}/recordings:
    get:
      description: Returns a (potentially empty) list of metadata for the recordings
        that took place during the specified conference.
      operationId: listConferenceRecordings
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      - description: Programmable Voice API Conference ID.
        example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
        explode: false
        in: path
        name: conferenceId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/conferenceRecordingMetadata"
                type: array
          description: OK
        "400":
          content:
            application/json:
              examples:
                badRequestErrorExample:
                  $ref: "#/components/examples/voiceBadRequestErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Bad Request
        "401":
          content:
            application/json:
              examples:
                unauthorizedErrorExample:
                  $ref: "#/components/examples/voiceUnauthorizedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                forbiddenErrorExample:
                  $ref: "#/components/examples/voiceForbiddenErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Forbidden
        "404":
          content:
            application/json:
              examples:
                notFoundErrorExample:
                  $ref: "#/components/examples/voiceNotFoundErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Not Found
        "405":
          content:
            application/json:
              examples:
                notAllowedErrorExample:
                  $ref: "#/components/examples/voiceNotAllowedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Method Not Allowed
        "415":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceUnsupportedMediaTypeErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unsupported Media Type
        "429":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceTooManyRequestsErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Too Many Requests
          headers:
            Retry-After:
              description: When you should try your request again.
              explode: false
              schema:
                type: string
              style: simple
        "500":
          content:
            application/json:
              examples:
                internalServerErrorExample:
                  $ref: "#/components/examples/voiceInternalServerErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Internal Server Error
      summary: Get Conference Recordings
      tags:
      - Conferences
      x-accepts:
      - application/json
    servers:
    - description: Production
      url: https://voice.bandwidth.com/api/v2
  /accounts/{accountId}/conferences/{conferenceId}/recordings/{recordingId}:
    get:
      description: Returns metadata for the specified recording.
      operationId: getConferenceRecording
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      - description: Programmable Voice API Conference ID.
        example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
        explode: false
        in: path
        name: conferenceId
        required: true
        schema:
          type: string
        style: simple
      - description: Programmable Voice API Recording ID.
        example: r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        explode: false
        in: path
        name: recordingId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/conferenceRecordingMetadata"
          description: OK
        "400":
          content:
            application/json:
              examples:
                badRequestErrorExample:
                  $ref: "#/components/examples/voiceBadRequestErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Bad Request
        "401":
          content:
            application/json:
              examples:
                unauthorizedErrorExample:
                  $ref: "#/components/examples/voiceUnauthorizedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                forbiddenErrorExample:
                  $ref: "#/components/examples/voiceForbiddenErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Forbidden
        "404":
          content:
            application/json:
              examples:
                notFoundErrorExample:
                  $ref: "#/components/examples/voiceNotFoundErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Not Found
        "405":
          content:
            application/json:
              examples:
                notAllowedErrorExample:
                  $ref: "#/components/examples/voiceNotAllowedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Method Not Allowed
        "415":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceUnsupportedMediaTypeErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unsupported Media Type
        "429":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceTooManyRequestsErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Too Many Requests
          headers:
            Retry-After:
              description: When you should try your request again.
              explode: false
              schema:
                type: string
              style: simple
        "500":
          content:
            application/json:
              examples:
                internalServerErrorExample:
                  $ref: "#/components/examples/voiceInternalServerErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Internal Server Error
      summary: Get Conference Recording Information
      tags:
      - Conferences
      x-accepts:
      - application/json
    servers:
    - description: Production
      url: https://voice.bandwidth.com/api/v2
  /accounts/{accountId}/conferences/{conferenceId}/recordings/{recordingId}/media:
    get:
      description: Downloads the specified recording file.
      operationId: downloadConferenceRecording
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      - description: Programmable Voice API Conference ID.
        example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
        explode: false
        in: path
        name: conferenceId
        required: true
        schema:
          type: string
        style: simple
      - description: Programmable Voice API Recording ID.
        example: r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        explode: false
        in: path
        name: recordingId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            audio/vnd.wave:
              schema:
                format: binary
                type: string
            audio/mpeg:
              schema:
                format: binary
                type: string
          description: OK
        "400":
          content:
            application/json:
              examples:
                badRequestErrorExample:
                  $ref: "#/components/examples/voiceBadRequestErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Bad Request
        "401":
          content:
            application/json:
              examples:
                unauthorizedErrorExample:
                  $ref: "#/components/examples/voiceUnauthorizedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                forbiddenErrorExample:
                  $ref: "#/components/examples/voiceForbiddenErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Forbidden
        "404":
          content:
            application/json:
              examples:
                notFoundErrorExample:
                  $ref: "#/components/examples/voiceNotFoundErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Not Found
        "405":
          content:
            application/json:
              examples:
                notAllowedErrorExample:
                  $ref: "#/components/examples/voiceNotAllowedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Method Not Allowed
        "415":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceUnsupportedMediaTypeErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unsupported Media Type
        "429":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceTooManyRequestsErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Too Many Requests
          headers:
            Retry-After:
              description: When you should try your request again.
              explode: false
              schema:
                type: string
              style: simple
        "500":
          content:
            application/json:
              examples:
                internalServerErrorExample:
                  $ref: "#/components/examples/voiceInternalServerErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Internal Server Error
      summary: Download Conference Recording
      tags:
      - Conferences
      x-accepts:
      - application/json
      - audio/mpeg
      - audio/vnd.wave
    servers:
    - description: Production
      url: https://voice.bandwidth.com/api/v2
  /accounts/{accountId}/recordings:
    get:
      description: |-
        Returns a list of metadata for the recordings associated with the
        specified account. The list can be filtered by the optional from, to, minStartTime,
        and maxStartTime arguments. The list is capped at 1000 entries and may be
        empty if no recordings match the specified criteria.
      operationId: listAccountCallRecordings
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      - description: Filter results by the `to` field.
        example: '%2b19195551234'
        explode: true
        in: query
        name: to
        required: false
        schema:
          type: string
        style: form
      - description: Filter results by the `from` field.
        example: '%2b19195554321'
        explode: true
        in: query
        name: from
        required: false
        schema:
          type: string
        style: form
      - description: Filter results to recordings which have a `startTime` after or
          including `minStartTime` (in ISO8601 format).
        example: 2022-06-21T19:13:21Z
        explode: true
        in: query
        name: minStartTime
        required: false
        schema:
          type: string
        style: form
      - description: Filter results to recordings which have a `startTime` before
          `maxStartTime` (in ISO8601 format).
        example: 2022-06-21T19:13:21Z
        explode: true
        in: query
        name: maxStartTime
        required: false
        schema:
          type: string
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/callRecordingMetadata"
                type: array
          description: OK
        "400":
          content:
            application/json:
              examples:
                badRequestErrorExample:
                  $ref: "#/components/examples/voiceBadRequestErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Bad Request
        "401":
          content:
            application/json:
              examples:
                unauthorizedErrorExample:
                  $ref: "#/components/examples/voiceUnauthorizedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                forbiddenErrorExample:
                  $ref: "#/components/examples/voiceForbiddenErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Forbidden
        "404":
          content:
            application/json:
              examples:
                notFoundErrorExample:
                  $ref: "#/components/examples/voiceNotFoundErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Not Found
        "405":
          content:
            application/json:
              examples:
                notAllowedErrorExample:
                  $ref: "#/components/examples/voiceNotAllowedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Method Not Allowed
        "415":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceUnsupportedMediaTypeErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unsupported Media Type
        "429":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceTooManyRequestsErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Too Many Requests
          headers:
            Retry-After:
              description: When you should try your request again.
              explode: false
              schema:
                type: string
              style: simple
        "500":
          content:
            application/json:
              examples:
                internalServerErrorExample:
                  $ref: "#/components/examples/voiceInternalServerErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Internal Server Error
      summary: Get Call Recordings
      tags:
      - Recordings
      x-accepts:
      - application/json
    servers:
    - description: Production
      url: https://voice.bandwidth.com/api/v2
  /accounts/{accountId}/calls/{callId}/recording:
    put:
      description: Pause or resume a recording on an active phone call.
      operationId: updateCallRecordingState
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      - description: Programmable Voice API Call ID.
        example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        explode: false
        in: path
        name: callId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        $ref: "#/components/requestBodies/updateCallRecordingRequest"
      responses:
        "200":
          description: OK
        "400":
          content:
            application/json:
              examples:
                badRequestErrorExample:
                  $ref: "#/components/examples/voiceBadRequestErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Bad Request
        "401":
          content:
            application/json:
              examples:
                unauthorizedErrorExample:
                  $ref: "#/components/examples/voiceUnauthorizedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                forbiddenErrorExample:
                  $ref: "#/components/examples/voiceForbiddenErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Forbidden
        "404":
          content:
            application/json:
              examples:
                notFoundErrorExample:
                  $ref: "#/components/examples/voiceNotFoundErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Not Found
        "405":
          content:
            application/json:
              examples:
                notAllowedErrorExample:
                  $ref: "#/components/examples/voiceNotAllowedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Method Not Allowed
        "415":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceUnsupportedMediaTypeErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unsupported Media Type
        "429":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceTooManyRequestsErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Too Many Requests
          headers:
            Retry-After:
              description: When you should try your request again.
              explode: false
              schema:
                type: string
              style: simple
        "500":
          content:
            application/json:
              examples:
                internalServerErrorExample:
                  $ref: "#/components/examples/voiceInternalServerErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Internal Server Error
      summary: Update Recording
      tags:
      - Recordings
      x-content-type: application/json
      x-accepts:
      - application/json
    servers:
    - description: Production
      url: https://voice.bandwidth.com/api/v2
  /accounts/{accountId}/calls/{callId}/recordings:
    get:
      description: |-
        Returns a (potentially empty) list of metadata for the recordings
        that took place during the specified call.
      operationId: listCallRecordings
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      - description: Programmable Voice API Call ID.
        example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        explode: false
        in: path
        name: callId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/callRecordingMetadata"
                type: array
          description: OK
        "400":
          content:
            application/json:
              examples:
                badRequestErrorExample:
                  $ref: "#/components/examples/voiceBadRequestErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Bad Request
        "401":
          content:
            application/json:
              examples:
                unauthorizedErrorExample:
                  $ref: "#/components/examples/voiceUnauthorizedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                forbiddenErrorExample:
                  $ref: "#/components/examples/voiceForbiddenErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Forbidden
        "404":
          content:
            application/json:
              examples:
                notFoundErrorExample:
                  $ref: "#/components/examples/voiceNotFoundErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Not Found
        "405":
          content:
            application/json:
              examples:
                notAllowedErrorExample:
                  $ref: "#/components/examples/voiceNotAllowedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Method Not Allowed
        "415":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceUnsupportedMediaTypeErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unsupported Media Type
        "429":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceTooManyRequestsErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Too Many Requests
          headers:
            Retry-After:
              description: When you should try your request again.
              explode: false
              schema:
                type: string
              style: simple
        "500":
          content:
            application/json:
              examples:
                internalServerErrorExample:
                  $ref: "#/components/examples/voiceInternalServerErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Internal Server Error
      summary: List Call Recordings
      tags:
      - Recordings
      x-accepts:
      - application/json
    servers:
    - description: Production
      url: https://voice.bandwidth.com/api/v2
  /accounts/{accountId}/calls/{callId}/recordings/{recordingId}:
    delete:
      description: |-
        Delete the recording information, media and transcription.

        Note: After the deletion is requested and a `204` is returned, neither the recording metadata nor the actual media nor its transcription will be accessible anymore. However, the media of the specified recording is not deleted immediately. This deletion process, while transparent and irreversible, can take an additional 24 to 48 hours.
      operationId: deleteRecording
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      - description: Programmable Voice API Call ID.
        example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        explode: false
        in: path
        name: callId
        required: true
        schema:
          type: string
        style: simple
      - description: Programmable Voice API Recording ID.
        example: r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        explode: false
        in: path
        name: recordingId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "204":
          description: Recording was deleted.
        "400":
          content:
            application/json:
              examples:
                badRequestErrorExample:
                  $ref: "#/components/examples/voiceBadRequestErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Bad Request
        "401":
          content:
            application/json:
              examples:
                unauthorizedErrorExample:
                  $ref: "#/components/examples/voiceUnauthorizedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                forbiddenErrorExample:
                  $ref: "#/components/examples/voiceForbiddenErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Forbidden
        "404":
          content:
            application/json:
              examples:
                notFoundErrorExample:
                  $ref: "#/components/examples/voiceNotFoundErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Not Found
        "405":
          content:
            application/json:
              examples:
                notAllowedErrorExample:
                  $ref: "#/components/examples/voiceNotAllowedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Method Not Allowed
        "415":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceUnsupportedMediaTypeErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unsupported Media Type
        "429":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceTooManyRequestsErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Too Many Requests
          headers:
            Retry-After:
              description: When you should try your request again.
              explode: false
              schema:
                type: string
              style: simple
        "500":
          content:
            application/json:
              examples:
                internalServerErrorExample:
                  $ref: "#/components/examples/voiceInternalServerErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Internal Server Error
      summary: Delete Recording
      tags:
      - Recordings
      x-accepts:
      - application/json
    get:
      description: Returns metadata for the specified recording.
      operationId: getCallRecording
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      - description: Programmable Voice API Call ID.
        example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        explode: false
        in: path
        name: callId
        required: true
        schema:
          type: string
        style: simple
      - description: Programmable Voice API Recording ID.
        example: r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        explode: false
        in: path
        name: recordingId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/callRecordingMetadata"
          description: OK
        "400":
          content:
            application/json:
              examples:
                badRequestErrorExample:
                  $ref: "#/components/examples/voiceBadRequestErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Bad Request
        "401":
          content:
            application/json:
              examples:
                unauthorizedErrorExample:
                  $ref: "#/components/examples/voiceUnauthorizedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                forbiddenErrorExample:
                  $ref: "#/components/examples/voiceForbiddenErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Forbidden
        "404":
          content:
            application/json:
              examples:
                notFoundErrorExample:
                  $ref: "#/components/examples/voiceNotFoundErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Not Found
        "405":
          content:
            application/json:
              examples:
                notAllowedErrorExample:
                  $ref: "#/components/examples/voiceNotAllowedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Method Not Allowed
        "415":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceUnsupportedMediaTypeErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unsupported Media Type
        "429":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceTooManyRequestsErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Too Many Requests
          headers:
            Retry-After:
              description: When you should try your request again.
              explode: false
              schema:
                type: string
              style: simple
        "500":
          content:
            application/json:
              examples:
                internalServerErrorExample:
                  $ref: "#/components/examples/voiceInternalServerErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Internal Server Error
      summary: Get Call Recording
      tags:
      - Recordings
      x-accepts:
      - application/json
    servers:
    - description: Production
      url: https://voice.bandwidth.com/api/v2
  /accounts/{accountId}/calls/{callId}/recordings/{recordingId}/media:
    delete:
      description: Deletes the specified recording's media.
      operationId: deleteRecordingMedia
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      - description: Programmable Voice API Call ID.
        example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        explode: false
        in: path
        name: callId
        required: true
        schema:
          type: string
        style: simple
      - description: Programmable Voice API Recording ID.
        example: r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        explode: false
        in: path
        name: recordingId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "204":
          description: The recording media was successfully deleted.
        "400":
          content:
            application/json:
              examples:
                badRequestErrorExample:
                  $ref: "#/components/examples/voiceBadRequestErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Bad Request
        "401":
          content:
            application/json:
              examples:
                unauthorizedErrorExample:
                  $ref: "#/components/examples/voiceUnauthorizedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                forbiddenErrorExample:
                  $ref: "#/components/examples/voiceForbiddenErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Forbidden
        "404":
          content:
            application/json:
              examples:
                notFoundErrorExample:
                  $ref: "#/components/examples/voiceNotFoundErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Not Found
        "405":
          content:
            application/json:
              examples:
                notAllowedErrorExample:
                  $ref: "#/components/examples/voiceNotAllowedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Method Not Allowed
        "415":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceUnsupportedMediaTypeErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unsupported Media Type
        "429":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceTooManyRequestsErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Too Many Requests
          headers:
            Retry-After:
              description: When you should try your request again.
              explode: false
              schema:
                type: string
              style: simple
        "500":
          content:
            application/json:
              examples:
                internalServerErrorExample:
                  $ref: "#/components/examples/voiceInternalServerErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Internal Server Error
      summary: Delete Recording Media
      tags:
      - Recordings
      x-accepts:
      - application/json
    get:
      description: Downloads the specified recording.
      operationId: downloadCallRecording
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      - description: Programmable Voice API Call ID.
        example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        explode: false
        in: path
        name: callId
        required: true
        schema:
          type: string
        style: simple
      - description: Programmable Voice API Recording ID.
        example: r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        explode: false
        in: path
        name: recordingId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            audio/vnd.wave:
              schema:
                format: binary
                type: string
            audio/mpeg:
              schema:
                format: binary
                type: string
          description: OK
        "400":
          content:
            application/json:
              examples:
                badRequestErrorExample:
                  $ref: "#/components/examples/voiceBadRequestErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Bad Request
        "401":
          content:
            application/json:
              examples:
                unauthorizedErrorExample:
                  $ref: "#/components/examples/voiceUnauthorizedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                forbiddenErrorExample:
                  $ref: "#/components/examples/voiceForbiddenErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Forbidden
        "404":
          content:
            application/json:
              examples:
                notFoundErrorExample:
                  $ref: "#/components/examples/voiceNotFoundErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Not Found
        "405":
          content:
            application/json:
              examples:
                notAllowedErrorExample:
                  $ref: "#/components/examples/voiceNotAllowedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Method Not Allowed
        "415":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceUnsupportedMediaTypeErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unsupported Media Type
        "429":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceTooManyRequestsErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Too Many Requests
          headers:
            Retry-After:
              description: When you should try your request again.
              explode: false
              schema:
                type: string
              style: simple
        "500":
          content:
            application/json:
              examples:
                internalServerErrorExample:
                  $ref: "#/components/examples/voiceInternalServerErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Internal Server Error
      summary: Download Recording
      tags:
      - Recordings
      x-accepts:
      - application/json
      - audio/mpeg
      - audio/vnd.wave
    servers:
    - description: Production
      url: https://voice.bandwidth.com/api/v2
  /accounts/{accountId}/calls/{callId}/recordings/{recordingId}/transcription:
    delete:
      description: |-
        Deletes the specified recording's transcription.

        Note: After the deletion is requested and a `204` is returned, the transcription will not be accessible anymore. However, it is not deleted immediately. This deletion process, while transparent and irreversible, can take an additional 24 to 48 hours.
      operationId: deleteRecordingTranscription
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      - description: Programmable Voice API Call ID.
        example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        explode: false
        in: path
        name: callId
        required: true
        schema:
          type: string
        style: simple
      - description: Programmable Voice API Recording ID.
        example: r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        explode: false
        in: path
        name: recordingId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "204":
          description: The transcription was successfully deleted.
        "400":
          content:
            application/json:
              examples:
                badRequestErrorExample:
                  $ref: "#/components/examples/voiceBadRequestErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Bad Request
        "401":
          content:
            application/json:
              examples:
                unauthorizedErrorExample:
                  $ref: "#/components/examples/voiceUnauthorizedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                forbiddenErrorExample:
                  $ref: "#/components/examples/voiceForbiddenErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Forbidden
        "404":
          content:
            application/json:
              examples:
                notFoundErrorExample:
                  $ref: "#/components/examples/voiceNotFoundErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Not Found
        "405":
          content:
            application/json:
              examples:
                notAllowedErrorExample:
                  $ref: "#/components/examples/voiceNotAllowedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Method Not Allowed
        "415":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceUnsupportedMediaTypeErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unsupported Media Type
        "429":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceTooManyRequestsErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Too Many Requests
          headers:
            Retry-After:
              description: When you should try your request again.
              explode: false
              schema:
                type: string
              style: simple
        "500":
          content:
            application/json:
              examples:
                internalServerErrorExample:
                  $ref: "#/components/examples/voiceInternalServerErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Internal Server Error
      summary: Delete Transcription
      tags:
      - Recordings
      x-accepts:
      - application/json
    get:
      description: |-
        Downloads the specified transcription.
        If the recording was multi-channel, then there will be 2 transcripts.
        The caller/called party transcript will be the first item while [`<PlayAudio>`](/docs/voice/bxml/playAudio) and [`<SpeakSentence>`](/docs/voice/bxml/speakSentence) transcript will be the second item.
        During a [`<Transfer>`](/docs/voice/bxml/transfer) the A-leg transcript will be the first item while the B-leg transcript will be the second item.
      operationId: getRecordingTranscription
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      - description: Programmable Voice API Call ID.
        example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        explode: false
        in: path
        name: callId
        required: true
        schema:
          type: string
        style: simple
      - description: Programmable Voice API Recording ID.
        example: r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        explode: false
        in: path
        name: recordingId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/recordingTranscriptions"
          description: OK
        "400":
          content:
            application/json:
              examples:
                badRequestErrorExample:
                  $ref: "#/components/examples/voiceBadRequestErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Bad Request
        "401":
          content:
            application/json:
              examples:
                unauthorizedErrorExample:
                  $ref: "#/components/examples/voiceUnauthorizedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                forbiddenErrorExample:
                  $ref: "#/components/examples/voiceForbiddenErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Forbidden
        "404":
          content:
            application/json:
              examples:
                notFoundErrorExample:
                  $ref: "#/components/examples/voiceNotFoundErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Not Found
        "405":
          content:
            application/json:
              examples:
                notAllowedErrorExample:
                  $ref: "#/components/examples/voiceNotAllowedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Method Not Allowed
        "415":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceUnsupportedMediaTypeErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unsupported Media Type
        "429":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceTooManyRequestsErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Too Many Requests
          headers:
            Retry-After:
              description: When you should try your request again.
              explode: false
              schema:
                type: string
              style: simple
        "500":
          content:
            application/json:
              examples:
                internalServerErrorExample:
                  $ref: "#/components/examples/voiceInternalServerErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Internal Server Error
      summary: Get Transcription
      tags:
      - Recordings
      x-accepts:
      - application/json
    post:
      description: |-
        Generate the transcription for a specific recording. Transcription
        can succeed only for recordings of length greater than 500 milliseconds and
        less than 4 hours.
      operationId: transcribeCallRecording
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      - description: Programmable Voice API Call ID.
        example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        explode: false
        in: path
        name: callId
        required: true
        schema:
          type: string
        style: simple
      - description: Programmable Voice API Recording ID.
        example: r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        explode: false
        in: path
        name: recordingId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        $ref: "#/components/requestBodies/transcribeRecordingRequest"
      responses:
        "204":
          description: Transcription was successfully requested.
        "400":
          content:
            application/json:
              examples:
                badRequestErrorExample:
                  $ref: "#/components/examples/voiceBadRequestErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Bad Request
        "401":
          content:
            application/json:
              examples:
                unauthorizedErrorExample:
                  $ref: "#/components/examples/voiceUnauthorizedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                forbiddenErrorExample:
                  $ref: "#/components/examples/voiceForbiddenErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Forbidden
        "404":
          content:
            application/json:
              examples:
                notFoundErrorExample:
                  $ref: "#/components/examples/voiceNotFoundErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Not Found
        "405":
          content:
            application/json:
              examples:
                notAllowedErrorExample:
                  $ref: "#/components/examples/voiceNotAllowedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Method Not Allowed
        "415":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceUnsupportedMediaTypeErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unsupported Media Type
        "429":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceTooManyRequestsErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Too Many Requests
          headers:
            Retry-After:
              description: When you should try your request again.
              explode: false
              schema:
                type: string
              style: simple
        "500":
          content:
            application/json:
              examples:
                internalServerErrorExample:
                  $ref: "#/components/examples/voiceInternalServerErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Internal Server Error
      summary: Create Transcription Request
      tags:
      - Recordings
      x-content-type: application/json
      x-accepts:
      - application/json
    servers:
    - description: Production
      url: https://voice.bandwidth.com/api/v2
  /accounts/{accountId}/statistics:
    get:
      description: Returns details about the current state of the account.
      operationId: getStatistics
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/accountStatistics"
          description: OK
        "400":
          content:
            application/json:
              examples:
                badRequestErrorExample:
                  $ref: "#/components/examples/voiceBadRequestErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Bad Request
        "401":
          content:
            application/json:
              examples:
                unauthorizedErrorExample:
                  $ref: "#/components/examples/voiceUnauthorizedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                forbiddenErrorExample:
                  $ref: "#/components/examples/voiceForbiddenErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Forbidden
        "404":
          content:
            application/json:
              examples:
                notFoundErrorExample:
                  $ref: "#/components/examples/voiceNotFoundErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Not Found
        "405":
          content:
            application/json:
              examples:
                notAllowedErrorExample:
                  $ref: "#/components/examples/voiceNotAllowedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Method Not Allowed
        "415":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceUnsupportedMediaTypeErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unsupported Media Type
        "429":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceTooManyRequestsErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Too Many Requests
          headers:
            Retry-After:
              description: When you should try your request again.
              explode: false
              schema:
                type: string
              style: simple
        "500":
          content:
            application/json:
              examples:
                internalServerErrorExample:
                  $ref: "#/components/examples/voiceInternalServerErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Internal Server Error
      summary: Get Account Statistics
      tags:
      - Statistics
      x-accepts:
      - application/json
    servers:
    - description: Production
      url: https://voice.bandwidth.com/api/v2
  /accounts/{accountId}/calls/{callId}/transcriptions:
    get:
      description: "List the transcriptions created on this call via [startTranscription](/docs/voice/bxml/startTranscription)."
      operationId: listRealTimeTranscriptions
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      - description: Programmable Voice API Call ID.
        example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        explode: false
        in: path
        name: callId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/callTranscriptionMetadataList"
          description: OK
        "400":
          content:
            application/json:
              examples:
                badRequestErrorExample:
                  $ref: "#/components/examples/voiceBadRequestErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Bad Request
        "401":
          content:
            application/json:
              examples:
                unauthorizedErrorExample:
                  $ref: "#/components/examples/voiceUnauthorizedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                forbiddenErrorExample:
                  $ref: "#/components/examples/voiceForbiddenErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Forbidden
        "404":
          content:
            application/json:
              examples:
                notFoundErrorExample:
                  $ref: "#/components/examples/voiceNotFoundErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Not Found
        "405":
          content:
            application/json:
              examples:
                notAllowedErrorExample:
                  $ref: "#/components/examples/voiceNotAllowedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Method Not Allowed
        "415":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceUnsupportedMediaTypeErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unsupported Media Type
        "429":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceTooManyRequestsErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Too Many Requests
          headers:
            Retry-After:
              description: When you should try your request again.
              explode: false
              schema:
                type: string
              style: simple
        "500":
          content:
            application/json:
              examples:
                internalServerErrorExample:
                  $ref: "#/components/examples/voiceInternalServerErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Internal Server Error
      summary: List Real-time Transcriptions
      tags:
      - Transcriptions
      x-accepts:
      - application/json
    servers:
    - description: Production
      url: https://voice.bandwidth.com/api/v2
  /accounts/{accountId}/calls/{callId}/transcriptions/{transcriptionId}:
    delete:
      description: |-
        Delete the specified transcription that was created on this call via [startTranscription](/docs/voice/bxml/startTranscription).

        Note: After the deletion is requested and a `200` is returned, the transcription will not be accessible anymore. However, it is not deleted immediately. This deletion process, while transparent and irreversible, can take an additional 24 to 48 hours.
      operationId: deleteRealTimeTranscription
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      - description: Programmable Voice API Call ID.
        example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        explode: false
        in: path
        name: callId
        required: true
        schema:
          type: string
        style: simple
      - description: Programmable Voice API Transcription ID.
        example: t-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        explode: false
        in: path
        name: transcriptionId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          description: No Content
        "400":
          content:
            application/json:
              examples:
                badRequestErrorExample:
                  $ref: "#/components/examples/voiceBadRequestErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Bad Request
        "401":
          content:
            application/json:
              examples:
                unauthorizedErrorExample:
                  $ref: "#/components/examples/voiceUnauthorizedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                forbiddenErrorExample:
                  $ref: "#/components/examples/voiceForbiddenErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Forbidden
        "404":
          content:
            application/json:
              examples:
                notFoundErrorExample:
                  $ref: "#/components/examples/voiceNotFoundErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Not Found
        "405":
          content:
            application/json:
              examples:
                notAllowedErrorExample:
                  $ref: "#/components/examples/voiceNotAllowedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Method Not Allowed
        "415":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceUnsupportedMediaTypeErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unsupported Media Type
        "429":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceTooManyRequestsErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Too Many Requests
          headers:
            Retry-After:
              description: When you should try your request again.
              explode: false
              schema:
                type: string
              style: simple
        "500":
          content:
            application/json:
              examples:
                internalServerErrorExample:
                  $ref: "#/components/examples/voiceInternalServerErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Internal Server Error
      summary: Delete Real-time Transcription
      tags:
      - Transcriptions
      x-accepts:
      - application/json
    get:
      description: "Retrieve the specified transcription that was created on this\
        \ call via [startTranscription](/docs/voice/bxml/startTranscription)."
      operationId: getRealTimeTranscription
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      - description: Programmable Voice API Call ID.
        example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        explode: false
        in: path
        name: callId
        required: true
        schema:
          type: string
        style: simple
      - description: Programmable Voice API Transcription ID.
        example: t-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        explode: false
        in: path
        name: transcriptionId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/callTranscriptionResponse"
          description: OK
        "400":
          content:
            application/json:
              examples:
                badRequestErrorExample:
                  $ref: "#/components/examples/voiceBadRequestErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Bad Request
        "401":
          content:
            application/json:
              examples:
                unauthorizedErrorExample:
                  $ref: "#/components/examples/voiceUnauthorizedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unauthorized
        "403":
          content:
            application/json:
              examples:
                forbiddenErrorExample:
                  $ref: "#/components/examples/voiceForbiddenErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Forbidden
        "404":
          content:
            application/json:
              examples:
                notFoundErrorExample:
                  $ref: "#/components/examples/voiceNotFoundErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Not Found
        "405":
          content:
            application/json:
              examples:
                notAllowedErrorExample:
                  $ref: "#/components/examples/voiceNotAllowedErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Method Not Allowed
        "415":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceUnsupportedMediaTypeErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Unsupported Media Type
        "429":
          content:
            application/json:
              examples:
                tooManyRequestsErrorExample:
                  $ref: "#/components/examples/voiceTooManyRequestsErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Too Many Requests
          headers:
            Retry-After:
              description: When you should try your request again.
              explode: false
              schema:
                type: string
              style: simple
        "500":
          content:
            application/json:
              examples:
                internalServerErrorExample:
                  $ref: "#/components/examples/voiceInternalServerErrorExample"
              schema:
                $ref: "#/components/schemas/voiceApiError"
          description: Internal Server Error
      summary: Get Real-time Transcription
      tags:
      - Transcriptions
      x-accepts:
      - application/json
    servers:
    - description: Production
      url: https://voice.bandwidth.com/api/v2
  /accounts/{accountId}/code/voice:
    post:
      description: Send an MFA Code via a phone call.
      operationId: generateVoiceCode
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        $ref: "#/components/requestBodies/codeRequest"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/voiceCodeResponse"
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/mfaRequestError"
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/mfaUnauthorizedRequestError"
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/mfaForbiddenRequestError"
          description: Forbidden
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/mfaRequestError"
          description: Internal Server Error
      summary: Voice Authentication Code
      tags:
      - MFA
      x-content-type: application/json
      x-accepts:
      - application/json
    servers:
    - description: Production
      url: https://mfa.bandwidth.com/api/v1
  /accounts/{accountId}/code/messaging:
    post:
      description: Send an MFA code via text message (SMS).
      operationId: generateMessagingCode
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        $ref: "#/components/requestBodies/codeRequest"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/messagingCodeResponse"
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/mfaRequestError"
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/mfaUnauthorizedRequestError"
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/mfaForbiddenRequestError"
          description: Forbidden
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/mfaRequestError"
          description: Internal Server Error
      summary: Messaging Authentication Code
      tags:
      - MFA
      x-content-type: application/json
      x-accepts:
      - application/json
    servers:
    - description: Production
      url: https://mfa.bandwidth.com/api/v1
  /accounts/{accountId}/code/verify:
    post:
      description: Verify a previously sent MFA code.
      operationId: verifyCode
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        $ref: "#/components/requestBodies/codeVerify"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/verifyCodeResponse"
          description: OK
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/mfaRequestError"
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/mfaUnauthorizedRequestError"
          description: Unauthorized
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/mfaForbiddenRequestError"
          description: Forbidden
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/mfaRequestError"
          description: Too Many Requests
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/mfaRequestError"
          description: Internal Server Error
      summary: Verify Authentication Code
      tags:
      - MFA
      x-content-type: application/json
      x-accepts:
      - application/json
    servers:
    - description: Production
      url: https://mfa.bandwidth.com/api/v1
  /accounts/{accountId}/phoneNumberLookup:
    post:
      description: Creates a synchronous phone number lookup request. Maximum of 100
        telephone numbers per request.
      operationId: createSyncLookup
      parameters:
      - explode: false
        in: path
        name: accountId
        required: true
        schema:
          description: Your Bandwidth Account ID.
          example: "9900000"
          type: string
        style: simple
      requestBody:
        $ref: "#/components/requestBodies/createSyncLookupRequest"
      responses:
        "200":
          content:
            application/json:
              examples:
                lookupCompleteWithDniExample:
                  $ref: "#/components/examples/lookupCompleteWithDniExample"
                lookupCompleteExample:
                  $ref: "#/components/examples/lookupCompleteExample"
                lookupPartialExample:
                  $ref: "#/components/examples/lookupPartialExample"
                lookupFailedExample:
                  $ref: "#/components/examples/lookupFailedExample"
              schema:
                $ref: "#/components/schemas/createSyncLookupResponse"
          description: OK
        default:
          content:
            application/json:
              examples:
                badRequest:
                  $ref: "#/components/examples/badRequestExample"
                unauthorized:
                  $ref: "#/components/examples/unauthorizedExample"
                forbidden:
                  $ref: "#/components/examples/forbiddenExample"
                mediaType:
                  $ref: "#/components/examples/unsupportedMediaTypeExample"
                notFound:
                  $ref: "#/components/examples/notFoundExample"
                tooManyRequests:
                  $ref: "#/components/examples/tooManyRequestsExample"
                internalServer:
                  $ref: "#/components/examples/internalServerErrorExample"
              schema:
                $ref: "#/components/schemas/lookupErrorResponse"
          description: Bad Request
      summary: Create Synchronous Number Lookup
      tags:
      - Phone Number Lookup
      x-content-type: application/json
      x-accepts:
      - application/json
    servers:
    - description: Production
      url: https://api.bandwidth.com/v2
  /accounts/{accountId}/phoneNumberLookup/bulk:
    post:
      description: "Creates an asynchronous bulk phone number lookup request. Maximum\
        \ of 15,000 telephone numbers per request. Use the [Get Asynchronous Bulk\
        \ Number Lookup](#tag/Phone-Number-Lookup/operation/getAsyncBulkLookup) endpoint\
        \ to check the status of the request and view the results."
      operationId: createAsyncBulkLookup
      parameters:
      - explode: false
        in: path
        name: accountId
        required: true
        schema:
          description: Your Bandwidth Account ID.
          example: "9900000"
          type: string
        style: simple
      requestBody:
        $ref: "#/components/requestBodies/createAsyncBulkLookupRequest"
      responses:
        "202":
          content:
            application/json:
              examples:
                lookupInProgressExample:
                  $ref: "#/components/examples/lookupInProgressExample"
              schema:
                $ref: "#/components/schemas/createAsyncBulkLookupResponse"
          description: Accepted
        default:
          content:
            application/json:
              examples:
                badRequest:
                  $ref: "#/components/examples/badRequestExample"
                unauthorized:
                  $ref: "#/components/examples/unauthorizedExample"
                forbidden:
                  $ref: "#/components/examples/forbiddenExample"
                mediaType:
                  $ref: "#/components/examples/unsupportedMediaTypeExample"
                notFound:
                  $ref: "#/components/examples/notFoundExample"
                tooManyRequests:
                  $ref: "#/components/examples/tooManyRequestsExample"
                internalServer:
                  $ref: "#/components/examples/internalServerErrorExample"
              schema:
                $ref: "#/components/schemas/lookupErrorResponse"
          description: Bad Request
      summary: Create Asynchronous Bulk Number Lookup
      tags:
      - Phone Number Lookup
      x-content-type: application/json
      x-accepts:
      - application/json
    servers:
    - description: Production
      url: https://api.bandwidth.com/v2
  /accounts/{accountId}/phoneNumberLookup/bulk/{requestId}:
    get:
      description: "Get an existing [Asynchronous Bulk Number Lookup](#tag/Phone-Number-Lookup/operation/createAsyncBulkLookup).\
        \ Use this endpoint to check the status of the request and view the results."
      operationId: getAsyncBulkLookup
      parameters:
      - explode: false
        in: path
        name: accountId
        required: true
        schema:
          description: Your Bandwidth Account ID.
          example: "9900000"
          type: string
        style: simple
      - explode: false
        in: path
        name: requestId
        required: true
        schema:
          description: The phone number lookup request ID from Bandwidth.
          example: 004223a0-8b17-41b1-bf81-20732adf5590
          format: uuid
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              examples:
                lookupCompleteWithDniExample:
                  $ref: "#/components/examples/lookupCompleteWithDniExample"
                lookupCompleteExample:
                  $ref: "#/components/examples/lookupCompleteExample"
                lookupInProgressExample:
                  $ref: "#/components/examples/lookupInProgressExample"
                lookupPartialExample:
                  $ref: "#/components/examples/lookupPartialExample"
                lookupFailedExample:
                  $ref: "#/components/examples/lookupFailedExample"
              schema:
                $ref: "#/components/schemas/getAsyncBulkLookupResponse"
          description: OK
        default:
          content:
            application/json:
              examples:
                badRequest:
                  $ref: "#/components/examples/badRequestExample"
                unauthorized:
                  $ref: "#/components/examples/unauthorizedExample"
                forbidden:
                  $ref: "#/components/examples/forbiddenExample"
                mediaType:
                  $ref: "#/components/examples/unsupportedMediaTypeExample"
                notFound:
                  $ref: "#/components/examples/notFoundExample"
                tooManyRequests:
                  $ref: "#/components/examples/tooManyRequestsExample"
                internalServer:
                  $ref: "#/components/examples/internalServerErrorExample"
              schema:
                $ref: "#/components/schemas/lookupErrorResponse"
          description: Bad Request
      summary: Get Asynchronous Bulk Number Lookup
      tags:
      - Phone Number Lookup
      x-accepts:
      - application/json
    servers:
    - description: Production
      url: https://api.bandwidth.com/v2
  /accounts/{accountId}/tollFreeVerification:
    post:
      callbacks:
        tfVerificationStatus:
          $ref: "#/components/callbacks/tfVerificationStatus"
      description: Submit a request for verification of a toll-free phone number.
      operationId: requestTollFreeVerification
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        $ref: "#/components/requestBodies/requestTollFreeVerificationRequest"
      responses:
        "202":
          description: Accepted
        "400":
          content:
            application/json:
              example:
                description: cannot process request.
                errors:
                  businessName: Business name is required.
                  businessContactEmail: Business contact email is not a valid email
                    address.
                  optInWorkflowImageURLs: Entries must be a valid array of objects.
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Bad Request
        "401":
          content:
            application/json:
              example:
                description: Client is providing incorrect or invalid credentials.
                type: unauthorized
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Unauthorized
        "403":
          content:
            application/json:
              example:
                description: Client is not authorized for the action.
                type: forbidden
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Forbidden
        "405":
          content:
            application/json:
              example:
                description: Method is not allowed.
                type: Method Not Allowed
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Method Not Allowed
        "429":
          content:
            application/json:
              example:
                description: Throttling error. Too many requests.
                type: Too Many Requests
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Too Many Requests
        "500":
          content:
            application/json:
              example:
                description: Internal Server Error.
                type: Internal Server Error
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Internal Server Error
        "503":
          content:
            application/json:
              example:
                description: Service Unavailable Error.
                type: Service Unavailable
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Service Unavailable
      summary: Request Toll-Free Verification
      tags:
      - Toll-Free Verification
      x-content-type: application/json
      x-accepts:
      - application/json
    servers:
    - description: Production
      url: https://api.bandwidth.com/api/v2
  /accounts/{accountId}/phoneNumbers/{phoneNumber}/tollFreeVerification:
    delete:
      description: Delete a toll-free verification submission for a toll-free number.
      operationId: deleteVerificationRequest
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      - description: Valid Toll-Free telephone number in E.164 format.
        example: "+18885555555"
        explode: false
        in: path
        name: phoneNumber
        required: true
        schema:
          $ref: "#/components/schemas/tfPhoneNumber"
        style: simple
      responses:
        "204":
          description: No Content
        "400":
          content:
            application/json:
              example:
                description: Cannot process request.
                type: bad request
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Bad Request
        "401":
          content:
            application/json:
              example:
                description: Client is providing incorrect or invalid credentials.
                type: unauthorized
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Unauthorized
        "403":
          content:
            application/json:
              example:
                description: Client is not authorized for the action.
                type: forbidden
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Forbidden
        "404":
          content:
            application/json:
              example:
                description: Cannot find the requested resource.
                type: Not Found
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Cannot find the requested resource.
        "405":
          content:
            application/json:
              example:
                description: Method is not allowed.
                type: Method Not Allowed
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Method Not Allowed
        "429":
          content:
            application/json:
              example:
                description: Throttling error. Too many requests.
                type: Too Many Requests
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Too Many Requests
        "500":
          content:
            application/json:
              example:
                description: Internal Server Error.
                type: Internal Server Error
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Internal Server Error
        "503":
          content:
            application/json:
              example:
                description: Service Unavailable Error.
                type: Service Unavailable
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Service Unavailable
      summary: Delete a Toll-Free Verification Submission
      tags:
      - Toll-Free Verification
      x-accepts:
      - application/json
    get:
      description: |-
        Gets the verification status for a phone number that is provisioned to your account.
        Submission information will be appended to the response if it is available.
      operationId: getTollFreeVerificationStatus
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      - description: Valid Toll-Free telephone number in E.164 format.
        example: "+18885555555"
        explode: false
        in: path
        name: phoneNumber
        required: true
        schema:
          $ref: "#/components/schemas/tfPhoneNumber"
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/tfvStatus"
          description: OK
        "400":
          content:
            application/json:
              example:
                description: Cannot process request.
                type: bad request
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Bad Request
        "401":
          content:
            application/json:
              example:
                description: Client is providing incorrect or invalid credentials.
                type: unauthorized
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Unauthorized
        "403":
          content:
            application/json:
              example:
                description: Client is not authorized for the action.
                type: forbidden
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Forbidden
        "404":
          content:
            application/json:
              example:
                description: Cannot find the requested resource.
                type: Not Found
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Cannot find the requested resource.
        "405":
          content:
            application/json:
              example:
                description: Method is not allowed.
                type: Method Not Allowed
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Method Not Allowed
        "429":
          content:
            application/json:
              example:
                description: Throttling error. Too many requests.
                type: Too Many Requests
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Too Many Requests
        "500":
          content:
            application/json:
              example:
                description: Internal Server Error.
                type: Internal Server Error
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Internal Server Error
        "503":
          content:
            application/json:
              example:
                description: Service Unavailable Error.
                type: Service Unavailable
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Service Unavailable
      summary: Get Toll-Free Verification Status
      tags:
      - Toll-Free Verification
      x-accepts:
      - application/json
    put:
      callbacks:
        tfVerificationStatus:
          $ref: "#/components/callbacks/tfVerificationStatus"
      description: |-
        Updates a toll-free verification request.
        Submissions are only eligible for resubmission for 7 days within being processed and if resubmission is allowed (resubmitAllowed field is true).
      operationId: updateTollFreeVerificationRequest
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      - description: Valid Toll-Free telephone number in E.164 format.
        example: "+18885555555"
        explode: false
        in: path
        name: phoneNumber
        required: true
        schema:
          $ref: "#/components/schemas/tfPhoneNumber"
        style: simple
      requestBody:
        $ref: "#/components/requestBodies/updateTollFreeVerificationRequestRequest"
      responses:
        "202":
          description: Accepted
        "400":
          content:
            application/json:
              example:
                description: cannot process request.
                errors:
                  businessName: Business name is required.
                  businessContactEmail: Business contact email is not a valid email
                    address.
                  optInWorkflowImageURLs: Entries must be a valid array of objects.
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Bad Request
        "401":
          content:
            application/json:
              example:
                description: Client is providing incorrect or invalid credentials.
                type: unauthorized
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Unauthorized
        "403":
          content:
            application/json:
              example:
                description: Client is not authorized for the action.
                type: forbidden
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Forbidden
        "405":
          content:
            application/json:
              example:
                description: Method is not allowed.
                type: Method Not Allowed
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Method Not Allowed
        "429":
          content:
            application/json:
              example:
                description: Throttling error. Too many requests.
                type: Too Many Requests
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Too Many Requests
        "500":
          content:
            application/json:
              example:
                description: Internal Server Error.
                type: Internal Server Error
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Internal Server Error
        "503":
          content:
            application/json:
              example:
                description: Service Unavailable Error.
                type: Service Unavailable
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Service Unavailable
      summary: Update Toll-Free Verification Request
      tags:
      - Toll-Free Verification
      x-content-type: application/json
      x-accepts:
      - application/json
    servers:
    - description: Production
      url: https://api.bandwidth.com/api/v2
  /accounts/{accountId}/tollFreeVerification/webhooks/subscriptions:
    get:
      description: |-
        Lists all webhook subscriptions that are registered to receive status updates for the toll-free verification requests submitted under this account (password will not be returned through this API
        If `basicAuthentication` is defined, the `password` property of that object will be null).
      operationId: listWebhookSubscriptions
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/webhookSubscriptionsListBody"
          description: OK
        "400":
          content:
            application/json:
              example:
                description: cannot process request.
                errors:
                  businessName: Business name is required.
                  businessContactEmail: Business contact email is not a valid email
                    address.
                  optInWorkflowImageURLs: Entries must be a valid array of objects.
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Bad Request
        "401":
          content:
            application/json:
              example:
                description: Client is providing incorrect or invalid credentials.
                type: unauthorized
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Unauthorized
        "403":
          content:
            application/json:
              example:
                description: Client is not authorized for the action.
                type: forbidden
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Forbidden
        "405":
          content:
            application/json:
              example:
                description: Method is not allowed.
                type: Method Not Allowed
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Method Not Allowed
        "429":
          content:
            application/json:
              example:
                description: Throttling error. Too many requests.
                type: Too Many Requests
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Too Many Requests
        "500":
          content:
            application/json:
              example:
                description: Internal Server Error.
                type: Internal Server Error
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Internal Server Error
        "503":
          content:
            application/json:
              example:
                description: Service Unavailable Error.
                type: Service Unavailable
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Service Unavailable
      summary: List Webhook Subscriptions
      tags:
      - Toll-Free Verification
      x-accepts:
      - application/json
    post:
      description: |-
        Create a new webhook subscription (this webhook will be called for every update on every submission).
        In addition to a `callbackUrl`, this subscription can provide optional HTTP basic authentication credentials (a username and a password).
        The returned subscription object will contain an ID that can be used to modify or delete the subscription at a later time.
      operationId: createWebhookSubscription
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        $ref: "#/components/requestBodies/webhookSubscriptionRequest"
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/webhookSubscription"
          description: Created
        "400":
          content:
            application/json:
              example:
                description: Cannot process request.
                type: bad request
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Bad Request
        "401":
          content:
            application/json:
              example:
                description: Client is providing incorrect or invalid credentials.
                type: unauthorized
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Unauthorized
        "403":
          content:
            application/json:
              example:
                description: Client is not authorized for the action.
                type: forbidden
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Forbidden
        "404":
          content:
            application/json:
              example:
                description: Cannot find the requested resource.
                type: Not Found
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Cannot find the requested resource.
        "405":
          content:
            application/json:
              example:
                description: Method is not allowed.
                type: Method Not Allowed
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Method Not Allowed
        "429":
          content:
            application/json:
              example:
                description: Throttling error. Too many requests.
                type: Too Many Requests
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Too Many Requests
        "500":
          content:
            application/json:
              example:
                description: Internal Server Error.
                type: Internal Server Error
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Internal Server Error
        "503":
          content:
            application/json:
              example:
                description: Service Unavailable Error.
                type: Service Unavailable
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Service Unavailable
      summary: Create Webhook Subscription
      tags:
      - Toll-Free Verification
      x-content-type: application/json
      x-accepts:
      - application/json
    servers:
    - description: Production
      url: https://api.bandwidth.com/api/v2
  /accounts/{accountId}/tollFreeVerification/webhooks/subscriptions/{id}:
    delete:
      description: Delete a webhook subscription by ID.
      operationId: deleteWebhookSubscription
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      - description: Webhook subscription ID
        example: 7bt57JcsVYJrN9K1OcV1Nu
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      responses:
        "204":
          description: No Content
        "400":
          content:
            application/json:
              example:
                description: Cannot process request.
                type: bad request
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Bad Request
        "401":
          content:
            application/json:
              example:
                description: Client is providing incorrect or invalid credentials.
                type: unauthorized
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Unauthorized
        "403":
          content:
            application/json:
              example:
                description: Client is not authorized for the action.
                type: forbidden
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Forbidden
        "404":
          content:
            application/json:
              example:
                description: Cannot find the requested resource.
                type: Not Found
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Cannot find the requested resource.
        "405":
          content:
            application/json:
              example:
                description: Method is not allowed.
                type: Method Not Allowed
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Method Not Allowed
        "429":
          content:
            application/json:
              example:
                description: Throttling error. Too many requests.
                type: Too Many Requests
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Too Many Requests
        "500":
          content:
            application/json:
              example:
                description: Internal Server Error.
                type: Internal Server Error
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Internal Server Error
        "503":
          content:
            application/json:
              example:
                description: Service Unavailable Error.
                type: Service Unavailable
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Service Unavailable
      summary: Delete Webhook Subscription
      tags:
      - Toll-Free Verification
      x-accepts:
      - application/json
    put:
      description: Update an existing webhook subscription (`callbackUrl` and `basicAuthentication`
        can be updated).
      operationId: updateWebhookSubscription
      parameters:
      - description: Your Bandwidth Account ID.
        example: "9900000"
        explode: false
        in: path
        name: accountId
        required: true
        schema:
          type: string
        style: simple
      - description: Webhook subscription ID
        example: 7bt57JcsVYJrN9K1OcV1Nu
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        $ref: "#/components/requestBodies/webhookSubscriptionRequest"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/webhookSubscription"
          description: OK
        "400":
          content:
            application/json:
              example:
                description: Cannot process request.
                type: bad request
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Bad Request
        "401":
          content:
            application/json:
              example:
                description: Client is providing incorrect or invalid credentials.
                type: unauthorized
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Unauthorized
        "403":
          content:
            application/json:
              example:
                description: Client is not authorized for the action.
                type: forbidden
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Forbidden
        "404":
          content:
            application/json:
              example:
                description: Cannot find the requested resource.
                type: Not Found
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Cannot find the requested resource.
        "405":
          content:
            application/json:
              example:
                description: Method is not allowed.
                type: Method Not Allowed
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Method Not Allowed
        "429":
          content:
            application/json:
              example:
                description: Throttling error. Too many requests.
                type: Too Many Requests
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Too Many Requests
        "500":
          content:
            application/json:
              example:
                description: Internal Server Error.
                type: Internal Server Error
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Internal Server Error
        "503":
          content:
            application/json:
              example:
                description: Service Unavailable Error.
                type: Service Unavailable
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Service Unavailable
      summary: Update Webhook Subscription
      tags:
      - Toll-Free Verification
      x-content-type: application/json
      x-accepts:
      - application/json
    servers:
    - description: Production
      url: https://api.bandwidth.com/api/v2
  /tollFreeVerification/useCases:
    get:
      description: Lists valid toll-free use cases.
      operationId: listTollFreeUseCases
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/useCases"
          description: OK
        "400":
          content:
            application/json:
              example:
                description: Cannot process request.
                type: bad request
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Bad Request
        "401":
          content:
            application/json:
              example:
                description: Client is providing incorrect or invalid credentials.
                type: unauthorized
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Unauthorized
        "403":
          content:
            application/json:
              example:
                description: Client is not authorized for the action.
                type: forbidden
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Forbidden
        "404":
          content:
            application/json:
              example:
                description: Cannot find the requested resource.
                type: Not Found
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Cannot find the requested resource.
        "405":
          content:
            application/json:
              example:
                description: Method is not allowed.
                type: Method Not Allowed
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Method Not Allowed
        "429":
          content:
            application/json:
              example:
                description: Throttling error. Too many requests.
                type: Too Many Requests
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Too Many Requests
        "500":
          content:
            application/json:
              example:
                description: Internal Server Error.
                type: Internal Server Error
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Internal Server Error
        "503":
          content:
            application/json:
              example:
                description: Service Unavailable Error.
                type: Service Unavailable
              schema:
                $ref: "#/components/schemas/tfvError"
          description: Service Unavailable
      summary: List Toll-Free Use Cases
      tags:
      - Toll-Free Verification
      x-accepts:
      - application/json
    servers:
    - description: Production
      url: https://api.bandwidth.com/api/v2
components:
  callbacks:
    inboundCallback:
      '{inboundCallbackUrl}':
        post:
          requestBody:
            content:
              application/json:
                examples:
                  smsMessageReceivedCallback:
                    $ref: "#/components/examples/smsMessageReceivedCallbackExample"
                  mmsMessageReceivedCallback:
                    $ref: "#/components/examples/mmsMessageReceivedCallbackExample"
                schema:
                  $ref: "#/components/schemas/inboundCallback"
            description: "<p>This Inbound Message Webhook is an envelope containing\
              \ either a received (MO) message to your \nmessage-enabled Bandwidth\
              \ telephone number or a multichannel client's response to a suggestion\
              \ response \nor location request. \n<p>The payload type will be one\
              \ of <code>message-received</code>, <code>suggestion-response</code>,\
              \ or <code>location-request-response</code>.\n<p>Note that <code>suggestion-response</code>\
              \ and <code>location-request-response</code> callback types are pertinent\
              \ only for RBM messages sent from the <code>/messages/multiChannel</code>\
              \ endpoint.\n</p><p>Please visit <a href='/docs/messaging/webhooks/'>Webhooks</a></p>"
            required: true
          responses:
            "200":
              description: OK
            "202":
              description: Accepted
    statusCallback:
      '{statusCallbackUrl}':
        post:
          requestBody:
            content:
              application/json:
                examples:
                  messageSendingCallback:
                    $ref: "#/components/examples/messageSendingCallbackExample"
                  smsMessageDeliveredCallback:
                    $ref: "#/components/examples/smsMessageDeliveredCallbackExample"
                  mmsMessageDeliveredCallback:
                    $ref: "#/components/examples/mmsMessageDeliveredCallbackExample"
                  groupMmsMessageDeliveredCallback:
                    $ref: "#/components/examples/groupMmsMessageDeliveredCallbackExample"
                  messageFailedCallback:
                    $ref: "#/components/examples/messageFailedCallbackExample"
                schema:
                  $ref: "#/components/schemas/statusCallback"
            description: |-
              <p>This Outbound Message Webhook is an envelope containing status information regarding a message sent (MT)
              from your message-enabled Bandwidth telephone number.
               <p>The payload type will be one of <code>message-sending</code>, <code>message-delivered</code>, <code>message-failed</code> or <code>message-read</code>.
               <p>Note that <code>message-read</code> callbacks are pertinent only for RBM messages sent from the <code>/messages/multiChannel</code> endpoint.
              </p><p>Please visit <a href='/docs/messaging/webhooks/'>Webhooks</a></p>
            required: true
          responses:
            "200":
              description: OK
            "202":
              description: Accepted
    tfVerificationStatus:
      your_url.com/webhookService:
        post:
          description: Unique webhook URL provided by customers to which Bandwidth
            sends a POST request to notify customer regarding TFV status updates.
          operationId: tfvRequest
          parameters:
          - description: "64-character lowercase hexidecimal HMAC calculated with\
              \ a shared secret key, the canonicalized request body, and SHA256. It\
              \ is only included when a shared secret key is set through webhook subscription."
            example: ca7b9e9816c90d336f5dca529e733354b81535c7af027b81878ac98afb2dbaa2
            explode: false
            in: header
            name: x-bandwidth-signature-hmac-sha256
            required: false
            schema:
              type: string
            style: simple
          requestBody:
            $ref: "#/components/requestBodies/verificationWebhookRequest"
          responses:
            "204":
              description: No Content
            "400":
              content:
                application/json:
                  example:
                    description: Cannot process request.
                    type: bad request
                  schema:
                    $ref: "#/components/schemas/tfvError"
              description: Bad Request
            "401":
              content:
                application/json:
                  example:
                    description: Client is providing incorrect or invalid credentials.
                    type: unauthorized
                  schema:
                    $ref: "#/components/schemas/tfvError"
              description: Unauthorized
            "403":
              content:
                application/json:
                  example:
                    description: Client is not authorized for the action.
                    type: forbidden
                  schema:
                    $ref: "#/components/schemas/tfvError"
              description: Forbidden
            "404":
              content:
                application/json:
                  example:
                    description: Cannot find the requested resource.
                    type: Not Found
                  schema:
                    $ref: "#/components/schemas/tfvError"
              description: Cannot find the requested resource.
            "405":
              content:
                application/json:
                  example:
                    description: Method is not allowed.
                    type: Method Not Allowed
                  schema:
                    $ref: "#/components/schemas/tfvError"
              description: Method Not Allowed
            "429":
              content:
                application/json:
                  example:
                    description: Throttling error. Too many requests.
                    type: Too Many Requests
                  schema:
                    $ref: "#/components/schemas/tfvError"
              description: Too Many Requests
            "500":
              content:
                application/json:
                  example:
                    description: Internal Server Error.
                    type: Internal Server Error
                  schema:
                    $ref: "#/components/schemas/tfvError"
              description: Internal Server Error
            "503":
              content:
                application/json:
                  example:
                    description: Service Unavailable Error.
                    type: Service Unavailable
                  schema:
                    $ref: "#/components/schemas/tfvError"
              description: Service Unavailable
          summary: TFV status updates sent to customer's webhook URL.
  examples:
    smsMessageReceivedCallbackExample:
      summary: An example of a sms message-received callback body.
      value:
        time: 2025-01-06T15:43:35.502180Z
        type: message-received
        to: "+12345678902"
        description: Incoming message received
        message:
          id: 14762070468292kw2fuqty55yp2b2
          owner: "+12345678902"
          applicationId: 93de2206-9669-4e07-948d-329f4b722ee2
          time: 2025-01-06T15:43:34.000000Z
          segmentCount: 1
          direction: in
          to:
          - "+12345678902"
          from: "+12345678901"
          text: "Hey, check out this SMS!"
    mmsMessageReceivedCallbackExample:
      summary: An example of a mms message-received callback body.
      value:
        time: 2024-09-14T18:20:45.160744Z
        type: message-received
        to: "+12345678902"
        description: Incoming message received
        message:
          id: 14762070468292kw2fuqty55yp2b2
          owner: "+12345678902"
          applicationId: 93de2206-9669-4e07-948d-329f4b722ee2
          time: 2024-09-14T18:20:45.160744Z
          segmentCount: 1
          direction: in
          to:
          - "+12345678902"
          - "+12345678903"
          from: "+12345678901"
          text: "Hey, check out the MMS!"
          media:
          - https://messaging.bandwidth.com/api/v2/users/9900902/media/14762070468292kw2fuqty55yp2b2/0/bw.png
    messageSendingCallbackExample:
      summary: An example of a message-sending callback body.
      value:
        time: 2024-06-25T18:42:36.979456Z
        type: message-sending
        to: "+15554443333"
        description: Message is sending to carrier.
        message:
          id: 1593110555875xo7watq5px6rbe5d
          owner: "+15552221111"
          applicationId: cfd4fb83-7531-4acc-b471-42d0bb76a65c
          time: 2024-06-25T18:42:35.876906Z
          segmentCount: 1
          direction: out
          to:
          - "+15554443333"
          from: "+15552221111"
          text: ""
          media:
          - https://dev.bandwidth.com/images/bandwidth-logo.png
          tag: your tag here
    smsMessageDeliveredCallbackExample:
      summary: An example of a sms message-delivered callback body.
      value:
        type: message-delivered
        time: 2024-09-14T18:20:11.160744Z
        description: Message delivered to carrier.
        to: "+12345678902"
        message:
          id: 14762070468292kw2fuqty55yp2b2
          time: 2024-09-14T18:20:11.160744Z
          to:
          - "+12345678902"
          from: "+12345678901"
          text: ""
          applicationId: 93de2206-9669-4e07-948d-329f4b722ee2
          owner: "+12345678902"
          direction: out
          segmentCount: 1
    mmsMessageDeliveredCallbackExample:
      summary: An example of a mms message-delivered callback body.
      value:
        type: message-delivered
        time: 2024-09-14T18:20:24.160544Z
        description: Message delivered to carrier.
        to: "+12345678902"
        message:
          id: 14762070468292kw2fuqty55yp2b2
          time: 2024-09-14T18:20:24.160544Z
          to:
          - "+12345678902"
          from: "+12345678901"
          text: ""
          applicationId: 93de2206-9669-4e07-948d-329f4b722ee2
          owner: "+12345678902"
          direction: out
          segmentCount: 1
          media:
          - https://dev.bandwidth.com/images/bandwidth-logo.png
    groupMmsMessageDeliveredCallbackExample:
      summary: An example of a group mms message-delivered callback body.
      value:
        type: message-delivered
        time: 2024-09-14T18:20:17.160544Z
        description: Message delivered to carrier.
        to: "+12345678902"
        message:
          id: 14762070468292kw2fuqty55yp2b2
          time: 2024-09-14T18:20:17.160544Z
          to:
          - "+12345678902"
          - "+12345678903"
          from: "+12345678901"
          text: ""
          applicationId: 93de2206-9669-4e07-948d-329f4b722ee2
          owner: "+12345678902"
          direction: out
          segmentCount: 1
    messageFailedCallbackExample:
      summary: An example of a message-failed callback body.
      value:
        type: message-failed
        time: 2024-12-18T16:51:27.704450Z
        description: forbidden to country
        to: "+52345678903"
        errorCode: 4432
        message:
          id: 14762070468292kw2fuqty55yp2b2
          time: 2024-12-18T16:51:27.704450Z
          to:
          - "+12345678902"
          - "+52345678903"
          from: "+12345678901"
          text: ""
          applicationId: 93de2206-9669-4e07-948d-329f4b722ee2
          media:
          - https://dev.bandwidth.com/images/bandwidth-logo.png
          owner: "+12345678901"
          direction: out
          segmentCount: 1
    createCallResponseExample:
      summary: Example of a createCall Response
      value:
        applicationId: 04e88489-df02-4e34-a0ee-27a91849555f
        accountId: "9900000"
        callId: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        to: "+19195551234"
        from: "+19195554312"
        enqueuedTime: 2022-06-16T13:15:07.160Z
        callUrl: https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        callTimeout: 30
        callbackTimeout: 15
        tag: My custom tag value
        answerMethod: POST
        answerUrl: https://myServer.example/bandwidth/webhooks/answer
        answerFallbackMethod: POST
        answerFallbackUrl: https://myServer.example/bandwidth/webhooks/answerFallback
        disconnectMethod: POST
        disconnectUrl: https://myServer.example/bandwidth/webhooks/disconnect
        username: mySecretUsername
        password: '*****'
        fallbackUsername: mySecretUsername
        fallbackPassword: '*****'
        priority: 5
    listConferencesResponseExample:
      summary: Example of a listConferences Response
      value:
      - id: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
        name: my-conference-name
        createdTime: 2022-06-17T22:19:40.375Z
        completedTime: 2022-06-17T22:20:00.000Z
        conferenceEventUrl: https://myServer.example/bandwidth/webhooks/conferenceEvent
        conferenceEventMethod: POST
        tag: my custom tag
    voiceBadRequestErrorExample:
      summary: Example of a Bad Request (400) Error
      value:
        type: validation
        description: "Invalid answerUrl: only http and https are allowed."
    voiceUnauthorizedErrorExample:
      summary: Example of an Unauthorized (401) Error
      value:
        type: validation
        description: "Invalid answerUrl: only http and https are allowed."
    voiceForbiddenErrorExample:
      summary: Example of a Forbidden (403) Error
      value:
        type: validation
        description: "Invalid answerUrl: only http and https are allowed."
    voiceNotFoundErrorExample:
      summary: Example of a Not Found (404) Error
      value:
        type: validation
        description: "Invalid answerUrl: only http and https are allowed."
    voiceNotAllowedErrorExample:
      summary: Example of a Not Allowed (405) Error
      value:
        type: validation
        description: "Invalid answerUrl: only http and https are allowed."
    voiceConflictErrorExample:
      summary: Example of a Conflict (409) Error
      value:
        type: validation
        description: "Invalid answerUrl: only http and https are allowed."
    voiceUnsupportedMediaTypeErrorExample:
      summary: Example of an Unsupported Media Type (415) Error
      value:
        type: validation
        description: "Invalid answerUrl: only http and https are allowed."
    voiceTooManyRequestsErrorExample:
      summary: Example of a Too Many Requests (429) Error
      value:
        type: validation
        description: "Invalid answerUrl: only http and https are allowed."
    voiceInternalServerErrorExample:
      summary: Example of an Internal Server (500) Error
      value:
        type: validation
        description: "Invalid answerUrl: only http and https are allowed."
    singleNumberRequestExample:
      summary: Number Lookup Request
      value:
        phoneNumbers:
        - "+19196104423"
    multipleNumberRequestExample:
      summary: Number Lookup Request for Multiple Numbers
      value:
        phoneNumbers:
        - "+19196104423"
        - "+19196104424"
    lookupInProgressExample:
      summary: Numbers Lookup In Progress
      value:
        links:
        - href: href
          rel: rel
          method: GET
        data:
          requestId: 004223a0-8b17-41b1-bf81-20732adf5590
          status: IN_PROGRESS
          results: []
        errors: []
    lookupFailedExample:
      summary: Numbers Lookup Failed
      value:
        links:
        - href: href
          rel: rel
          method: GET
        data:
          requestId: 004223a0-8b17-41b1-bf81-20732adf5590
          status: FAILED
          results: []
        errors:
        - code: NO-MATCH
          description: The following TNs could not be found in the Number Industry
            data
          meta:
            phoneNumbers:
            - "+13992077164"
            message: Invalid TNs
            code: 1001
          type: NumberInventory
    lookupPartialExample:
      summary: Numbers Lookup Partial Complete
      value:
        links:
        - href: href
          rel: rel
          method: GET
        data:
          requestId: 004223a0-8b17-41b1-bf81-20732adf5590
          status: PARTIAL_COMPLETE
          results:
          - phoneNumber: "+19196104423"
            lineType: MOBILE
            messagingProvider: Verizon Wireless
            voiceProvider: Verizon Wireless
            countryCodeA3: USA
          - phoneNumber: "+19196104424"
            lineType: MOBILE
            messagingProvider: T-Mobile USA
            voiceProvider: T-Mobile USA
            countryCodeA3: USA
        errors:
        - code: NO-MATCH
          description: The following TNs could not be found in the Number Industry
            data
          meta:
            phoneNumbers:
            - "+13992077164"
            message: Invalid TNs
            code: 1001
          type: NumberInventory
    lookupCompleteExample:
      summary: Numbers Lookup Complete (without DNI)
      value:
        links:
        - href: href
          rel: rel
          method: GET
        data:
          requestId: 004223a0-8b17-41b1-bf81-20732adf5590
          status: COMPLETE
          results:
          - phoneNumber: "+10072904497"
            lineType: MOBILE
            messagingProvider: Verizon Wireless
            voiceProvider: Verizon Wireless
            countryCodeA3: USA
          - phoneNumber: "+10072904498"
            lineType: MOBILE
            messagingProvider: T-Mobile USA
            voiceProvider: T-Mobile USA
            countryCodeA3: USA
        errors: []
    lookupCompleteWithDniExample:
      summary: Numbers Lookup Complete (with DNI)
      value:
        links:
        - href: href
          rel: rel
          method: GET
        data:
          requestId: 20732adf-bf81-8b17-41b1-004223a05590
          status: COMPLETE
          results:
          - phoneNumber: "+10072904497"
            countryCodeA3: USA
            lineType: MOBILE
            messagingProvider: T-MOBILE USA INC
            voiceProvider: T-MOBILE USA INC
            latestMessageDeliveryStatus: ACTIVE
            initialMessageDeliveryStatusDate: 2025-05-14
            latestMessageDeliveryStatusDate: 2025-05-18
          - phoneNumber: "+10072904498"
            countryCodeA3: USA
            lineType: FIXED
            voiceProvider: VERIZON
            latestMessageDeliveryStatus: DEACTIVATED
            initialMessageDeliveryStatusDate: 2025-09-05
            latestMessageDeliveryStatusDate: 2025-09-05
          - phoneNumber: "+10072904499"
            lineType: MOBILE
            countryCodeA3: USA
            messagingProvider: VERIZON
            voiceProvider: VERIZON
            deactivationReporter: Verizon Wireless
            deactivationDate: 2025-09-29 01:23:00
            deactivationEvent: DEACTIVATED
            latestMessageDeliveryStatus: UNKNOWN
        errors: []
    badRequestExample:
      summary: Example Bad Request Error
      value:
        links: []
        data: {}
        errors:
        - type: bad-request
          description: Bad Request. Ensure that you have set the requestId as a URL
            path parameter.
    unauthorizedExample:
      summary: Unauthorized Error
      value:
        links: []
        data: {}
        errors:
        - type: Unauthorized
          description: You are not authorized to access this resource.
          code: "1"
        page: null
    forbiddenExample:
      summary: Forbidden Error
      value:
        links: []
        data: {}
        errors:
        - type: Forbidden
          description: You do not have permission to access this resource.
          code: "2"
        page: null
    unsupportedMediaTypeExample:
      summary: Unsupported Media Type Error
      value:
        links: []
        data: {}
        errors:
        - type: invalid-content-type
          description: Invalid content-type. Ensure that your content-type header
            is set to application/json.
    notFoundExample:
      summary: Not Found Error
      value:
        links: []
        data: {}
        errors:
        - type: not-found
          description: RequestId not found. Ensure that the requestId used in the
            URL path is valid and maps to a previous request that was submitted.
    tooManyRequestsExample:
      summary: Too Many Requests Error
      value:
        links: []
        data: {}
        errors:
        - type: rate-limiting
          description: Rate limit exceeded. Wait for the time specified in the Retry-After
            header before sending another request.
    internalServerErrorExample:
      summary: Internal Server Error
      value:
        links: []
        data: {}
        errors:
        - code: "500"
          type: unexpected-error
          description: Unexpected error. Please contact Bandwidth Support if your
            requests are receiving this status code for an extended period of time.
  parameters:
    accountId:
      description: Your Bandwidth Account ID.
      example: "9900000"
      explode: false
      in: path
      name: accountId
      required: true
      schema:
        type: string
      style: simple
    mediaId:
      description: Media ID to retrieve.
      example: 14762070468292kw2fuqty55yp2b2/0/bw.png
      explode: false
      in: path
      name: mediaId
      required: true
      schema:
        type: string
      style: simple
    contentType:
      description: The media type of the entity-body.
      example: audio/wav
      explode: false
      in: header
      name: Content-Type
      required: false
      schema:
        type: string
      style: simple
    cacheControl:
      description: General-header field is used to specify directives that MUST be
        obeyed by all caching mechanisms along the request/response chain.
      example: no-cache
      explode: false
      in: header
      name: Cache-Control
      required: false
      schema:
        type: string
      style: simple
    continuationToken:
      description: Continuation token used to retrieve subsequent media.
      example: 1XEi2tsFtLo1JbtLwETnM1ZJ+PqAa8w6ENvC5QKvwyrCDYII663Gy5M4s40owR1tjkuWUif6qbWvFtQJR5/ipqbUnfAqL254LKNlPy6tATCzioKSuHuOqgzloDkSwRtX0LtcL2otHS69hK343m+SjdL+vlj71tT39
      explode: false
      in: header
      name: Continuation-Token
      required: false
      schema:
        type: string
      style: simple
    messageId:
      description: "The ID of the message to search for. Special characters need to\
        \ be encoded using URL encoding. Message IDs could come in different formats,\
        \ e.g., 9e0df4ca-b18d-40d7-a59f-82fcdf5ae8e6 and 1589228074636lm4k2je7j7jklbn2\
        \ are valid message ID formats. Note that you must include at least one query\
        \ parameter."
      example: 9e0df4ca-b18d-40d7-a59f-82fcdf5ae8e6
      explode: true
      in: query
      name: messageId
      required: false
      schema:
        type: string
      style: form
    sourceTn:
      description: "The phone number that sent the message. Accepted values are: a\
        \ single full phone number a comma separated list of full phone numbers (maximum\
        \ of 10) or a single partial phone number (minimum of 5 characters e.g. '%2B1919')."
      example: '%2B15554443333'
      explode: true
      in: query
      name: sourceTn
      required: false
      schema:
        type: string
      style: form
    destinationTn:
      description: "The phone number that received the message. Accepted values are:\
        \ a single full phone number a comma separated list of full phone numbers\
        \ (maximum of 10) or a single partial phone number (minimum of 5 characters\
        \ e.g. '%2B1919')."
      example: '%2B15554443333'
      explode: true
      in: query
      name: destinationTn
      required: false
      schema:
        type: string
      style: form
    messageStatus:
      description: The status of the message. One of RECEIVED QUEUED SENDING SENT
        FAILED DELIVERED ACCEPTED UNDELIVERED.
      explode: true
      in: query
      name: messageStatus
      required: false
      schema:
        $ref: "#/components/schemas/messageStatusEnum"
      style: form
    messageDirection:
      description: The direction of the message. One of INBOUND OUTBOUND.
      explode: true
      in: query
      name: messageDirection
      required: false
      schema:
        $ref: "#/components/schemas/listMessageDirectionEnum"
      style: form
    carrierName:
      description: The name of the carrier used for this message. Possible values
        include but are not limited to Verizon and TMobile. Special characters need
        to be encoded using URL encoding (i.e. AT&T should be passed as AT%26T).
      example: Verizon
      explode: true
      in: query
      name: carrierName
      required: false
      schema:
        type: string
      style: form
    messageType:
      description: The type of message. Either sms or mms.
      explode: true
      in: query
      name: messageType
      required: false
      schema:
        $ref: "#/components/schemas/messageTypeEnum"
      style: form
    errorCode:
      description: The error code of the message.
      example: 9902
      explode: true
      in: query
      name: errorCode
      required: false
      schema:
        type: integer
      style: form
    fromDateTime:
      description: The start of the date range to search in ISO 8601 format. Uses
        the message receive time. The date range to search in is currently 14 days.
      example: 2022-09-14T18:20:16.000Z
      explode: true
      in: query
      name: fromDateTime
      required: false
      schema:
        type: string
      style: form
    toDateTime:
      description: The end of the date range to search in ISO 8601 format. Uses the
        message receive time. The date range to search in is currently 14 days.
      example: 2022-09-14T18:20:16.000Z
      explode: true
      in: query
      name: toDateTime
      required: false
      schema:
        type: string
      style: form
    campaignId:
      description: The campaign ID of the message.
      example: CJEUMDK
      explode: true
      in: query
      name: campaignId
      required: false
      schema:
        type: string
      style: form
    fromBwLatency:
      description: The minimum Bandwidth latency of the message in seconds. Only available
        for accounts with the Advanced Quality Metrics feature enabled.
      example: 5
      explode: true
      in: query
      name: fromBwLatency
      required: false
      schema:
        type: integer
      style: form
    bwQueued:
      description: A boolean value indicating whether the message is queued in the
        Bandwidth network.
      example: true
      explode: true
      in: query
      name: bwQueued
      required: false
      schema:
        type: boolean
      style: form
    product:
      description: Messaging product associated with the message.
      example: P2P
      explode: true
      in: query
      name: product
      required: false
      schema:
        $ref: "#/components/schemas/productTypeEnum"
      style: form
    location:
      description: Location Id associated with the message.
      example: 123ABC
      explode: true
      in: query
      name: location
      required: false
      schema:
        type: string
      style: form
    carrierQueued:
      description: A boolean value indicating whether the message is queued in the
        carrier network. Only available for OUTBOUND messages from accounts with the
        Advanced Quality Metrics feature enabled.
      example: true
      explode: true
      in: query
      name: carrierQueued
      required: false
      schema:
        type: boolean
      style: form
    fromCarrierLatency:
      description: The minimum carrier latency of the message in seconds. Only available
        for OUTBOUND messages from accounts with the Advanced Quality Metrics feature
        enabled.
      example: 50
      explode: true
      in: query
      name: fromCarrierLatency
      required: false
      schema:
        type: integer
      style: form
    callingNumberCountryA3:
      description: Calling number country in A3 format.
      example: USA
      explode: true
      in: query
      name: callingNumberCountryA3
      required: false
      schema:
        type: string
      style: form
    calledNumberCountryA3:
      description: Called number country in A3 format.
      example: USA
      explode: true
      in: query
      name: calledNumberCountryA3
      required: false
      schema:
        type: string
      style: form
    fromSegmentCount:
      description: Segment count (start range).
      example: 1
      explode: true
      in: query
      name: fromSegmentCount
      required: false
      schema:
        type: integer
      style: form
    toSegmentCount:
      description: Segment count (end range).
      example: 3
      explode: true
      in: query
      name: toSegmentCount
      required: false
      schema:
        type: integer
      style: form
    fromMessageSize:
      description: Message size (start range).
      example: 100
      explode: true
      in: query
      name: fromMessageSize
      required: false
      schema:
        type: integer
      style: form
    toMessageSize:
      description: Message size (end range).
      example: 120
      explode: true
      in: query
      name: toMessageSize
      required: false
      schema:
        type: integer
      style: form
    sort:
      description: The field and direction to sort by combined with a colon. Direction
        is either asc or desc.
      example: sourceTn:desc
      explode: true
      in: query
      name: sort
      required: false
      schema:
        type: string
      style: form
    pageToken:
      description: A base64 encoded value used for pagination of results.
      example: gdEewhcJLQRB5
      explode: true
      in: query
      name: pageToken
      required: false
      schema:
        type: string
      style: form
    limit:
      description: The maximum records requested in search result. Default 100. The
        sum of limit and after cannot be more than 10000.
      example: 50
      explode: true
      in: query
      name: limit
      required: false
      schema:
        type: integer
      style: form
    limitTotalCount:
      description: "When set to true, the response's totalCount field will have a\
        \ maximum value of 10,000. When set to false, or excluded, this will give\
        \ an accurate totalCount of all messages that match the provided filters.\
        \ If you are experiencing latency, try using this parameter to limit your\
        \ results."
      example: true
      explode: true
      in: query
      name: limitTotalCount
      required: false
      schema:
        type: boolean
      style: form
    callId:
      description: Programmable Voice API Call ID.
      example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
      explode: false
      in: path
      name: callId
      required: true
      schema:
        type: string
      style: simple
    recordingId:
      description: Programmable Voice API Recording ID.
      example: r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
      explode: false
      in: path
      name: recordingId
      required: true
      schema:
        type: string
      style: simple
    conferenceId:
      description: Programmable Voice API Conference ID.
      example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
      explode: false
      in: path
      name: conferenceId
      required: true
      schema:
        type: string
      style: simple
    memberId:
      description: Programmable Voice API Conference Member ID.
      example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
      explode: false
      in: path
      name: memberId
      required: true
      schema:
        type: string
      style: simple
    transcriptionId:
      description: Programmable Voice API Transcription ID.
      example: t-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
      explode: false
      in: path
      name: transcriptionId
      required: true
      schema:
        type: string
      style: simple
    to:
      description: Filter results by the `to` field.
      example: '%2b19195551234'
      explode: true
      in: query
      name: to
      required: false
      schema:
        type: string
      style: form
    from:
      description: Filter results by the `from` field.
      example: '%2b19195554321'
      explode: true
      in: query
      name: from
      required: false
      schema:
        type: string
      style: form
    name:
      description: Filter results by the `name` field.
      example: my-custom-name
      explode: true
      in: query
      name: name
      required: false
      schema:
        type: string
      style: form
    minCreatedTime:
      description: Filter results to conferences which have a `createdTime` after
        or at `minCreatedTime` (in ISO8601 format).
      example: 2022-06-21T19:13:21Z
      explode: true
      in: query
      name: minCreatedTime
      required: false
      schema:
        type: string
      style: form
    maxCreatedTime:
      description: Filter results to conferences which have a `createdTime` before
        or at `maxCreatedTime` (in ISO8601 format).
      example: 2022-06-21T19:13:21Z
      explode: true
      in: query
      name: maxCreatedTime
      required: false
      schema:
        type: string
      style: form
    minStartTime:
      description: Filter results to recordings which have a `startTime` after or
        including `minStartTime` (in ISO8601 format).
      example: 2022-06-21T19:13:21Z
      explode: true
      in: query
      name: minStartTime
      required: false
      schema:
        type: string
      style: form
    maxStartTime:
      description: Filter results to recordings which have a `startTime` before `maxStartTime`
        (in ISO8601 format).
      example: 2022-06-21T19:13:21Z
      explode: true
      in: query
      name: maxStartTime
      required: false
      schema:
        type: string
      style: form
    pageSize:
      description: Specifies the max number of conferences that will be returned.
      example: 500
      explode: true
      in: query
      name: pageSize
      required: false
      schema:
        default: 1000
        format: int32
        maximum: 1000
        minimum: 1
        type: integer
      style: form
    minStartTimeCalls:
      description: Filter results to calls which have a `startTime` after or including
        `minStartTime` (in ISO8601 format).
      example: 2022-06-21T19:13:21Z
      explode: true
      in: query
      name: minStartTime
      required: false
      schema:
        type: string
      style: form
    maxStartTimeCalls:
      description: Filter results to calls which have a `startTime` before or including
        `maxStartTime` (in ISO8601 format).
      example: 2022-06-21T19:13:21Z
      explode: true
      in: query
      name: maxStartTime
      required: false
      schema:
        type: string
      style: form
    pageSizeCalls:
      description: Specifies the max number of calls that will be returned.
      example: 500
      explode: true
      in: query
      name: pageSize
      required: false
      schema:
        default: 1000
        format: int32
        maximum: 10000
        minimum: 1
        type: integer
      style: form
    pageToken1:
      description: "Not intended for explicit use. To use pagination, follow the links\
        \ in the `Link` header of the response, as indicated in the endpoint description."
      example: eyJwYWdlVG9rZW4iOiJ0b2tlbiJ9
      explode: true
      in: query
      name: pageToken
      required: false
      schema:
        type: string
      style: form
    disconnectCause:
      description: Filter results to calls with specified call Disconnect Cause.
      example: hangup
      explode: true
      in: query
      name: disconnectCause
      required: false
      schema:
        type: string
      style: form
    accountId1:
      explode: false
      in: path
      name: accountId
      required: true
      schema:
        description: Your Bandwidth Account ID.
        example: "9900000"
        type: string
      style: simple
    requestId:
      explode: false
      in: path
      name: requestId
      required: true
      schema:
        description: The phone number lookup request ID from Bandwidth.
        example: 004223a0-8b17-41b1-bf81-20732adf5590
        format: uuid
        type: string
      style: simple
    tfPhoneNumberPathParam:
      description: Valid Toll-Free telephone number in E.164 format.
      example: "+18885555555"
      explode: false
      in: path
      name: phoneNumber
      required: true
      schema:
        $ref: "#/components/schemas/tfPhoneNumber"
      style: simple
    webhookSubscriptionIdPathParam:
      description: Webhook subscription ID
      example: 7bt57JcsVYJrN9K1OcV1Nu
      explode: false
      in: path
      name: id
      required: true
      schema:
        type: string
      style: simple
  requestBodies:
    createMessageRequest:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/messageRequest"
      required: true
    createMultiChannelMessageRequest:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/multiChannelMessageRequest"
      required: true
    uploadMediaRequest:
      content:
        application/json:
          schema:
            format: binary
            type: string
        application/ogg:
          schema:
            format: binary
            type: string
        application/pdf:
          schema:
            format: binary
            type: string
        application/rtf:
          schema:
            format: binary
            type: string
        application/zip:
          schema:
            format: binary
            type: string
        application/x-tar:
          schema:
            format: binary
            type: string
        application/xml:
          schema:
            format: binary
            type: string
        application/gzip:
          schema:
            format: binary
            type: string
        application/x-bzip2:
          schema:
            format: binary
            type: string
        application/x-gzip:
          schema:
            format: binary
            type: string
        application/smil:
          schema:
            format: binary
            type: string
        application/javascript:
          schema:
            format: binary
            type: string
        audio/mp4:
          schema:
            format: binary
            type: string
        audio/mpeg:
          schema:
            format: binary
            type: string
        audio/ogg:
          schema:
            format: binary
            type: string
        audio/flac:
          schema:
            format: binary
            type: string
        audio/webm:
          schema:
            format: binary
            type: string
        audio/wav:
          schema:
            format: binary
            type: string
        audio/amr:
          schema:
            format: binary
            type: string
        audio/3gpp:
          schema:
            format: binary
            type: string
        image/bmp:
          schema:
            format: binary
            type: string
        image/gif:
          schema:
            format: binary
            type: string
        image/heic:
          schema:
            format: binary
            type: string
        image/heif:
          schema:
            format: binary
            type: string
        image/jpeg:
          schema:
            format: binary
            type: string
        image/pjpeg:
          schema:
            format: binary
            type: string
        image/png:
          schema:
            format: binary
            type: string
        image/svg+xml:
          schema:
            format: binary
            type: string
        image/tiff:
          schema:
            format: binary
            type: string
        image/webp:
          schema:
            format: binary
            type: string
        image/x-icon:
          schema:
            format: binary
            type: string
        text/css:
          schema:
            format: binary
            type: string
        text/csv:
          schema:
            format: binary
            type: string
        text/calendar:
          schema:
            format: binary
            type: string
        text/html:
          schema:
            format: binary
            type: string
        text/plain:
          schema:
            format: binary
            type: string
        text/javascript:
          schema:
            format: binary
            type: string
        text/vcard:
          schema:
            format: binary
            type: string
        text/vnd.wap.wml:
          schema:
            format: binary
            type: string
        text/xml:
          schema:
            format: binary
            type: string
        video/avi:
          schema:
            format: binary
            type: string
        video/mp4:
          schema:
            format: binary
            type: string
        video/mpeg:
          schema:
            format: binary
            type: string
        video/ogg:
          schema:
            format: binary
            type: string
        video/quicktime:
          schema:
            format: binary
            type: string
        video/webm:
          schema:
            format: binary
            type: string
        video/x-ms-wmv:
          schema:
            format: binary
            type: string
        video/x-flv:
          schema:
            format: binary
            type: string
      required: true
    createCallRequest:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/createCall"
      description: JSON object containing information to create an outbound call
      required: true
    updateCallRequest:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/updateCall"
      description: JSON object containing information to redirect an existing call
        to a new BXML document
      required: true
    updateCallBxmlRequest:
      content:
        application/xml:
          examples:
            speakSentence:
              summary: Speak Sentence
              value: |-
                <?xml version=\"1.0\" encoding=\"UTF-8\"?>
                <Bxml>
                  <SpeakSentence>This is a test sentence.</SpeakSentence>
                </Bxml>
            redirectUrl:
              summary: Redirect
              value: |-
                <?xml version=\"1.0\" encoding=\"UTF-8\"?>
                <Bxml>
                  <Redirect redirectUrl="https://test.example" redirectMethod="GET"/>
                </Bxml>
          schema:
            description: A valid BXML document to replace the call's current BXML.
            type: string
      required: true
    updateCallRecordingRequest:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/updateCallRecording"
      required: true
    transcribeRecordingRequest:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/transcribeRecording"
      required: true
    updateConferenceRequest:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/updateConference"
      required: true
    updateConferenceBxmlRequest:
      content:
        application/xml:
          examples:
            stopRecording:
              summary: Stop Recording
              value: |-
                <?xml version="1.0" encoding="UTF-8"?>
                <Bxml>
                    <StopRecording/>
                </Bxml>
          schema:
            description: A valid BXML document to replace the call's current BXML.
            type: string
      required: true
    updateConferenceMemberRequest:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/updateConferenceMember"
      required: true
    codeRequest:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/codeRequest"
      description: MFA code request body.
      required: true
    codeVerify:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/verifyCodeRequest"
      description: MFA code verify request body.
      required: true
    createSyncLookupRequest:
      content:
        application/json:
          examples:
            singleNumberRequestExample:
              $ref: "#/components/examples/singleNumberRequestExample"
            multipleNumberRequestExample:
              $ref: "#/components/examples/multipleNumberRequestExample"
          schema:
            $ref: "#/components/schemas/syncLookupRequest"
      description: Synchronous phone number lookup request.
      required: true
    createAsyncBulkLookupRequest:
      content:
        application/json:
          examples:
            multipleNumberRequestExample:
              $ref: "#/components/examples/multipleNumberRequestExample"
          schema:
            $ref: "#/components/schemas/asyncLookupRequest"
      description: Asynchronous bulk phone number lookup request.
      required: true
    requestTollFreeVerificationRequest:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/verificationRequest"
      description: Request for verification of a toll-free phone number.
      required: true
    updateTollFreeVerificationRequestRequest:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/tfvSubmissionWrapper"
      description: Update a request for verification of a toll-free phone number.
      required: true
    verificationWebhookRequest:
      content:
        application/json:
          schema:
            oneOf:
            - $ref: "#/components/schemas/verificationWebhook"
            - $ref: "#/components/schemas/verificationDenialWebhook"
            - $ref: "#/components/schemas/failureWebhook"
            - $ref: "#/components/schemas/blockedWebhook"
      description: Verification callback status of a toll-free phone number.
      required: true
    webhookSubscriptionRequest:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/webhookSubscriptionRequestSchema"
      description: Information about a webhook that Bandwidth should send upon the
        completion of event customer is trying to subscribe to.
      required: true
  responses:
    createMessageResponse:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/message"
      description: Accepted
    createMultiChannelMessageResponse:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/createMultiChannelMessageResponse"
      description: Accepted
    listMessagesResponse:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/messagesList"
      description: OK
    getMediaResponse:
      content:
        application/octet-stream:
          schema:
            description: Successful Operation
            format: binary
            type: string
      description: OK
    listMediaResponse:
      content:
        application/json:
          schema:
            items:
              $ref: "#/components/schemas/media"
            type: array
      description: OK
      headers:
        Continuation-Token:
          description: Continuation token used to retrieve subsequent media.
          explode: false
          schema:
            type: string
          style: simple
    messagingBadRequestError:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/messagingRequestError"
      description: Bad Request
    messagingNotAcceptableError:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/messagingRequestError"
      description: Not Acceptable
    createMessageBadRequestError:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/createMessageRequestError"
      description: Bad Request
    messagingUnauthorizedError:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/messagingRequestError"
      description: Unauthorized
    messagingForbiddenError:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/messagingRequestError"
      description: Forbidden
    messagingNotFoundError:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/messagingRequestError"
      description: Not Found
    messagingMethodNotAllowedError:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/messagingRequestError"
      description: Method Not Allowed
    messagingInvalidMediaTypeError:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/messagingRequestError"
      description: Unsupported Media Type
    messagingTooManyRequestsError:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/messagingRequestError"
      description: Too Many Requests
    messagingInternalServerError:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/messagingRequestError"
      description: Internal Server Error
    multiChannelBadRequestError:
      content:
        application/json:
          example:
            links: []
            data: null
            errors:
            - type: request-validation
              description: "The 'channelList[0].from' field must contain exactly one\
                \ telephone number"
              source:
                field: "channelList[0].from"
          schema:
            $ref: "#/components/schemas/multiChannelError"
      description: Bad Request
    multiChannelNotAcceptableError:
      description: Not Acceptable
    multiChannelUnauthorizedError:
      content:
        application/json:
          example:
            links: []
            data: null
            errors:
            - type: unauthorized
              description: Authentication Failed
              source: {}
          schema:
            $ref: "#/components/schemas/multiChannelError"
      description: Unauthorized
    multiChannelForbiddenError:
      content:
        application/json:
          example:
            links: []
            data: null
            errors:
            - type: forbidden
              description: Access Denied
              source: {}
          schema:
            $ref: "#/components/schemas/multiChannelError"
      description: Forbidden
    multiChannelNotFoundError:
      content:
        application/json:
          example:
            links: []
            data: null
            errors:
            - type: forbidden
              description: Resource not found.
              source: {}
          schema:
            $ref: "#/components/schemas/multiChannelError"
      description: Not Found
    multiChannelMethodNotAllowedError:
      content:
        application/json:
          example:
            links: []
            data: null
            errors:
            - type: method-not-allowed
              description: Method 'PUT' not supported for this resource.
              source: {}
          schema:
            $ref: "#/components/schemas/multiChannelError"
      description: Method Not Allowed
    multiChannelInvalidMediaTypeError:
      content:
        application/json:
          example:
            links: []
            data: null
            errors:
            - type: unsupported-content-type
              description: Content-Type 'application/xml;charset=UTF-8' is not supported.
                Please use 'application/json'
              source:
                header: Content-Type
          schema:
            $ref: "#/components/schemas/multiChannelError"
      description: Unsupported Media Type
    multiChannelTooManyRequestsError:
      content:
        application/json:
          example:
            links: []
            data: null
            errors:
            - type: rate-limit-exceeded
              description: You have exceeded your rate limit for this endpoint. Please
                retry later.
              source: {}
          schema:
            $ref: "#/components/schemas/multiChannelError"
      description: Too Many Requests
    multiChannelInternalServerError:
      content:
        application/json:
          example:
            links: []
            data: null
            errors:
            - type: internal-server-error
              description: Internal server error. No further information available
              source: {}
          schema:
            $ref: "#/components/schemas/multiChannelError"
      description: Internal Server Error
    listMessagesTooManyRequestsError:
      content:
        application/json:
          example:
            type: rate_limit_exceeded
            description: Rate limit exceeded. Wait for Retry-After time before sending
              another request.
          schema:
            $ref: "#/components/schemas/messagingRequestError"
      description: Too Many Requests
      headers:
        Retry-After:
          description: The number of seconds to wait before retrying the request.
          explode: false
          schema:
            example: 300
            type: integer
          style: simple
    createCallResponse:
      content:
        application/json:
          examples:
            createCall Response:
              $ref: "#/components/examples/createCallResponseExample"
          schema:
            $ref: "#/components/schemas/createCallResponse"
      description: Created
      headers:
        Location:
          description: The URL for further interactions with this call
          explode: false
          schema:
            type: string
          style: simple
    getCallStateResponse:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/callState"
      description: OK
    updateCallResponse:
      description: OK
    listCallsResponse:
      content:
        application/json:
          schema:
            items:
              $ref: "#/components/schemas/callState"
            type: array
      description: OK
    getStatisticsResponse:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/accountStatistics"
      description: OK
    updateRecordingResponse:
      description: OK
    listCallRecordingsResponse:
      content:
        application/json:
          schema:
            items:
              $ref: "#/components/schemas/callRecordingMetadata"
            type: array
      description: OK
    getCallRecordingResponse:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/callRecordingMetadata"
      description: OK
    downloadRecordingMediaResponse:
      content:
        audio/vnd.wave:
          schema:
            format: binary
            type: string
        audio/mpeg:
          schema:
            format: binary
            type: string
      description: OK
    getRecordingTranscriptionResponse:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/recordingTranscriptions"
      description: OK
    listTranscriptionsResponse:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/callTranscriptionMetadataList"
      description: OK
    getCallTranscriptionResponse:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/callTranscriptionResponse"
      description: OK
    deleteCallTranscriptionResponse:
      description: No Content
    listConferencesResponse:
      content:
        application/json:
          examples:
            listConferences Response:
              $ref: "#/components/examples/listConferencesResponseExample"
          schema:
            items:
              $ref: "#/components/schemas/conference"
            type: array
      description: OK
    getConferenceResponse:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/conference"
      description: OK
    getConferenceMemberResponse:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/conferenceMember"
      description: OK
    listConferenceRecordingsResponse:
      content:
        application/json:
          schema:
            items:
              $ref: "#/components/schemas/conferenceRecordingMetadata"
            type: array
      description: OK
    getConferenceRecordingResponse:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/conferenceRecordingMetadata"
      description: OK
    voiceBadRequestError:
      content:
        application/json:
          examples:
            badRequestErrorExample:
              $ref: "#/components/examples/voiceBadRequestErrorExample"
          schema:
            $ref: "#/components/schemas/voiceApiError"
      description: Bad Request
    voiceUnauthorizedError:
      content:
        application/json:
          examples:
            unauthorizedErrorExample:
              $ref: "#/components/examples/voiceUnauthorizedErrorExample"
          schema:
            $ref: "#/components/schemas/voiceApiError"
      description: Unauthorized
    voiceForbiddenError:
      content:
        application/json:
          examples:
            forbiddenErrorExample:
              $ref: "#/components/examples/voiceForbiddenErrorExample"
          schema:
            $ref: "#/components/schemas/voiceApiError"
      description: Forbidden
    voiceNotFoundError:
      content:
        application/json:
          examples:
            notFoundErrorExample:
              $ref: "#/components/examples/voiceNotFoundErrorExample"
          schema:
            $ref: "#/components/schemas/voiceApiError"
      description: Not Found
    voiceNotAllowedError:
      content:
        application/json:
          examples:
            notAllowedErrorExample:
              $ref: "#/components/examples/voiceNotAllowedErrorExample"
          schema:
            $ref: "#/components/schemas/voiceApiError"
      description: Method Not Allowed
    voiceConflictError:
      content:
        application/json:
          examples:
            conflictErrorExample:
              $ref: "#/components/examples/voiceConflictErrorExample"
          schema:
            $ref: "#/components/schemas/voiceApiError"
      description: Conflict
    voiceUnsupportedMediaTypeError:
      content:
        application/json:
          examples:
            tooManyRequestsErrorExample:
              $ref: "#/components/examples/voiceUnsupportedMediaTypeErrorExample"
          schema:
            $ref: "#/components/schemas/voiceApiError"
      description: Unsupported Media Type
    voiceTooManyRequestsError:
      content:
        application/json:
          examples:
            tooManyRequestsErrorExample:
              $ref: "#/components/examples/voiceTooManyRequestsErrorExample"
          schema:
            $ref: "#/components/schemas/voiceApiError"
      description: Too Many Requests
      headers:
        Retry-After:
          description: When you should try your request again.
          explode: false
          schema:
            type: string
          style: simple
    voiceInternalServerError:
      content:
        application/json:
          examples:
            internalServerErrorExample:
              $ref: "#/components/examples/voiceInternalServerErrorExample"
          schema:
            $ref: "#/components/schemas/voiceApiError"
      description: Internal Server Error
    voiceCodeResponse:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/voiceCodeResponse"
      description: OK
    messagingCodeResponse:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/messagingCodeResponse"
      description: OK
    verifyCodeResponse:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/verifyCodeResponse"
      description: OK
    mfaBadRequestError:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/mfaRequestError"
      description: Bad Request
    mfaUnauthorizedError:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/mfaUnauthorizedRequestError"
      description: Unauthorized
    mfaForbiddenError:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/mfaForbiddenRequestError"
      description: Forbidden
    mfaTooManyRequestsError:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/mfaRequestError"
      description: Too Many Requests
    mfaInternalServerError:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/mfaRequestError"
      description: Internal Server Error
    createSyncLookupResponse:
      content:
        application/json:
          examples:
            lookupCompleteWithDniExample:
              $ref: "#/components/examples/lookupCompleteWithDniExample"
            lookupCompleteExample:
              $ref: "#/components/examples/lookupCompleteExample"
            lookupPartialExample:
              $ref: "#/components/examples/lookupPartialExample"
            lookupFailedExample:
              $ref: "#/components/examples/lookupFailedExample"
          schema:
            $ref: "#/components/schemas/createSyncLookupResponse"
      description: OK
    createAsyncBulkLookupResponse:
      content:
        application/json:
          examples:
            lookupInProgressExample:
              $ref: "#/components/examples/lookupInProgressExample"
          schema:
            $ref: "#/components/schemas/createAsyncBulkLookupResponse"
      description: Accepted
    getAsyncBulkLookupResponse:
      content:
        application/json:
          examples:
            lookupCompleteWithDniExample:
              $ref: "#/components/examples/lookupCompleteWithDniExample"
            lookupCompleteExample:
              $ref: "#/components/examples/lookupCompleteExample"
            lookupInProgressExample:
              $ref: "#/components/examples/lookupInProgressExample"
            lookupPartialExample:
              $ref: "#/components/examples/lookupPartialExample"
            lookupFailedExample:
              $ref: "#/components/examples/lookupFailedExample"
          schema:
            $ref: "#/components/schemas/getAsyncBulkLookupResponse"
      description: OK
    tnLookupDefaultResponse:
      content:
        application/json:
          examples:
            badRequest:
              $ref: "#/components/examples/badRequestExample"
            unauthorized:
              $ref: "#/components/examples/unauthorizedExample"
            forbidden:
              $ref: "#/components/examples/forbiddenExample"
            mediaType:
              $ref: "#/components/examples/unsupportedMediaTypeExample"
            notFound:
              $ref: "#/components/examples/notFoundExample"
            tooManyRequests:
              $ref: "#/components/examples/tooManyRequestsExample"
            internalServer:
              $ref: "#/components/examples/internalServerErrorExample"
          schema:
            $ref: "#/components/schemas/lookupErrorResponse"
      description: Bad Request
    getTollFreeVerificationStatusResponse:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/tfvStatus"
      description: OK
    listWebhookSubscriptionsResponse:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/webhookSubscriptionsListBody"
      description: OK
    createWebhookSubscriptionResponse:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/webhookSubscription"
      description: Created
    updateWebhookSubscriptionResponse:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/webhookSubscription"
      description: OK
    listTollFreeUseCasesResponse:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/useCases"
      description: OK
    tfvBadRequestResponse:
      content:
        application/json:
          example:
            description: Cannot process request.
            type: bad request
          schema:
            $ref: "#/components/schemas/tfvError"
      description: Bad Request
    noContentResponse:
      description: No Content
    tfvPostBadRequestResponse:
      content:
        application/json:
          example:
            description: cannot process request.
            errors:
              businessName: Business name is required.
              businessContactEmail: Business contact email is not a valid email address.
              optInWorkflowImageURLs: Entries must be a valid array of objects.
          schema:
            $ref: "#/components/schemas/tfvError"
      description: Bad Request
    tfvUnauthorizedResponse:
      content:
        application/json:
          example:
            description: Client is providing incorrect or invalid credentials.
            type: unauthorized
          schema:
            $ref: "#/components/schemas/tfvError"
      description: Unauthorized
    tfvForbiddenResponse:
      content:
        application/json:
          example:
            description: Client is not authorized for the action.
            type: forbidden
          schema:
            $ref: "#/components/schemas/tfvError"
      description: Forbidden
    tfvNotFoundResponse:
      content:
        application/json:
          example:
            description: Cannot find the requested resource.
            type: Not Found
          schema:
            $ref: "#/components/schemas/tfvError"
      description: Cannot find the requested resource.
    tfvNotAllowedResponse:
      content:
        application/json:
          example:
            description: Method is not allowed.
            type: Method Not Allowed
          schema:
            $ref: "#/components/schemas/tfvError"
      description: Method Not Allowed
    tfvTooManyRequestsResponse:
      content:
        application/json:
          example:
            description: Throttling error. Too many requests.
            type: Too Many Requests
          schema:
            $ref: "#/components/schemas/tfvError"
      description: Too Many Requests
    tfvServerErrorResponse:
      content:
        application/json:
          example:
            description: Internal Server Error.
            type: Internal Server Error
          schema:
            $ref: "#/components/schemas/tfvError"
      description: Internal Server Error
    tfvServiceUnavailableResponse:
      content:
        application/json:
          example:
            description: Service Unavailable Error.
            type: Service Unavailable
          schema:
            $ref: "#/components/schemas/tfvError"
      description: Service Unavailable
  schemas:
    applicationId:
      description: The ID of the Application your from number or senderId is associated
        with in the Bandwidth Phone Number Dashboard.
      example: 93de2206-9669-4e07-948d-329f4b722ee2
      type: string
    priorityEnum:
      description: "Specifies the message's sending priority with respect to other\
        \ messages in your account. For best results and optimal throughput, reserve\
        \ the 'high' priority setting for critical messages only."
      enum:
      - default
      - high
      example: default
      type: string
    messageStatusEnum:
      description: The status of the message. One of RECEIVED QUEUED SENDING SENT
        FAILED DELIVERED ACCEPTED UNDELIVERED.
      enum:
      - RECEIVED
      - QUEUED
      - SENDING
      - SENT
      - FAILED
      - DELIVERED
      - ACCEPTED
      - UNDELIVERED
      example: RECEIVED
      type: string
    listMessageDirectionEnum:
      description: The direction of the message. One of INBOUND OUTBOUND.
      enum:
      - INBOUND
      - OUTBOUND
      example: INBOUND
      type: string
    messageDirectionEnum:
      description: The direction of the message. One of in out.
      enum:
      - in
      - out
      example: in
      type: string
    messageTypeEnum:
      description: The type of message. Either SMS or MMS.
      enum:
      - sms
      - mms
      - rcs
      example: sms
      type: string
    productTypeEnum:
      description: The type of product associated with the message.
      enum:
      - LOCAL_A2P
      - P2P
      - SHORT_CODE_REACH
      - TOLL_FREE
      - HOSTED_SHORT_CODE
      - ALPHA_NUMERIC
      - RBM_MEDIA
      - RBM_RICH
      - RBM_CONVERSATIONAL
      example: P2P
      type: string
    fieldError:
      example:
        fieldName: from
        description: '''+invalid'' must be replaced with a valid E164 formatted telephone
          number'
      properties:
        fieldName:
          description: The name of the field that contains the error
          example: from
          type: string
        description:
          description: The error associated with the field
          example: '''+invalid'' must be replaced with a valid E164 formatted telephone
            number'
          type: string
      type: object
    messagesList:
      example:
        pageInfo:
          prevPageToken: DLAPE902
          nextPage: https://messaging.bandwidth.com/api/v2/users/accountId/messages?messageStatus=DLR_EXPIRED&prevPage=GL83PD3C
          nextPageToken: GL83PD3C
          prevPage: https://messaging.bandwidth.com/api/v2/users/accountId/messages?messageStatus=DLR_EXPIRED&nextPage=DLAPE902
        messages:
        - callingNumberCountryA3: USA
          product: P2P
          sourceTn: "+15554443333"
          messageLength: 18
          campaignId: CJEUMDK
          messageId: 1589228074636lm4k2je7j7jklbn2
          errorCode: 9902
          calledNumberCountryA3: USA
          destinationTn: "+15554442222"
          segmentCount: 1
          messageStatus: RECEIVED
          receiveTime: 2020-04-07T14:03:07Z
          accountId: "9900000"
          messageDirection: INBOUND
          carrierLatency: 20
          messageType: sms
          carrierName: other
          recipientCount: 1
          campaignClass: T
          bwLatency: 20
          attachmentCount: 1
          location: 123ID
          messageSize: 27
        - callingNumberCountryA3: USA
          product: P2P
          sourceTn: "+15554443333"
          messageLength: 18
          campaignId: CJEUMDK
          messageId: 1589228074636lm4k2je7j7jklbn2
          errorCode: 9902
          calledNumberCountryA3: USA
          destinationTn: "+15554442222"
          segmentCount: 1
          messageStatus: RECEIVED
          receiveTime: 2020-04-07T14:03:07Z
          accountId: "9900000"
          messageDirection: INBOUND
          carrierLatency: 20
          messageType: sms
          carrierName: other
          recipientCount: 1
          campaignClass: T
          bwLatency: 20
          attachmentCount: 1
          location: 123ID
          messageSize: 27
        totalCount: 100
      properties:
        totalCount:
          description: "The total number of messages matched by the search. When the\
            \ request has limitTotalCount set to true this value is limited to 10,000."
          example: 100
          type: integer
        pageInfo:
          $ref: "#/components/schemas/pageInfo"
        messages:
          items:
            $ref: "#/components/schemas/listMessageItem"
          type: array
      title: MessagesList
      type: object
    listMessageItem:
      example:
        callingNumberCountryA3: USA
        product: P2P
        sourceTn: "+15554443333"
        messageLength: 18
        campaignId: CJEUMDK
        messageId: 1589228074636lm4k2je7j7jklbn2
        errorCode: 9902
        calledNumberCountryA3: USA
        destinationTn: "+15554442222"
        segmentCount: 1
        messageStatus: RECEIVED
        receiveTime: 2020-04-07T14:03:07Z
        accountId: "9900000"
        messageDirection: INBOUND
        carrierLatency: 20
        messageType: sms
        carrierName: other
        recipientCount: 1
        campaignClass: T
        bwLatency: 20
        attachmentCount: 1
        location: 123ID
        messageSize: 27
      properties:
        messageId:
          description: The message id
          example: 1589228074636lm4k2je7j7jklbn2
          type: string
        accountId:
          description: The account id associated with this message.
          example: "9900000"
          type: string
        sourceTn:
          description: The source phone number of the message.
          example: "+15554443333"
          type: string
        destinationTn:
          description: The recipient phone number of the message.
          example: "+15554442222"
          type: string
        messageStatus:
          $ref: "#/components/schemas/messageStatusEnum"
        messageDirection:
          $ref: "#/components/schemas/listMessageDirectionEnum"
        messageType:
          $ref: "#/components/schemas/messageTypeEnum"
        segmentCount:
          description: The number of segments the user's message is broken into before
            sending over carrier networks.
          example: 1
          type: integer
        errorCode:
          description: The numeric error code of the message.
          example: 9902
          type: integer
        receiveTime:
          description: The ISO 8601 datetime of the message.
          example: 2020-04-07T14:03:07Z
          format: date-time
          type: string
        carrierName:
          description: The name of the carrier. Not currently supported for MMS coming
            soon.
          example: other
          nullable: true
          type: string
        messageSize:
          description: The size of the message including message content and headers.
          example: 27
          nullable: true
          type: integer
        messageLength:
          description: The length of the message content.
          example: 18
          type: integer
        attachmentCount:
          description: The number of attachments the message has.
          example: 1
          nullable: true
          type: integer
        recipientCount:
          description: The number of recipients the message has.
          example: 1
          nullable: true
          type: integer
        campaignClass:
          description: The campaign class of the message if it has one.
          example: T
          nullable: true
          type: string
        campaignId:
          description: The campaign ID of the message if it has one.
          example: CJEUMDK
          nullable: true
          type: string
        bwLatency:
          description: The Bandwidth latency of the message in seconds. Only available
            for accounts with the Advanced Quality Metrics feature enabled.
          example: 20
          nullable: true
          type: integer
        carrierLatency:
          description: The carrier latency of the message in seconds. Only available
            for OUTBOUND messages from accounts with the Advanced Quality Metrics
            feature enabled.
          example: 20
          nullable: true
          type: integer
        callingNumberCountryA3:
          description: The A3 country code of the calling number.
          example: USA
          nullable: true
          type: string
        calledNumberCountryA3:
          description: The A3 country code of the called number.
          example: USA
          nullable: true
          type: string
        product:
          description: The messaging product associated with the message.
          example: P2P
          nullable: true
          type: string
        location:
          description: The location ID associated with this message.
          example: 123ID
          nullable: true
          type: string
      title: listMessageItem
      type: object
    pageInfo:
      example:
        prevPageToken: DLAPE902
        nextPage: https://messaging.bandwidth.com/api/v2/users/accountId/messages?messageStatus=DLR_EXPIRED&prevPage=GL83PD3C
        nextPageToken: GL83PD3C
        prevPage: https://messaging.bandwidth.com/api/v2/users/accountId/messages?messageStatus=DLR_EXPIRED&nextPage=DLAPE902
      properties:
        prevPage:
          description: The link to the previous page for pagination.
          example: https://messaging.bandwidth.com/api/v2/users/accountId/messages?messageStatus=DLR_EXPIRED&nextPage=DLAPE902
          type: string
        nextPage:
          description: The link to the next page for pagination.
          example: https://messaging.bandwidth.com/api/v2/users/accountId/messages?messageStatus=DLR_EXPIRED&prevPage=GL83PD3C
          type: string
        prevPageToken:
          description: The isolated pagination token for the previous page.
          example: DLAPE902
          type: string
        nextPageToken:
          description: The isolated pagination token for the next page.
          example: GL83PD3C
          type: string
      title: PageInfo
      type: object
    messagingRequestError:
      example:
        description: description
        type: type
      properties:
        type:
          type: string
        description:
          type: string
      required:
      - description
      - type
      title: MessagingRequestError
      type: object
    createMessageRequestError:
      example:
        fieldErrors:
        - fieldName: from
          description: '''+invalid'' must be replaced with a valid E164 formatted
            telephone number'
        - fieldName: from
          description: '''+invalid'' must be replaced with a valid E164 formatted
            telephone number'
        description: description
        type: type
      properties:
        type:
          type: string
        description:
          type: string
        fieldErrors:
          items:
            $ref: "#/components/schemas/fieldError"
          type: array
      required:
      - description
      - type
      title: CreateMessageRequestError
      type: object
    id:
      description: The ID of the message.
      example: 1589228074636lm4k2je7j7jklbn2
      type: string
    media:
      example:
        contentLength: 0
        content: content
        mediaName: mediaName
      properties:
        content:
          type: string
        contentLength:
          type: integer
        mediaName:
          type: string
      title: Media
      type: object
    segmentCount:
      description: The number of segments the user's message is broken into before
        sending over carrier networks.
      example: 1
      type: integer
    tag:
      description: A custom string that will be included in callback events of the
        message. Max 1024 characters.
      example: custom string
      title: Tag
      type: string
    expiration:
      description: "A string with the date/time value that the message will automatically\
        \ expire by. This must be a valid RFC-3339 value, e.g., 2021-03-14T01:59:26Z\
        \ or 2021-03-13T20:59:26-05:00. Must be a date-time in the future."
      example: 2021-02-01T11:29:18-05:00
      format: date-time
      type: string
    carrierName:
      description: "The name of the Authorized Message Provider (AMP) that handled\
        \ this message. \nIn the US, this is the carrier that the message was sent\
        \ to.\nThis field is present only when this account feature has been enabled."
      example: AT&T
      type: string
    message:
      example:
        owner: "+15554443333"
        media:
        - https://dev.bandwidth.com/images/bandwidth-logo.png
        priority: default
        segmentCount: 1
        from: "+15553332222"
        expiration: 2021-02-01T11:29:18-05:00
        id: 1589228074636lm4k2je7j7jklbn2
        time: 2024-12-02T20:15:57.278Z
        to:
        - "+15552223333"
        text: Hello world
        tag: custom string
        applicationId: 93de2206-9669-4e07-948d-329f4b722ee2
        direction: in
      properties:
        id:
          description: The id of the message.
          example: 1589228074636lm4k2je7j7jklbn2
          type: string
        owner:
          description: The Bandwidth phone number associated with the message.
          example: "+15554443333"
          type: string
        applicationId:
          description: The ID of the Application your from number or senderId is associated
            with in the Bandwidth Phone Number Dashboard.
          example: 93de2206-9669-4e07-948d-329f4b722ee2
          type: string
        time:
          description: The datetime stamp of the message in ISO 8601
          example: 2024-12-02T20:15:57.278Z
          format: date-time
          type: string
        segmentCount:
          description: The number of segments the user's message is broken into before
            sending over carrier networks.
          example: 1
          type: integer
        direction:
          $ref: "#/components/schemas/messageDirectionEnum"
        to:
          description: The phone number recipients of the message.
          example:
          - "+15552223333"
          items:
            type: string
          type: array
          uniqueItems: true
        from:
          description: The phone number the message was sent from.
          example: "+15553332222"
          type: string
        media:
          description: The list of media URLs sent in the message. Including a `filename`
            field in the `Content-Disposition` header of the media linked with a URL
            will set the displayed file name. This is a best practice to ensure that
            your media has a readable file name.
          example:
          - https://dev.bandwidth.com/images/bandwidth-logo.png
          items:
            type: string
          type: array
          uniqueItems: true
        text:
          description: The contents of the message.
          example: Hello world
          type: string
        tag:
          description: A custom string that will be included in callback events of
            the message. Max 1024 characters.
          example: custom string
          title: Tag
          type: string
        priority:
          $ref: "#/components/schemas/priorityEnum"
        expiration:
          description: "A string with the date/time value that the message will automatically\
            \ expire by. This must be a valid RFC-3339 value, e.g., 2021-03-14T01:59:26Z\
            \ or 2021-03-13T20:59:26-05:00. Must be a date-time in the future."
          example: 2021-02-01T11:29:18-05:00
          format: date-time
          type: string
      title: Message
      type: object
    messageRequest:
      properties:
        applicationId:
          description: The ID of the Application your from number or senderId is associated
            with in the Bandwidth Phone Number Dashboard.
          example: 93de2206-9669-4e07-948d-329f4b722ee2
          type: string
        to:
          description: The phone number(s) the message should be sent to in E164 format.
          example:
          - "+15554443333"
          - "+15552223333"
          items:
            type: string
          type: array
          uniqueItems: true
        from:
          description: "Either an alphanumeric sender ID or the sender's Bandwidth\
            \ phone number in E.164 format, which must be hosted within Bandwidth\
            \ and linked to the account that is generating the message. \nAlphanumeric\
            \ Sender IDs can contain up to 11 characters, upper-case letters A-Z,\
            \ lower-case letters a-z, numbers 0-9, space, hyphen -, plus +, underscore\
            \ _ and ampersand &. Alphanumeric Sender IDs must contain at least one\
            \ letter."
          example: "+15551113333"
          type: string
        text:
          description: The contents of the text message. Must be 2048 characters or
            less.
          example: Hello world
          maxLength: 2048
          type: string
        media:
          description: |-
            A list of URLs to include as media attachments as part of the message.
            Each URL can be at most 4096 characters.
          example:
          - https://dev.bandwidth.com/images/bandwidth-logo.png
          - https://dev.bandwidth.com/images/github_logo.png
          items:
            format: uri
            maxLength: 4096
            type: string
          type: array
        tag:
          description: A custom string that will be included in callback events of
            the message. Max 1024 characters.
          example: custom string
          title: Tag
          type: string
        priority:
          $ref: "#/components/schemas/priorityEnum"
        expiration:
          description: "A string with the date/time value that the message will automatically\
            \ expire by. This must be a valid RFC-3339 value, e.g., 2021-03-14T01:59:26Z\
            \ or 2021-03-13T20:59:26-05:00. Must be a date-time in the future."
          example: 2021-02-01T11:29:18-05:00
          format: date-time
          type: string
      required:
      - applicationId
      - from
      - to
      title: MessageRequest
      type: object
    messageText:
      description: The contents of the text message. Must be 2048 characters or less.
      example: Hello world
      maxLength: 2048
      type: string
    messageMedia:
      description: |-
        A list of URLs to include as media attachments as part of the message.
        Each URL can be at most 4096 characters.
      example:
      - https://dev.bandwidth.com/images/bandwidth-logo.png
      - https://dev.bandwidth.com/images/github_logo.png
      items:
        format: uri
        maxLength: 4096
        type: string
      type: array
    createMultiChannelMessageResponse:
      example:
        data:
          channelList:
          - owner: owner
            channel: RBM
            from: BandwidthRBM
            applicationId: 93de2206-9669-4e07-948d-329f4b722ee2
            content:
              suggestions:
              - postbackData: !!binary |-
                  U0dWc2JHOGdkMjl5YkdRPQ==
                text: Hello world
                type: REPLY
              - postbackData: !!binary |-
                  U0dWc2JHOGdkMjl5YkdRPQ==
                text: Hello world
                type: REPLY
              - postbackData: !!binary |-
                  U0dWc2JHOGdkMjl5YkdRPQ==
                text: Hello world
                type: REPLY
              - postbackData: !!binary |-
                  U0dWc2JHOGdkMjl5YkdRPQ==
                text: Hello world
                type: REPLY
              - postbackData: !!binary |-
                  U0dWc2JHOGdkMjl5YkdRPQ==
                text: Hello world
                type: REPLY
              text: Hello world
          - owner: owner
            channel: RBM
            from: BandwidthRBM
            applicationId: 93de2206-9669-4e07-948d-329f4b722ee2
            content:
              suggestions:
              - postbackData: !!binary |-
                  U0dWc2JHOGdkMjl5YkdRPQ==
                text: Hello world
                type: REPLY
              - postbackData: !!binary |-
                  U0dWc2JHOGdkMjl5YkdRPQ==
                text: Hello world
                type: REPLY
              - postbackData: !!binary |-
                  U0dWc2JHOGdkMjl5YkdRPQ==
                text: Hello world
                type: REPLY
              - postbackData: !!binary |-
                  U0dWc2JHOGdkMjl5YkdRPQ==
                text: Hello world
                type: REPLY
              - postbackData: !!binary |-
                  U0dWc2JHOGdkMjl5YkdRPQ==
                text: Hello world
                type: REPLY
              text: Hello world
          - owner: owner
            channel: RBM
            from: BandwidthRBM
            applicationId: 93de2206-9669-4e07-948d-329f4b722ee2
            content:
              suggestions:
              - postbackData: !!binary |-
                  U0dWc2JHOGdkMjl5YkdRPQ==
                text: Hello world
                type: REPLY
              - postbackData: !!binary |-
                  U0dWc2JHOGdkMjl5YkdRPQ==
                text: Hello world
                type: REPLY
              - postbackData: !!binary |-
                  U0dWc2JHOGdkMjl5YkdRPQ==
                text: Hello world
                type: REPLY
              - postbackData: !!binary |-
                  U0dWc2JHOGdkMjl5YkdRPQ==
                text: Hello world
                type: REPLY
              - postbackData: !!binary |-
                  U0dWc2JHOGdkMjl5YkdRPQ==
                text: Hello world
                type: REPLY
              text: Hello world
          - owner: owner
            channel: RBM
            from: BandwidthRBM
            applicationId: 93de2206-9669-4e07-948d-329f4b722ee2
            content:
              suggestions:
              - postbackData: !!binary |-
                  U0dWc2JHOGdkMjl5YkdRPQ==
                text: Hello world
                type: REPLY
              - postbackData: !!binary |-
                  U0dWc2JHOGdkMjl5YkdRPQ==
                text: Hello world
                type: REPLY
              - postbackData: !!binary |-
                  U0dWc2JHOGdkMjl5YkdRPQ==
                text: Hello world
                type: REPLY
              - postbackData: !!binary |-
                  U0dWc2JHOGdkMjl5YkdRPQ==
                text: Hello world
                type: REPLY
              - postbackData: !!binary |-
                  U0dWc2JHOGdkMjl5YkdRPQ==
                text: Hello world
                type: REPLY
              text: Hello world
          expiration: 2021-02-01T11:29:18-05:00
          id: 1589228074636lm4k2je7j7jklbn2
          time: 2025-01-01T18:20:16Z
          to:
          - "+15554443333"
          tag: custom string
          priority: default
          direction: in
        links: []
        errors: []
      properties:
        links:
          example: []
          items:
            $ref: "#/components/schemas/link"
          type: array
        data:
          $ref: "#/components/schemas/multiChannelMessageResponseData"
        errors:
          example: []
          items:
            $ref: "#/components/schemas/errorObject"
          type: array
      type: object
    multiChannelError:
      example:
        data: "{}"
        links: []
        errors:
        - description: description
          source:
            reference: reference
            field: field
            parameter: parameter
            header: header
          type: type
        - description: description
          source:
            reference: reference
            field: field
            parameter: parameter
            header: header
          type: type
      properties:
        links:
          example: []
          items:
            $ref: "#/components/schemas/link"
          type: array
        data:
          nullable: true
          type: object
          example: null
        errors:
          items:
            $ref: "#/components/schemas/errorObject"
          type: array
      type: object
    link:
      properties:
        rel:
          type: string
        href:
          type: string
      type: object
    errorObject:
      example:
        description: description
        source:
          reference: reference
          field: field
          parameter: parameter
          header: header
        type: type
      properties:
        type:
          description: A concise summary of the error used for categorization.
          type: string
        description:
          description: A detailed explanation of the error.
          type: string
        source:
          $ref: "#/components/schemas/errorSource"
      required:
      - description
      - source
      - type
      type: object
    errorSource:
      description: "Specifies relevant sources of the error, if any."
      example:
        reference: reference
        field: field
        parameter: parameter
        header: header
      properties:
        parameter:
          description: The relevant URI query parameter causing the error
          type: string
        field:
          description: The request body field that led to the error
          type: string
        header:
          description: The header field that contributed to the error
          type: string
        reference:
          description: A resource ID or path linked to the error
          type: string
      title: Error Source
      type: object
    multiChannelMessageChannelEnum:
      description: The channel of the multi-channel message.
      enum:
      - RBM
      - SMS
      - MMS
      example: RBM
      type: string
    multiChannelSenderId:
      description: The sender ID of the message. This could be an alphanumeric sender
        ID.
      example: BandwidthRBM
      type: string
    multiChannelDestination:
      description: The phone number the message should be sent to in E164 format.
      example: "+15552223333"
      type: string
    multiChannelDestinations:
      description: "The destination phone number(s) of the message, in E164 format."
      example:
      - "+15554443333"
      items:
        type: string
      type: array
      uniqueItems: true
    rbmMessageContentText:
      example:
        suggestions:
        - postbackData: !!binary |-
            U0dWc2JHOGdkMjl5YkdRPQ==
          text: Hello world
          type: REPLY
        - postbackData: !!binary |-
            U0dWc2JHOGdkMjl5YkdRPQ==
          text: Hello world
          type: REPLY
        - postbackData: !!binary |-
            U0dWc2JHOGdkMjl5YkdRPQ==
          text: Hello world
          type: REPLY
        - postbackData: !!binary |-
            U0dWc2JHOGdkMjl5YkdRPQ==
          text: Hello world
          type: REPLY
        - postbackData: !!binary |-
            U0dWc2JHOGdkMjl5YkdRPQ==
          text: Hello world
          type: REPLY
        text: Hello world
      properties:
        text:
          description: The text associated with the message. Must be 3270 characters
            or less
          example: Hello world
          maxLength: 3270
          type: string
        suggestions:
          description: An array of suggested actions for the recipient.
          items:
            $ref: "#/components/schemas/multiChannelAction"
          maxItems: 11
          type: array
      required:
      - text
      title: RBM Text
      type: object
    rbmMediaHeightEnum:
      description: The height of the media.
      enum:
      - SHORT
      - MEDIUM
      - TALL
      example: SHORT
      type: string
    rbmMessageContentFile:
      properties:
        fileUrl:
          description: The URL of the media file. 100MB is the maximum file size.
          example: https://dev.bandwidth.com/images/bandwidth-logo.png
          format: uri
          maxLength: 1000
          type: string
        thumbnailUrl:
          description: The URL of the thumbnail image. Applies only to video file
            media.
          example: https://dev.bandwidth.com/images/bandwidth-logo.png
          format: uri
          maxLength: 1000
          type: string
      required:
      - fileUrl
      title: RBM Rich Media File
      type: object
    mmsMessageContentFile:
      properties:
        fileUrl:
          description: |-
            The URL of a media attachment.

            For MMS, the API limits file size to 3.5MB. Specific carriers and channels may have a smaller limit that could cause a large file to fail, see [here](https://support.bandwidth.com/hc/en-us/articles/360014235473-What-are-the-MMS-file-size-limits) for more details.
          example: https://dev.bandwidth.com/images/bandwidth-logo.png
          format: uri
          maxLength: 1000
          type: string
      required:
      - fileUrl
      title: MMS Media File
      type: object
    rbmMessageMedia:
      properties:
        media:
          items:
            $ref: "#/components/schemas/rbmMessageContentFile"
          type: array
        suggestions:
          description: An array of suggested actions for the recipient.
          items:
            $ref: "#/components/schemas/multiChannelAction"
          maxItems: 11
          type: array
      required:
      - media
      title: RBM Media
      type: object
    rbmCardContent:
      properties:
        title:
          description: The title of the card. Must be 200 characters or less.
          example: Bandwidth
          maxLength: 200
          type: string
        description:
          description: The description of the card. Must be 2000 characters or less.
          example: Bandwidth is a communications platform as a service (CPaaS) company.
          maxLength: 2000
          type: string
        media:
          $ref: "#/components/schemas/rbmCardContent_media"
        suggestions:
          description: An array of suggested actions for the recipient that will be
            displayed on the rich card.
          items:
            $ref: "#/components/schemas/multiChannelAction"
          maxItems: 4
          type: array
      type: object
    rbmStandaloneCard:
      properties:
        orientation:
          $ref: "#/components/schemas/standaloneCardOrientationEnum"
        thumbnailImageAlignment:
          $ref: "#/components/schemas/thumbnailAlignmentEnum"
        cardContent:
          $ref: "#/components/schemas/rbmCardContent"
        suggestions:
          description: An array of suggested actions for the recipient.
          items:
            $ref: "#/components/schemas/multiChannelAction"
          maxItems: 11
          type: array
      required:
      - cardContent
      - orientation
      - thumbnailImageAlignment
      title: Standalone Card
      type: object
    standaloneCardOrientationEnum:
      enum:
      - HORIZONTAL
      - VERTICAL
      example: VERTICAL
      type: string
    thumbnailAlignmentEnum:
      description: The alignment of the thumbnail image in the card. Only applicable
        if the card using horizontal orientation.
      enum:
      - LEFT
      - RIGHT
      example: LEFT
      type: string
    rbmMessageCarouselCard:
      properties:
        cardWidth:
          $ref: "#/components/schemas/cardWidthEnum"
        cardContents:
          items:
            $ref: "#/components/schemas/rbmCardContent"
          maxItems: 10
          type: array
        suggestions:
          description: An array of suggested actions for the recipient.
          items:
            $ref: "#/components/schemas/multiChannelAction"
          maxItems: 11
          type: array
      required:
      - cardContents
      - cardWidth
      title: Carousel
      type: object
    cardWidthEnum:
      enum:
      - SMALL
      - MEDIUM
      example: SMALL
      type: string
    smsMessageContent:
      properties:
        text:
          description: The contents of the text message. Must be 2048 characters or
            less.
          example: Hello world
          maxLength: 2048
          type: string
      required:
      - text
      title: SMS Text
      type: object
    mmsMessageContent:
      properties:
        text:
          description: The contents of the text message. Must be 2048 characters or
            less.
          example: Hello world
          maxLength: 2048
          type: string
        media:
          items:
            $ref: "#/components/schemas/mmsMessageContentFile"
          type: array
      title: MMS Message
      type: object
    rbmMessageContentRichCard:
      oneOf:
      - $ref: "#/components/schemas/rbmStandaloneCard"
      - $ref: "#/components/schemas/rbmMessageCarouselCard"
      title: RBM Rich Card
    rbmActionTypeEnum:
      enum:
      - REPLY
      - DIAL_PHONE
      - SHOW_LOCATION
      - CREATE_CALENDAR_EVENT
      - OPEN_URL
      - REQUEST_LOCATION
      example: REPLY
      type: string
    rbmOpenUrlEnum:
      description: "Specifies how the URL should be opened on a mobile device.\n-\
        \ `BROWSER` Opens the URL in the device's default browser. If application\
        \ is not set or the device doesn’t support WebView, this option is used by\
        \ default. \n- `WEBVIEW` Opens the URL in an in-app WebView."
      enum:
      - BROWSER
      - WEBVIEW
      example: WEBVIEW
      type: string
    rbmWebViewEnum:
      description: "Defines the layout of the WebView on a mobile device. It must\
        \ be defined when application is set to `WEBVIEW`\n- `FULL` WebView takes\
        \ the full screen. \n- `HALF` WebView takes half of the screen.\n- `TALL`\
        \ WebView takes three-quarters of the screen."
      enum:
      - FULL
      - HALF
      - TALL
      type: string
    rbmActionText:
      description: Displayed text for user to click
      example: Hello world
      maxLength: 25
      title: Text
      type: string
    rbmActionPostbackData:
      description: Base64 payload the customer receives when the reply is clicked.
      example: !!binary |-
        U0dWc2JHOGdkMjl5YkdRPQ==
      format: byte
      maxLength: 2048
      title: Post Back Data
      type: string
    rbmActionBase:
      example:
        postbackData: !!binary |-
          U0dWc2JHOGdkMjl5YkdRPQ==
        text: Hello world
        type: REPLY
      properties:
        type:
          $ref: "#/components/schemas/rbmActionTypeEnum"
        text:
          description: Displayed text for user to click
          example: Hello world
          maxLength: 25
          title: Text
          type: string
        postbackData:
          description: Base64 payload the customer receives when the reply is clicked.
          example: !!binary |-
            U0dWc2JHOGdkMjl5YkdRPQ==
          format: byte
          maxLength: 2048
          title: Post Back Data
          type: string
      required:
      - postbackData
      - text
      - type
      type: object
    rbmActionDial:
      allOf:
      - $ref: "#/components/schemas/rbmActionBase"
      - properties:
          phoneNumber:
            description: The phone number to dial. Must be E164 format.
            example: "+15552223333"
            type: string
        required:
        - phoneNumber
        title: Dial Phone
        type: object
    rbmActionViewLocation:
      allOf:
      - $ref: "#/components/schemas/rbmActionBase"
      - properties:
          latitude:
            description: The latitude of the location.
            example: "37.7749"
            format: double
            type: string
          longitude:
            description: The longitude of the location.
            example: "-122.4194"
            format: double
            type: string
          label:
            description: The label of the location.
            example: San Francisco
            maxLength: 100
            type: string
        required:
        - latitude
        - longitude
        title: Show Location
        type: object
    multiChannelActionCalendarEvent:
      allOf:
      - $ref: "#/components/schemas/rbmActionBase"
      - properties:
          title:
            description: The title of the event.
            example: Meeting with John
            maxLength: 100
            type: string
          startTime:
            description: The start time of the event.
            example: 2022-09-14T18:20:16Z
            format: date-time
            type: string
          endTime:
            description: The end time of the event.
            example: 2022-09-14T18:20:16Z
            format: date-time
            type: string
          description:
            description: The description of the event.
            example: Discuss the new project
            maxLength: 500
            type: string
        required:
        - endTime
        - startTime
        - title
        title: Calendar Event
        type: object
    rbmActionOpenUrl:
      allOf:
      - $ref: "#/components/schemas/rbmActionBase"
      - properties:
          url:
            description: The URL to open in browser.
            example: https://dev.bandwidth.com
            format: uri
            maxLength: 2048
            type: string
          application:
            $ref: "#/components/schemas/rbmOpenUrlEnum"
          webviewViewMode:
            $ref: "#/components/schemas/rbmWebViewEnum"
        required:
        - url
        title: Open URL
        type: object
    multiChannelFullActions:
      description: An array of suggested actions for the recipient.
      items:
        $ref: "#/components/schemas/multiChannelAction"
      maxItems: 11
      type: array
    multiChannelAction:
      anyOf:
      - $ref: "#/components/schemas/rbmActionBase"
      - $ref: "#/components/schemas/rbmActionDial"
      - $ref: "#/components/schemas/rbmActionViewLocation"
      - $ref: "#/components/schemas/multiChannelActionCalendarEvent"
      - $ref: "#/components/schemas/rbmActionOpenUrl"
      discriminator:
        mapping:
          REPLY: "#/components/schemas/rbmActionBase"
          DIAL_PHONE: "#/components/schemas/rbmActionDial"
          SHOW_LOCATION: "#/components/schemas/rbmActionViewLocation"
          CREATE_CALENDAR_EVENT: "#/components/schemas/multiChannelActionCalendarEvent"
          OPEN_URL: "#/components/schemas/rbmActionOpenUrl"
          REQUEST_LOCATION: "#/components/schemas/rbmActionBase"
        propertyName: type
    multiChannelChannelListObjectBase:
      properties:
        from:
          description: The sender ID of the message. This could be an alphanumeric
            sender ID.
          example: BandwidthRBM
          type: string
        applicationId:
          description: The ID of the Application your from number or senderId is associated
            with in the Bandwidth Phone Number Dashboard.
          example: 93de2206-9669-4e07-948d-329f4b722ee2
          type: string
        channel:
          $ref: "#/components/schemas/multiChannelMessageChannelEnum"
      required:
      - applicationId
      - channel
      - from
      type: object
    multiChannelChannelListRBMObject:
      allOf:
      - $ref: "#/components/schemas/multiChannelChannelListObjectBase"
      - properties:
          content:
            $ref: "#/components/schemas/multiChannelChannelListRBMObject_allOf_content"
        type: object
      required:
      - content
    multiChannelChannelListSMSObject:
      allOf:
      - $ref: "#/components/schemas/multiChannelChannelListObjectBase"
      - properties:
          content:
            $ref: "#/components/schemas/smsMessageContent"
        type: object
      required:
      - content
    multiChannelChannelListMMSObject:
      allOf:
      - $ref: "#/components/schemas/multiChannelChannelListObjectBase"
      - properties:
          content:
            $ref: "#/components/schemas/mmsMessageContent"
        type: object
      required:
      - content
    multiChannelChannelListRBMResponseObject:
      allOf:
      - $ref: "#/components/schemas/multiChannelChannelListRBMObject"
      - $ref: "#/components/schemas/multiChannelChannelListOwnerObject"
      example:
        owner: owner
        channel: RBM
        from: BandwidthRBM
        applicationId: 93de2206-9669-4e07-948d-329f4b722ee2
        content:
          suggestions:
          - postbackData: !!binary |-
              U0dWc2JHOGdkMjl5YkdRPQ==
            text: Hello world
            type: REPLY
          - postbackData: !!binary |-
              U0dWc2JHOGdkMjl5YkdRPQ==
            text: Hello world
            type: REPLY
          - postbackData: !!binary |-
              U0dWc2JHOGdkMjl5YkdRPQ==
            text: Hello world
            type: REPLY
          - postbackData: !!binary |-
              U0dWc2JHOGdkMjl5YkdRPQ==
            text: Hello world
            type: REPLY
          - postbackData: !!binary |-
              U0dWc2JHOGdkMjl5YkdRPQ==
            text: Hello world
            type: REPLY
          text: Hello world
    multiChannelChannelListSMSResponseObject:
      allOf:
      - $ref: "#/components/schemas/multiChannelChannelListSMSObject"
      - $ref: "#/components/schemas/multiChannelChannelListOwnerObject"
    multiChannelChannelListMMSResponseObject:
      allOf:
      - $ref: "#/components/schemas/multiChannelChannelListMMSObject"
      - $ref: "#/components/schemas/multiChannelChannelListOwnerObject"
    multiChannelChannelListRequestObject:
      anyOf:
      - $ref: "#/components/schemas/multiChannelChannelListRBMObject"
      - $ref: "#/components/schemas/multiChannelChannelListSMSObject"
      - $ref: "#/components/schemas/multiChannelChannelListMMSObject"
      discriminator:
        mapping:
          RBM: "#/components/schemas/multiChannelChannelListRBMObject"
          SMS: "#/components/schemas/multiChannelChannelListSMSObject"
          MMS: "#/components/schemas/multiChannelChannelListMMSObject"
        propertyName: channel
    multiChannelChannelListOwnerObject:
      properties:
        owner:
          description: The Bandwidth senderId associated with the message. Identical
            to 'from'.
          type: string
      required:
      - owner
      type: object
    multiChannelChannelListResponseObject:
      anyOf:
      - $ref: "#/components/schemas/multiChannelChannelListRBMResponseObject"
      - $ref: "#/components/schemas/multiChannelChannelListSMSResponseObject"
      - $ref: "#/components/schemas/multiChannelChannelListMMSResponseObject"
      discriminator:
        mapping:
          RBM: "#/components/schemas/multiChannelChannelListRBMResponseObject"
          SMS: "#/components/schemas/multiChannelChannelListSMSResponseObject"
          MMS: "#/components/schemas/multiChannelChannelListMMSResponseObject"
        propertyName: channel
    multiChannelMessageRequest:
      description: Multi-Channel Message Request
      properties:
        to:
          description: The phone number the message should be sent to in E164 format.
          example: "+15552223333"
          type: string
        channelList:
          description: "A list of message bodies. The messages will be attempted in\
            \ the order they are listed. Once a message sends successfully, the others\
            \ will be ignored."
          items:
            $ref: "#/components/schemas/multiChannelChannelListRequestObject"
          maxItems: 4
          type: array
        tag:
          description: A custom string that will be included in callback events of
            the message. Max 1024 characters.
          example: custom string
          title: Tag
          type: string
        priority:
          $ref: "#/components/schemas/priorityEnum"
        expiration:
          description: "A string with the date/time value that the message will automatically\
            \ expire by. This must be a valid RFC-3339 value, e.g., 2021-03-14T01:59:26Z\
            \ or 2021-03-13T20:59:26-05:00. Must be a date-time in the future."
          example: 2021-02-01T11:29:18-05:00
          format: date-time
          type: string
      required:
      - channelList
      - to
      type: object
    multiChannelMessageResponseData:
      description: The data returned in a multichannel message response.
      example:
        channelList:
        - owner: owner
          channel: RBM
          from: BandwidthRBM
          applicationId: 93de2206-9669-4e07-948d-329f4b722ee2
          content:
            suggestions:
            - postbackData: !!binary |-
                U0dWc2JHOGdkMjl5YkdRPQ==
              text: Hello world
              type: REPLY
            - postbackData: !!binary |-
                U0dWc2JHOGdkMjl5YkdRPQ==
              text: Hello world
              type: REPLY
            - postbackData: !!binary |-
                U0dWc2JHOGdkMjl5YkdRPQ==
              text: Hello world
              type: REPLY
            - postbackData: !!binary |-
                U0dWc2JHOGdkMjl5YkdRPQ==
              text: Hello world
              type: REPLY
            - postbackData: !!binary |-
                U0dWc2JHOGdkMjl5YkdRPQ==
              text: Hello world
              type: REPLY
            text: Hello world
        - owner: owner
          channel: RBM
          from: BandwidthRBM
          applicationId: 93de2206-9669-4e07-948d-329f4b722ee2
          content:
            suggestions:
            - postbackData: !!binary |-
                U0dWc2JHOGdkMjl5YkdRPQ==
              text: Hello world
              type: REPLY
            - postbackData: !!binary |-
                U0dWc2JHOGdkMjl5YkdRPQ==
              text: Hello world
              type: REPLY
            - postbackData: !!binary |-
                U0dWc2JHOGdkMjl5YkdRPQ==
              text: Hello world
              type: REPLY
            - postbackData: !!binary |-
                U0dWc2JHOGdkMjl5YkdRPQ==
              text: Hello world
              type: REPLY
            - postbackData: !!binary |-
                U0dWc2JHOGdkMjl5YkdRPQ==
              text: Hello world
              type: REPLY
            text: Hello world
        - owner: owner
          channel: RBM
          from: BandwidthRBM
          applicationId: 93de2206-9669-4e07-948d-329f4b722ee2
          content:
            suggestions:
            - postbackData: !!binary |-
                U0dWc2JHOGdkMjl5YkdRPQ==
              text: Hello world
              type: REPLY
            - postbackData: !!binary |-
                U0dWc2JHOGdkMjl5YkdRPQ==
              text: Hello world
              type: REPLY
            - postbackData: !!binary |-
                U0dWc2JHOGdkMjl5YkdRPQ==
              text: Hello world
              type: REPLY
            - postbackData: !!binary |-
                U0dWc2JHOGdkMjl5YkdRPQ==
              text: Hello world
              type: REPLY
            - postbackData: !!binary |-
                U0dWc2JHOGdkMjl5YkdRPQ==
              text: Hello world
              type: REPLY
            text: Hello world
        - owner: owner
          channel: RBM
          from: BandwidthRBM
          applicationId: 93de2206-9669-4e07-948d-329f4b722ee2
          content:
            suggestions:
            - postbackData: !!binary |-
                U0dWc2JHOGdkMjl5YkdRPQ==
              text: Hello world
              type: REPLY
            - postbackData: !!binary |-
                U0dWc2JHOGdkMjl5YkdRPQ==
              text: Hello world
              type: REPLY
            - postbackData: !!binary |-
                U0dWc2JHOGdkMjl5YkdRPQ==
              text: Hello world
              type: REPLY
            - postbackData: !!binary |-
                U0dWc2JHOGdkMjl5YkdRPQ==
              text: Hello world
              type: REPLY
            - postbackData: !!binary |-
                U0dWc2JHOGdkMjl5YkdRPQ==
              text: Hello world
              type: REPLY
            text: Hello world
        expiration: 2021-02-01T11:29:18-05:00
        id: 1589228074636lm4k2je7j7jklbn2
        time: 2025-01-01T18:20:16Z
        to:
        - "+15554443333"
        tag: custom string
        priority: default
        direction: in
      properties:
        id:
          description: The ID of the message.
          example: 1589228074636lm4k2je7j7jklbn2
          type: string
        time:
          description: The time the message was received by the Bandwidth API.
          example: 2025-01-01T18:20:16Z
          format: date-time
          type: string
        direction:
          $ref: "#/components/schemas/messageDirectionEnum"
        to:
          description: "The destination phone number(s) of the message, in E164 format."
          example:
          - "+15554443333"
          items:
            type: string
          type: array
          uniqueItems: true
        channelList:
          description: "A list of message bodies. The messages will be attempted in\
            \ the order they are listed. Once a message sends successfully, the others\
            \ will be ignored."
          items:
            $ref: "#/components/schemas/multiChannelChannelListResponseObject"
          maxItems: 4
          type: array
        tag:
          description: A custom string that will be included in callback events of
            the message. Max 1024 characters.
          example: custom string
          title: Tag
          type: string
        priority:
          $ref: "#/components/schemas/priorityEnum"
        expiration:
          description: "A string with the date/time value that the message will automatically\
            \ expire by. This must be a valid RFC-3339 value, e.g., 2021-03-14T01:59:26Z\
            \ or 2021-03-13T20:59:26-05:00. Must be a date-time in the future."
          example: 2021-02-01T11:29:18-05:00
          format: date-time
          type: string
      required:
      - channelList
      - direction
      - id
      - time
      - to
      type: object
    multiChannelMessageContent:
      description: The structure of the content field of a multichannel message.
      properties:
        text:
          type: string
        media:
          $ref: "#/components/schemas/rbmMessageContentFile"
      type: object
    rbmSuggestionResponse:
      properties:
        text:
          description: The text associated with the suggestion response.
          example: "Yes, I would like to proceed"
          type: string
        postbackData:
          description: Base64 payload the customer receives when the reply is clicked.
          example: !!binary |-
            U0dWc2JHOGdkMjl5YkdRPQ==
          format: byte
          maxLength: 2048
          title: Post Back Data
          type: string
      type: object
    rbmLocationResponse:
      properties:
        latitude:
          description: The latitude of the client's location.
          example: "37.7749"
          format: double
          type: string
        longitude:
          description: The longitude of the client's location.
          example: "-122.4194"
          format: double
          type: string
      type: object
    callback:
      description: |-
        Callbacks are divided into two types based on direction of the related message:
        - `statusCallback` indicates status of an outbound MT SMS, MMS, or RBM message.
        - `inboundCallback` indicates an inbound MO message or a multichannel message client's response to a suggestion or location request.
      discriminator:
        mapping:
          message-sent: "#/components/schemas/statusCallback"
          message-delivered: "#/components/schemas/statusCallback"
          message-failed: "#/components/schemas/statusCallback"
          message-read: "#/components/schemas/statusCallback"
          message-received: "#/components/schemas/inboundCallback"
          request-location-response: "#/components/schemas/inboundCallback"
          suggestion-response: "#/components/schemas/inboundCallback"
        propertyName: type
      oneOf:
      - $ref: "#/components/schemas/statusCallback"
      - $ref: "#/components/schemas/inboundCallback"
      type: object
    statusCallback:
      description: Represents a status callback for an outbound MT SMS or MMS or RBM
        message.
      properties:
        time:
          example: 2024-12-02T20:15:57.278Z
          format: date-time
          type: string
        eventTime:
          description: "Represents the time at which the message was read, for `message-read`\
            \ callbacks."
          example: 2024-12-02T20:15:58.278Z
          format: date-time
          type: string
        type:
          $ref: "#/components/schemas/statusCallbackTypeEnum"
        to:
          description: |-
            The destination phone number the message was sent to.
            For status callbacks, this the the Bandwidth user's client phone number.
          example: "+15552223333"
          type: string
        description:
          description: A detailed description of the event described by the callback.
          example: Message delivered to carrier.
          type: string
        message:
          $ref: "#/components/schemas/statusCallbackMessage"
        errorCode:
          description: "Optional error code, applicable only when type is `message-failed`."
          example: 4405
          type: integer
        carrierName:
          description: "The name of the Authorized Message Provider (AMP) that handled\
            \ this message. \nIn the US, this is the carrier that the message was\
            \ sent to.\nThis field is present only when this account feature has been\
            \ enabled."
          example: AT&T
          type: string
      required:
      - description
      - message
      - time
      - to
      - type
      type: object
    inboundCallback:
      description: Represents an inbound callback.
      properties:
        time:
          example: 2024-12-02T20:15:57.278Z
          format: date-time
          type: string
        type:
          $ref: "#/components/schemas/inboundCallbackTypeEnum"
        to:
          description: "The destination phone number the message was sent to. \nFor\
            \ inbound callbacks, this is the Bandwidth number or alphanumeric identifier\
            \ that received the message.\n"
          example: "+15552223333"
          type: string
        description:
          description: A detailed description of the event described by the callback.
          example: Incoming message received
          type: string
        message:
          $ref: "#/components/schemas/inboundCallbackMessage"
        carrierName:
          description: "The name of the Authorized Message Provider (AMP) that handled\
            \ this message. \nIn the US, this is the carrier that the message was\
            \ sent to.\nThis field is present only when this account feature has been\
            \ enabled."
          example: AT&T
          type: string
      required:
      - description
      - message
      - time
      - to
      - type
      type: object
    statusCallbackTypeEnum:
      description: |-
        The possible status callbacks when sending an MT SMS or MMS or RBM message:
        - `message-sending` indicates that Bandwidth is sending the message to the upstream provider.
        - `message-delivered` indicates that the message was successfully sent.
        - `message-failed` indicates that the message could not be sent to the intended recipient.
        - `message-read` indicates that the RBM message was read by the recipient.
      enum:
      - message-sending
      - message-delivered
      - message-failed
      - message-read
      example: message-delivered
      type: string
    inboundCallbackTypeEnum:
      description: "The possible inbound callback types originating from MO messages\
        \ or multichannel message client responses:\n- `message-received` indicates\
        \ an MO message from a Bandwidth user's client to a Bandwidth number.\n- `request-location-response`\
        \ indicates a response to a location request sent by the Bandwidth user's\
        \ client after receiving an RBM message. \n- `suggestion-response` indicates\
        \ a response to a suggestion sent by the Bandwidth user's client after receiving\
        \ an RBM message."
      enum:
      - message-received
      - request-location-response
      - suggestion-response
      example: message-received
      type: string
    statusCallbackMessage:
      description: Message payload schema within a callback
      properties:
        id:
          description: A unique identifier of the message.
          example: 1661365814859loidf7mcwd4qacn7
          type: string
        owner:
          description: The Bandwidth phone number or alphanumeric identifier associated
            with the message.
          example: "+15553332222"
          type: string
        applicationId:
          description: The ID of the Application your from number or senderId is associated
            with in the Bandwidth Phone Number Dashboard.
          example: 93de2206-9669-4e07-948d-329f4b722ee2
          type: string
        time:
          example: 2024-12-02T20:15:57.666Z
          format: date-time
          type: string
        segmentCount:
          description: The number of segments the user's message is broken into before
            sending over carrier networks.
          example: 1
          type: integer
        direction:
          $ref: "#/components/schemas/messageDirectionEnum"
        to:
          description: The phone number recipients of the message.
          example:
          - "+15552223333"
          items:
            type: string
          type: array
          uniqueItems: true
        from:
          description: The Bandwidth phone number or alphanumeric identifier the message
            was sent from.
          example: "+15553332222"
          type: string
        text:
          example: Hello world
          type: string
        tag:
          description: A custom string that will be included in callback events of
            the message. Max 1024 characters.
          example: custom string
          title: Tag
          type: string
        media:
          description: "Optional media, not applicable for sms"
          example:
          - https://dev.bandwidth.com/images/bandwidth-logo.png
          - https://dev.bandwidth.com/images/github_logo.png
          items:
            format: uri
            type: string
          type: array
        priority:
          $ref: "#/components/schemas/priorityEnum"
        channel:
          $ref: "#/components/schemas/multiChannelMessageChannelEnum"
      required:
      - applicationId
      - direction
      - from
      - id
      - owner
      - segmentCount
      - time
      - to
      type: object
    inboundCallbackMessage:
      allOf:
      - $ref: "#/components/schemas/statusCallbackMessage"
      - properties:
          content:
            $ref: "#/components/schemas/multiChannelMessageContent"
          suggestionResponse:
            $ref: "#/components/schemas/rbmSuggestionResponse"
          locationResponse:
            $ref: "#/components/schemas/rbmLocationResponse"
        type: object
      required:
      - applicationId
      - direction
      - from
      - id
      - owner
      - segmentCount
      - time
      - to
    callbackMethodEnum:
      default: POST
      description: The HTTP method to use to deliver the callback. GET or POST. Default
        value is POST.
      enum:
      - GET
      - POST
      example: POST
      nullable: true
      type: string
    redirectMethodEnum:
      default: POST
      description: |-
        The HTTP method to use for the request to `redirectUrl`. GET
        or POST. Default value is POST.<br><br>Not allowed if `state` is `completed`.
      enum:
      - GET
      - POST
      example: POST
      nullable: true
      type: string
    recordingStateEnum:
      description: |-
        The recording state. Possible values:

        `paused` to pause an active recording

        `recording` to resume a paused recording
      enum:
      - paused
      - recording
      example: paused
      type: string
    callDirectionEnum:
      description: The direction of the call.
      enum:
      - inbound
      - outbound
      example: inbound
      type: string
    fileFormatEnum:
      description: The format that the recording is stored in.
      enum:
      - mp3
      - wav
      example: wav
      type: string
    callStateEnum:
      default: active
      description: |-
        The call state. Possible values:<br>`active` to redirect the
        call (default)<br>`completed` to hang up the call if it is answered, cancel
        it if it is an unanswered outbound call, or reject it if it an unanswered
        inbound call
      enum:
      - active
      - completed
      example: completed
      nullable: true
      type: string
    conferenceStateEnum:
      default: active
      description: Setting the conference state to `completed` ends the conference
        and ejects all members.
      enum:
      - active
      - completed
      example: completed
      nullable: true
      type: string
    machineDetectionModeEnum:
      default: async
      description: |-
        The machine detection mode. If set to 'async', the detection
        result will be sent in a 'machineDetectionComplete' callback. If set to
        'sync', the 'answer' callback will wait for the machine detection to complete
        and will include its result.
      enum:
      - sync
      - async
      example: async
      type: string
    callTranscriptionDetectedLanguageEnum:
      description: The detected language for this transcription.
      enum:
      - en-US
      - es-US
      - fr-FR
      example: en-US
      type: string
    callTranscriptionTrackEnum:
      description: Which `track` this transcription is derived from.
      enum:
      - inbound
      - outbound
      example: inbound
      type: string
    createCall:
      properties:
        to:
          description: |-
            The destination to call (must be an E.164 formatted number
            (e.g. `+15555551212`) or a SIP URI (e.g. `sip:user@server.example`)).
          example: "+19195551234"
          type: string
        from:
          description: |-
            A Bandwidth phone number on your account the call should come
            from (must be in E.164 format, like `+15555551212`) even if `privacy` is set to true.
          example: "+15555551212"
          type: string
        privacy:
          description: Hide the calling number. The `displayName` field can be used
            to customize the displayed name.
          example: false
          nullable: true
          type: boolean
        displayName:
          description: "The caller display name to use when the call is created. \n\
            May not exceed 256 characters nor contain control characters such as new\
            \ lines.\nIf `privacy` is true, only the following values are valid: `Restricted`,\
            \ `Anonymous`, `Private`, or `Unavailable`."
          example: John Doe
          maxLength: 256
          nullable: true
          type: string
        uui:
          description: |-
            A comma-separated list of 'User-To-User' headers to be sent
            in the INVITE when calling a SIP URI. Each value must end with an 'encoding'
            parameter as described in <a href='https://tools.ietf.org/html/rfc7433'>RFC
            7433</a>. Only 'jwt', 'base64' and 'hex' encodings are allowed. The entire value
            cannot exceed 350 characters, including parameters and separators.
          example: "eyJhbGciOiJIUzI1NiJ9.WyJoaSJd.-znkjYyCkgz4djmHUPSXl9YrJ6Nix_XvmlwKGFh5ERM;encoding=jwt,aGVsbG8gd29ybGQ;encoding=base64"
          nullable: true
          type: string
        applicationId:
          description: The id of the application associated with the `from` number.
          example: 1234-qwer-5679-tyui
          type: string
        answerUrl:
          description: |-
            The full URL to send the <a href='/docs/voice/webhooks/answer'>Answer</a>
            event to when the called party answers. This endpoint should return the
            first <a href='/docs/voice/bxml'>BXML document</a> to be executed in the
            call.

            Must use `https` if specifying `username` and `password`.
          example: https://www.myCallbackServer.example/webhooks/answer
          format: uri
          maxLength: 2048
          type: string
        answerMethod:
          $ref: "#/components/schemas/callbackMethodEnum"
        username:
          description: Basic auth username.
          example: mySecretUsername
          maxLength: 1024
          nullable: true
          type: string
        password:
          description: Basic auth password.
          example: mySecretPassword1!
          maxLength: 1024
          nullable: true
          type: string
        answerFallbackUrl:
          description: |-
            A fallback url which, if provided, will be used to retry the
            `answer` webhook delivery in case `answerUrl` fails to respond

            Must use `https` if specifying `fallbackUsername` and `fallbackPassword`.
          example: https://www.myFallbackServer.example/webhooks/answer
          format: uri
          maxLength: 2048
          nullable: true
          type: string
        answerFallbackMethod:
          $ref: "#/components/schemas/callbackMethodEnum"
        fallbackUsername:
          description: Basic auth username.
          example: mySecretUsername
          maxLength: 1024
          nullable: true
          type: string
        fallbackPassword:
          description: Basic auth password.
          example: mySecretPassword1!
          maxLength: 1024
          nullable: true
          type: string
        disconnectUrl:
          description: The URL to send the <a href='/docs/voice/webhooks/disconnect'>Disconnect</a>
            event to when the call ends. This event does not expect a BXML response.
          example: https://www.myCallbackServer.example/webhooks/disconnect
          format: uri
          maxLength: 2048
          nullable: true
          type: string
        disconnectMethod:
          $ref: "#/components/schemas/callbackMethodEnum"
        callTimeout:
          default: 30
          description: |-
            The timeout (in seconds) for the callee to answer the call
            after it starts ringing. If the call does not start ringing within 30s,
            the call will be cancelled regardless of this value.  Can be any numeric
            value (including decimals) between 1 and 300.
          example: 30
          format: double
          maximum: 300
          minimum: 1
          nullable: true
          type: number
        callbackTimeout:
          default: 15
          description: |-
            This is the timeout (in seconds) to use when delivering webhooks
            for the call. Can be any numeric value (including decimals) between 1
            and 25.
          example: 15
          format: double
          maximum: 25
          minimum: 1
          nullable: true
          type: number
        machineDetection:
          $ref: "#/components/schemas/machineDetectionConfiguration"
        priority:
          default: 5
          description: |-
            The priority of this call over other calls from your account. For example, if during a call
            your application needs to place a new call and bridge it with the current
            call, you might want to create the call with priority 1 so that it will
            be the next call picked off your queue, ahead of other less time sensitive
            calls. A lower value means higher priority, so a priority 1 call takes
            precedence over a priority 2 call.
          example: 5
          maximum: 5
          minimum: 1
          nullable: true
          type: integer
        tag:
          description: |-
            A custom string that will be sent with all webhooks for this
            call unless overwritten by a future <a href='/docs/voice/bxml/tag'>`<Tag>`</a>
            verb or `tag` attribute on another verb, or cleared.

            May be cleared by setting `tag=""`

            Max length 256 characters.
          example: arbitrary text here
          maxLength: 256
          nullable: true
          type: string
      required:
      - answerUrl
      - applicationId
      - from
      - to
      type: object
    createCallResponse:
      example:
        callId: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        answerUrl: https://myServer.example/bandwidth/webhooks/answer
        callUrl: https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        callbackTimeout: 15
        answerFallbackMethod: POST
        answerFallbackUrl: https://myFallbackServer.example/bandwidth/webhooks/answer
        callTimeout: 30
        priority: 5
        disconnectMethod: POST
        accountId: "9900000"
        password: mySecretPassword1!
        answerMethod: POST
        enqueuedTime: 2022-06-16T13:15:07.16Z
        disconnectUrl: https://myServer.example/bandwidth/webhooks/disconnect
        from: "+19195554321"
        fallbackPassword: mySecretPassword1!
        to: "+19195551234"
        tag: My custom tag value
        applicationId: 04e88489-df02-4e34-a0ee-27a91849555f
        username: mySecretUsername
        fallbackUsername: mySecretUsername
      properties:
        applicationId:
          description: The id of the application associated with the `from` number.
          example: 04e88489-df02-4e34-a0ee-27a91849555f
          type: string
        accountId:
          description: The bandwidth account ID associated with the call.
          example: "9900000"
          type: string
        callId:
          description: Programmable Voice API Call ID.
          example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          type: string
        to:
          description: Recipient of the outgoing call.
          example: "+19195551234"
          type: string
        from:
          description: Phone number that created the outbound call.
          example: "+19195554321"
          type: string
        enqueuedTime:
          description: The time at which the call was accepted into the queue.
          example: 2022-06-16T13:15:07.16Z
          format: date-time
          nullable: true
          type: string
        callUrl:
          description: The URL to update this call's state.
          example: https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          format: uri
          type: string
        callTimeout:
          description: The timeout (in seconds) for the callee to answer the call
            after it starts ringing.
          example: 30
          format: double
          type: number
        callbackTimeout:
          description: This is the timeout (in seconds) to use when delivering webhooks
            for the call.
          example: 15
          format: double
          type: number
        tag:
          description: Custom tag value.
          example: My custom tag value
          nullable: true
          type: string
        answerMethod:
          $ref: "#/components/schemas/callbackMethodEnum"
        answerUrl:
          description: URL to deliver the `answer` event webhook.
          example: https://myServer.example/bandwidth/webhooks/answer
          format: uri
          type: string
        answerFallbackMethod:
          $ref: "#/components/schemas/callbackMethodEnum"
        answerFallbackUrl:
          description: Fallback URL to deliver the `answer` event webhook.
          example: https://myFallbackServer.example/bandwidth/webhooks/answer
          format: uri
          nullable: true
          type: string
        disconnectMethod:
          $ref: "#/components/schemas/callbackMethodEnum"
        disconnectUrl:
          description: URL to deliver the `disconnect` event webhook.
          example: https://myServer.example/bandwidth/webhooks/disconnect
          format: uri
          nullable: true
          type: string
        username:
          description: Basic auth username.
          example: mySecretUsername
          maxLength: 1024
          nullable: true
          type: string
        password:
          description: Basic auth password.
          example: mySecretPassword1!
          maxLength: 1024
          nullable: true
          type: string
        fallbackUsername:
          description: Basic auth username.
          example: mySecretUsername
          maxLength: 1024
          nullable: true
          type: string
        fallbackPassword:
          description: Basic auth password.
          example: mySecretPassword1!
          maxLength: 1024
          nullable: true
          type: string
        priority:
          description: The priority of this call over other calls from your account.
          example: 5
          nullable: true
          type: integer
      required:
      - accountId
      - answerMethod
      - answerUrl
      - applicationId
      - callId
      - callUrl
      - disconnectMethod
      - from
      - to
      type: object
    callState:
      example:
        callId: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        answerTime: 2022-06-16T13:15:18.126Z
        parentCallId: c-25ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        disconnectCause: disconnectCause
        errorMessage: errorMessage
        accountId: "9900000"
        identity: eyJhbGciOiJFUzI1NiIsInBwdCI6InNoYWtlbiIsInR5cCI6InBhc3Nwb3J0IiwieDV1IjoiaHR0cHM6Ly9idy1zaGFrZW4tY2VydC1wdWIuczMuYW1hem9uYXdzLmNvbS9iYW5kd2lkdGgtc2hha2VuLWNlcnRfMjAyMzA3MTYucGVtIn0.eyJhdHRlc3QiOiJBIiwiZGVzdCI6eyJ0biI6WyIxOTg0MjgyMDI4MCJdfSwiaWF0IjoxNjU2NTM0MzM2LCJvcmlnIjp7InRuIjoiMTkxOTQ0NDI2ODMifSwib3JpZ2lkIjoiNDk0NTlhOGEtNDJmNi0zNTFjLTkzNjEtYWRmNTdhOWUwOGNhIn0.56un9sRw_uH-sbJvnUsqdevlVxbOVjn8MVlGTlBMicjaZuRRwxfiNp-C9zYCMKTTCbc-QdYPN05F61XNVN4D3w;info=<https://bw-shaken-cert-pub.s3.amazonaws.com/bandwidth-shaken-cert_20230716.pem>;alg=ES256;ppt=shaken
        enqueuedTime: 2022-06-16T13:15:07.16Z
        lastUpdate: 2022-06-16T13:15:18.314Z
        stirShaken:
          verstat: TN-Validation-Passed
          attestationIndicator: A
          originatingId: abc123
        from: "+19195554321"
        startTime: 2022-06-16T13:15:07.16Z
        to: "+19195551234"
        state: disconnected
        endTime: 2022-06-16T13:15:18.314Z
        errorId: errorId
        applicationId: 04e88489-df02-4e34-a0ee-27a91849555f
        direction: inbound
      properties:
        applicationId:
          description: The application id associated with the call.
          example: 04e88489-df02-4e34-a0ee-27a91849555f
          type: string
        accountId:
          description: The account id associated with the call.
          example: "9900000"
          type: string
        callId:
          description: The programmable voice API call ID.
          example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          type: string
        parentCallId:
          description: "The A-leg call id, set only if this call is the B-leg of a\
            \ [`<Transfer>`](/docs/voice/bxml/transfer)."
          example: c-25ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          nullable: true
          type: string
        to:
          description: "The phone number that received the call, in E.164 format (e.g.\
            \ +15555555555), or if the call was to a SIP URI, the SIP URI."
          example: "+19195551234"
          type: string
        from:
          description: "The phone number that made the call, in E.164 format (e.g.\
            \ +15555555555)."
          example: "+19195554321"
          type: string
        direction:
          $ref: "#/components/schemas/callDirectionEnum"
        state:
          description: |-
            The current state of the call. Current possible values are
            `queued`, `initiated`, `answered` and `disconnected`. Additional states
            may be added in the future, so your application must be tolerant of unknown
            values.
          example: disconnected
          type: string
        stirShaken:
          additionalProperties:
            type: string
          description: |-
            For inbound calls, the Bandwidth STIR/SHAKEN implementation will verify the information provided in the inbound invite request `Identity` header.
            The verification status is stored in the call state `stirShaken` property as follows.

            | Property          | Description |
            |:------------------|:------------|
            | verstat | (optional) The verification status indicating whether the verification was successful or not. Possible values are `TN-Validation-Passed` or `TN-Validation-Failed`. |
            | attestationIndicator | (optional) The attestation level verified by Bandwidth. Possible values are `A` (full), `B` (partial) or `C` (gateway). |
            | originatingId | (optional) A unique origination identifier. |

            Note that these are common properties but that the `stirShaken` object is free form and can contain other key-value pairs.

            More information: [Understanding STIR/SHAKEN](https://www.bandwidth.com/regulations/stir-shaken).
          example:
            verstat: TN-Validation-Passed
            attestationIndicator: A
            originatingId: abc123
          nullable: true
          type: object
        identity:
          description: |-
            The value of the `Identity` header from the inbound invite
            request. Only present for inbound calls and if the account is configured
            to forward this header.
          example: eyJhbGciOiJFUzI1NiIsInBwdCI6InNoYWtlbiIsInR5cCI6InBhc3Nwb3J0IiwieDV1IjoiaHR0cHM6Ly9idy1zaGFrZW4tY2VydC1wdWIuczMuYW1hem9uYXdzLmNvbS9iYW5kd2lkdGgtc2hha2VuLWNlcnRfMjAyMzA3MTYucGVtIn0.eyJhdHRlc3QiOiJBIiwiZGVzdCI6eyJ0biI6WyIxOTg0MjgyMDI4MCJdfSwiaWF0IjoxNjU2NTM0MzM2LCJvcmlnIjp7InRuIjoiMTkxOTQ0NDI2ODMifSwib3JpZ2lkIjoiNDk0NTlhOGEtNDJmNi0zNTFjLTkzNjEtYWRmNTdhOWUwOGNhIn0.56un9sRw_uH-sbJvnUsqdevlVxbOVjn8MVlGTlBMicjaZuRRwxfiNp-C9zYCMKTTCbc-QdYPN05F61XNVN4D3w;info=<https://bw-shaken-cert-pub.s3.amazonaws.com/bandwidth-shaken-cert_20230716.pem>;alg=ES256;ppt=shaken
          nullable: true
          type: string
        enqueuedTime:
          description: The time this call was placed in queue.
          example: 2022-06-16T13:15:07.16Z
          format: date-time
          nullable: true
          type: string
        startTime:
          description: "The time the call was initiated, in ISO 8601 format. `null`\
            \ if the call is still in your queue."
          example: 2022-06-16T13:15:07.16Z
          format: date-time
          nullable: true
          type: string
        answerTime:
          description: "Populated once the call has been answered, with the time in\
            \ ISO 8601 format."
          example: 2022-06-16T13:15:18.126Z
          format: date-time
          nullable: true
          type: string
        endTime:
          description: "Populated once the call has ended, with the time in ISO 8601\
            \ format."
          example: 2022-06-16T13:15:18.314Z
          format: date-time
          nullable: true
          type: string
        disconnectCause:
          description: |-
            | Cause | Description |
            |:------|:------------|
            | `hangup`| One party hung up the call, a [`<Hangup>`](../../bxml/verbs/hangup.md) verb was executed, or there was no more BXML to execute; it indicates that the call ended normally. |
            | `busy` | Callee was busy. |
            | `timeout` | Call wasn't answered before the `callTimeout` was reached. |
            | `cancel` | Call was cancelled by its originator while it was ringing. |
            | `rejected` | Call was rejected by the callee. |
            | `callback-error` | BXML callback couldn't be delivered to your callback server. |
            | `invalid-bxml` | Invalid BXML was returned in response to a callback. |
            | `application-error` | An unsupported action was tried on the call, e.g. trying to play a .ogg audio. |
            | `account-limit` | Account rate limits were reached. |
            | `node-capacity-exceeded` | System maximum capacity was reached. |
            | `error` | Some error not described in any of the other causes happened on the call. |
            | `unknown` | Unknown error happened on the call. |

            Note: This list is not exhaustive and other values can appear in the future.
          nullable: true
          type: string
        errorMessage:
          description: "Populated only if the call ended with an error, with text\
            \ explaining the reason."
          nullable: true
          type: string
          example: null
        errorId:
          description: "Populated only if the call ended with an error, with a Bandwidth\
            \ internal id that references the error event."
          nullable: true
          type: string
          example: null
        lastUpdate:
          description: "The last time the call had a state update, in ISO 8601 format."
          example: 2022-06-16T13:15:18.314Z
          format: date-time
          type: string
      type: object
    updateCall:
      properties:
        state:
          $ref: "#/components/schemas/callStateEnum"
        redirectUrl:
          description: |-
            The URL to send the [Redirect](/docs/voice/bxml/redirect) event
            to which will provide new BXML.

            Required if `state` is `active`.

            Not allowed if `state` is `completed`.
          example: https://myServer.example/bandwidth/webhooks/redirect
          format: uri
          nullable: true
          type: string
        redirectMethod:
          $ref: "#/components/schemas/redirectMethodEnum"
        username:
          description: Basic auth username.
          example: mySecretUsername
          maxLength: 1024
          nullable: true
          type: string
        password:
          description: Basic auth password.
          example: mySecretPassword1!
          maxLength: 1024
          nullable: true
          type: string
        redirectFallbackUrl:
          description: |-
            A fallback url which, if provided, will be used to retry the
            redirect callback delivery in case `redirectUrl` fails to respond.
          example: https://myFallbackServer.example/bandwidth/webhooks/redirect
          format: uri
          nullable: true
          type: string
        redirectFallbackMethod:
          $ref: "#/components/schemas/redirectMethodEnum"
        fallbackUsername:
          description: Basic auth username.
          example: mySecretUsername
          maxLength: 1024
          nullable: true
          type: string
        fallbackPassword:
          description: Basic auth password.
          example: mySecretPassword1!
          maxLength: 1024
          nullable: true
          type: string
        tag:
          description: |-
            A custom string that will be sent with this and all future
            callbacks unless overwritten by a future `tag` attribute or [`<Tag>`](/docs/voice/bxml/tag)
            verb, or cleared.

            May be cleared by setting `tag=""`.

            Max length 256 characters.

            Not allowed if `state` is `completed`.
          example: My Custom Tag
          maxLength: 256
          nullable: true
          type: string
      type: object
    updateCallRecording:
      properties:
        state:
          $ref: "#/components/schemas/recordingStateEnum"
      required:
      - state
      type: object
    accountStatistics:
      example:
        currentCallQueueSize: 0
        maxCallQueueSize: 900
      properties:
        currentCallQueueSize:
          description: The number of calls currently enqueued.
          example: 0
          type: integer
        maxCallQueueSize:
          description: The maximum size of the queue before outgoing calls start being
            rejected.
          example: 900
          type: integer
      type: object
    callRecordingMetadata:
      example:
        callId: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        mediaUrl: https://voice.bandwidth.com/api/v2/accounts/9900000/conferences/conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9/recordings/r-fbe05094-9fd2afe9-bf5b-4c68-820a-41a01c1c5833/media
        transcription:
          completedTime: 2022-06-13T18:46:29.715Z
          id: t-387bd648-18f3-4823-9d16-746bca0003c9
          url: https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85/recordings/r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85/transcription
          status: completed
        parentCallId: c-95ac8d6e-1a31c52e-b38f-4198-93c1-51633ec68f8d
        recordingName: my-recording-name
        transferCallerId: "+15555555555"
        transferTo: "+15555555555"
        duration: PT13.67S
        accountId: "9900000"
        channels: 1
        from: "+15555555555"
        startTime: 2022-06-17T22:19:40.375Z
        to: "+15555555555"
        endTime: 2022-06-17T22:20:00Z
        applicationId: 04e88489-df02-4e34-a0ee-27a91849555f
        recordingId: r-fbe05094-9fd2afe9-bf5b-4c68-820a-41a01c1c5833
        fileFormat: wav
        direction: inbound
        status: completed
      properties:
        applicationId:
          description: The id of the application associated with the call.
          example: 04e88489-df02-4e34-a0ee-27a91849555f
          type: string
        accountId:
          description: The user account associated with the call.
          example: "9900000"
          type: string
        callId:
          description: The call id associated with the event.
          example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          type: string
        parentCallId:
          description: "(optional) If the event is related to the B leg of a <Transfer>,\
            \ the call id of the original call leg that executed the <Transfer>. Otherwise,\
            \ this field will not be present."
          example: c-95ac8d6e-1a31c52e-b38f-4198-93c1-51633ec68f8d
          type: string
        recordingId:
          description: The unique ID of this recording
          example: r-fbe05094-9fd2afe9-bf5b-4c68-820a-41a01c1c5833
          type: string
        to:
          description: "The phone number that received the call, in E.164 format (e.g.\
            \ +15555555555)."
          example: "+15555555555"
          type: string
        from:
          description: The provided identifier of the caller. Must be a phone number
            in E.164 format (e.g. +15555555555).
          example: "+15555555555"
          type: string
        transferCallerId:
          description: "The phone number used as the from field of the B-leg call,\
            \ in E.164 format (e.g. +15555555555)."
          example: "+15555555555"
          type: string
        transferTo:
          description: "The phone number used as the to field of the B-leg call, in\
            \ E.164 format (e.g. +15555555555)."
          example: "+15555555555"
          type: string
        duration:
          description: The duration of the recording in ISO-8601 format
          example: PT13.67S
          type: string
        direction:
          $ref: "#/components/schemas/callDirectionEnum"
        channels:
          description: Always `1` for conference recordings; multi-channel recordings
            are not supported on conferences.
          example: 1
          format: int32
          type: integer
        startTime:
          description: "Time the call was started, in ISO 8601 format."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        endTime:
          description: The time that the recording ended in ISO-8601 format
          example: 2022-06-17T22:20:00Z
          format: date-time
          type: string
        fileFormat:
          $ref: "#/components/schemas/fileFormatEnum"
        status:
          description: "The current status of the process. For recording, current\
            \ possible values are 'processing', 'partial', 'complete', 'deleted',\
            \ and 'error'. For transcriptions, current possible values are 'none',\
            \ 'processing', 'available', 'error', 'timeout', 'file-size-too-big',\
            \ and 'file-size-too-small'. Additional states may be added in the future,\
            \ so your application must be tolerant of unknown values."
          example: completed
          type: string
        mediaUrl:
          description: The URL that can be used to download the recording. Only present
            if the recording is finished and may be downloaded.
          example: https://voice.bandwidth.com/api/v2/accounts/9900000/conferences/conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9/recordings/r-fbe05094-9fd2afe9-bf5b-4c68-820a-41a01c1c5833/media
          format: uri
          nullable: true
          type: string
        transcription:
          $ref: "#/components/schemas/recordingTranscriptionMetadata"
        recordingName:
          description: A name to identify this recording.
          example: my-recording-name
          type: string
      type: object
    conference:
      example:
        conferenceEventMethod: POST
        activeMembers:
        - callId: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          callIdsToCoach:
          - c-25ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          conferenceId: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
          memberUrl: https://voice.bandwidth.com/api/v2/accounts/9900000/conferences/conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9/members/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          mute: false
          hold: false
        - callId: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          callIdsToCoach:
          - c-25ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          conferenceId: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
          memberUrl: https://voice.bandwidth.com/api/v2/accounts/9900000/conferences/conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9/members/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          mute: false
          hold: false
        conferenceEventUrl: https://myServer.example/bandwidth/webhooks/conferenceEvent
        completedTime: 2022-06-17T22:20:00Z
        name: my-conference-name
        createdTime: 2022-06-17T22:19:40.375Z
        id: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
        tag: my custom tag
      properties:
        id:
          description: The Bandwidth-generated conference ID.
          example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
          type: string
        name:
          description: "The name of the conference, as specified by your application."
          example: my-conference-name
          type: string
        createdTime:
          description: "The time the conference was initiated, in ISO 8601 format."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        completedTime:
          description: "The time the conference was terminated, in ISO 8601 format."
          example: 2022-06-17T22:20:00Z
          format: date-time
          nullable: true
          type: string
        conferenceEventUrl:
          description: The URL to send the conference-related events.
          example: https://myServer.example/bandwidth/webhooks/conferenceEvent
          format: uri
          nullable: true
          type: string
        conferenceEventMethod:
          $ref: "#/components/schemas/callbackMethodEnum"
        tag:
          description: The custom string attached to the conference that will be sent
            with callbacks.
          example: my custom tag
          nullable: true
          type: string
        activeMembers:
          description: |-
            A list of active members of the conference. Omitted if this
            is a response to the [Get Conferences endpoint](/apis/voice#tag/Conferences/operation/listConferences).
          items:
            $ref: "#/components/schemas/conferenceMember"
          nullable: true
          type: array
      type: object
    updateConference:
      properties:
        status:
          $ref: "#/components/schemas/conferenceStateEnum"
        redirectUrl:
          description: |-
            The URL to send the [conferenceRedirect](/docs/voice/webhooks/conferenceRedirect)
            event which will provide new BXML. Not allowed if `state` is `completed`,
            but required if `state` is `active`.
          example: https://myServer.example/bandwidth/webhooks/conferenceRedirect
          format: uri
          nullable: true
          type: string
        redirectMethod:
          $ref: "#/components/schemas/redirectMethodEnum"
        username:
          description: Basic auth username.
          example: mySecretUsername
          maxLength: 1024
          nullable: true
          type: string
        password:
          description: Basic auth password.
          example: mySecretPassword1!
          maxLength: 1024
          nullable: true
          type: string
        redirectFallbackUrl:
          description: |-
            A fallback url which, if provided, will be used to retry the
            `conferenceRedirect` webhook delivery in case `redirectUrl` fails to respond.  Not
            allowed if `state` is `completed`.
          example: https://myFallbackServer.example/bandwidth/webhooks/conferenceRedirect
          format: uri
          nullable: true
          type: string
        redirectFallbackMethod:
          $ref: "#/components/schemas/redirectMethodEnum"
        fallbackUsername:
          description: Basic auth username.
          example: mySecretUsername
          maxLength: 1024
          nullable: true
          type: string
        fallbackPassword:
          description: Basic auth password.
          example: mySecretPassword1!
          maxLength: 1024
          nullable: true
          type: string
      type: object
    conferenceMember:
      example:
        callId: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        callIdsToCoach:
        - c-25ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        conferenceId: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
        memberUrl: https://voice.bandwidth.com/api/v2/accounts/9900000/conferences/conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9/members/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        mute: false
        hold: false
      properties:
        callId:
          description: The call id associated with the event.
          example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          type: string
        conferenceId:
          description: "The unique, Bandwidth-generated ID of the conference that\
            \ was recorded"
          example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
          type: string
        memberUrl:
          description: |-
            A URL that may be used to retrieve information about or update
            the state of this conference member. This is the URL of this member's
            [Get Conference Member](/apis/voice-apis/voice/#tag/Conferences/operation/getConferenceMember) endpoint
            and [Modify Conference Member](/apis/voice-apis/voice/#tag/Conferences/operation/updateConferenceMember)
            endpoint.
          example: https://voice.bandwidth.com/api/v2/accounts/9900000/conferences/conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9/members/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          format: uri
          type: string
        mute:
          description: |-
            Whether or not this member is currently muted. Members who are muted are still able to hear other participants.

            If used in a PUT request, updates this member's mute status. Has no effect if omitted.
          example: false
          type: boolean
        hold:
          description: |-
            Whether or not this member is currently on hold. Members who are on hold are not able to hear or speak in the conference.

            If used in a PUT request, updates this member's hold status. Has no effect if omitted.
          example: false
          type: boolean
        callIdsToCoach:
          description: |-
            If this member had a value set for `callIdsToCoach` in its [Conference](/docs/voice/bxml/conference) verb or this list was added with a previous PUT request to modify the member, this is that list of calls.

            If present in a PUT request, modifies the calls that this member is coaching. Has no effect if omitted. See the documentation for the [Conference](/docs/voice/bxml/conference) verb for more details about coaching.
            Note that this will not add the matching calls to the conference; each call must individually execute a Conference verb to join.
          example:
          - c-25ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          items:
            type: string
          nullable: true
          type: array
      type: object
    updateConferenceMember:
      properties:
        mute:
          description: |-
            Whether or not this member is currently muted. Members who are muted are still able to hear other participants.

            Updates this member's mute status. Has no effect if omitted.
          example: false
          type: boolean
        hold:
          description: |-
            Whether or not this member is currently on hold. Members who are on hold are not able to hear or speak in the conference.

            Updates this member's hold status. Has no effect if omitted.
          example: false
          type: boolean
        callIdsToCoach:
          description: |-
            If this member had a value set for `callIdsToCoach` in its [Conference](/docs/voice/bxml/conference) verb or this list was added with a previous PUT request to modify the member, this is that list of calls.

            Modifies the calls that this member is coaching. Has no effect if omitted. See the documentation for the [Conference](/docs/voice/bxml/conference) verb for more details about coaching.

            Note that this will not add the matching calls to the conference; each call must individually execute a Conference verb to join.
          example:
          - c-25ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          items:
            type: string
          nullable: true
          type: array
      type: object
    conferenceRecordingMetadata:
      example:
        duration: PT13.67S
        accountId: "9900000"
        channels: 1
        mediaUrl: https://voice.bandwidth.com/api/v2/accounts/9900000/conferences/conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9/recordings/r-fbe05094-9fd2afe9-bf5b-4c68-820a-41a01c1c5833/media
        conferenceId: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
        recordingName: my-recording-name
        name: my-conference-name
        startTime: 2022-06-17T22:19:40.375Z
        endTime: 2022-06-17T22:20:00Z
        recordingId: r-fbe05094-9fd2afe9-bf5b-4c68-820a-41a01c1c5833
        fileFormat: wav
        status: completed
      properties:
        accountId:
          description: The user account associated with the call.
          example: "9900000"
          type: string
        conferenceId:
          description: "The unique, Bandwidth-generated ID of the conference that\
            \ was recorded"
          example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
          type: string
        name:
          description: The user-specified name of the conference that was recorded
          example: my-conference-name
          type: string
        recordingId:
          description: The unique ID of this recording
          example: r-fbe05094-9fd2afe9-bf5b-4c68-820a-41a01c1c5833
          type: string
        duration:
          description: The duration of the recording in ISO-8601 format
          example: PT13.67S
          type: string
        channels:
          description: Always `1` for conference recordings; multi-channel recordings
            are not supported on conferences.
          example: 1
          format: int32
          type: integer
        startTime:
          description: "Time the call was started, in ISO 8601 format."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        endTime:
          description: The time that the recording ended in ISO-8601 format
          example: 2022-06-17T22:20:00Z
          format: date-time
          type: string
        fileFormat:
          $ref: "#/components/schemas/fileFormatEnum"
        status:
          description: "The current status of the process. For recording, current\
            \ possible values are 'processing', 'partial', 'complete', 'deleted',\
            \ and 'error'. For transcriptions, current possible values are 'none',\
            \ 'processing', 'available', 'error', 'timeout', 'file-size-too-big',\
            \ and 'file-size-too-small'. Additional states may be added in the future,\
            \ so your application must be tolerant of unknown values."
          example: completed
          type: string
        mediaUrl:
          description: The URL that can be used to download the recording. Only present
            if the recording is finished and may be downloaded.
          example: https://voice.bandwidth.com/api/v2/accounts/9900000/conferences/conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9/recordings/r-fbe05094-9fd2afe9-bf5b-4c68-820a-41a01c1c5833/media
          format: uri
          nullable: true
          type: string
        recordingName:
          description: A name to identify this recording.
          example: my-recording-name
          type: string
      type: object
    machineDetectionConfiguration:
      description: "The machine detection request used to perform <a href='/docs/voice/guides/machineDetection'>machine\
        \ detection</a> on the call. Currently, there is an issue where decimal values\
        \ are not getting processed correctly. Please use whole number values. We\
        \ are working to resolve this issue. Please contact Bandwidth Support if you\
        \ need more information."
      properties:
        mode:
          $ref: "#/components/schemas/machineDetectionModeEnum"
        detectionTimeout:
          default: 15
          description: |-
            The timeout used for the whole operation, in seconds. If no
            result is determined in this period, a callback with a `timeout` result
            is sent.
          example: 15
          format: double
          nullable: true
          type: number
        silenceTimeout:
          default: 10
          description: "If no speech is detected in this period, a callback with a\
            \ 'silence' result is sent."
          example: 10
          format: double
          nullable: true
          type: number
        speechThreshold:
          default: 10
          description: |-
            When speech has ended and a result couldn't be determined based
            on the audio content itself, this value is used to determine if the speaker
            is a machine based on the speech duration. If the length of the speech
            detected is greater than or equal to this threshold, the result will be
            'answering-machine'. If the length of speech detected is below this threshold,
            the result will be 'human'.
          example: 10
          format: double
          nullable: true
          type: number
        speechEndThreshold:
          default: 5
          description: Amount of silence (in seconds) before assuming the callee has
            finished speaking.
          example: 5
          format: double
          nullable: true
          type: number
        machineSpeechEndThreshold:
          description: "When an answering machine is detected, the amount of silence\
            \ (in seconds) before assuming the message has finished playing. \nIf\
            \ not provided it will default to the speechEndThreshold value."
          example: 5
          format: double
          nullable: true
          type: number
        delayResult:
          default: false
          description: |-
            If set to 'true' and if an answering machine is detected, the
            'answering-machine' callback will be delayed until the machine is done
            speaking, or an end of message tone is detected, or until the 'detectionTimeout' is exceeded. If false, the 'answering-machine'
            result is sent immediately.
          example: false
          nullable: true
          type: boolean
        callbackUrl:
          description: The URL to send the 'machineDetectionComplete' webhook when
            the detection is completed. Only for 'async' mode.
          example: https://myServer.example/bandwidth/webhooks/machineDetectionComplete
          format: uri
          maxLength: 2048
          nullable: true
          type: string
        callbackMethod:
          $ref: "#/components/schemas/callbackMethodEnum"
        username:
          description: Basic auth username.
          example: mySecretUsername
          maxLength: 1024
          nullable: true
          type: string
        password:
          description: Basic auth password.
          example: mySecretPassword1!
          maxLength: 1024
          nullable: true
          type: string
        fallbackUrl:
          description: |-
            A fallback URL which, if provided, will be used to retry the
            machine detection complete webhook delivery in case `callbackUrl` fails
            to respond
          example: https://myFallbackServer.example/bandwidth/webhooks/machineDetectionComplete
          format: uri
          maxLength: 2048
          nullable: true
          type: string
        fallbackMethod:
          $ref: "#/components/schemas/callbackMethodEnum"
        fallbackUsername:
          description: Basic auth username.
          example: mySecretUsername
          maxLength: 1024
          nullable: true
          type: string
        fallbackPassword:
          description: Basic auth password.
          example: mySecretPassword1!
          maxLength: 1024
          nullable: true
          type: string
      type: object
    transcribeRecording:
      properties:
        callbackUrl:
          description: |-
            The URL to send the [TranscriptionAvailable](/docs/voice/webhooks/transcriptionAvailable)
            event to. You should not include sensitive or personally-identifiable
            information in the callbackUrl field! Always use the proper username and
            password fields for authorization.
          example: https://myServer.example/bandwidth/webhooks/transcriptionAvailable
          format: uri
          type: string
        callbackMethod:
          $ref: "#/components/schemas/callbackMethodEnum"
        username:
          description: Basic auth username.
          example: mySecretUsername
          maxLength: 1024
          nullable: true
          type: string
        password:
          description: Basic auth password.
          example: mySecretPassword1!
          maxLength: 1024
          nullable: true
          type: string
        tag:
          description: "(optional) The tag specified on call creation. If no tag was\
            \ specified or it was previously cleared, this field will not be present."
          example: exampleTag
          nullable: true
          type: string
        callbackTimeout:
          default: 15
          description: |-
            This is the timeout (in seconds) to use when delivering the
            webhook to `callbackUrl`. Can be any numeric value (including decimals)
            between 1 and 25.
          example: 5.5
          format: double
          maximum: 25
          minimum: 1
          nullable: true
          type: number
        detectLanguage:
          default: false
          description: "A boolean value to indicate that the recording may not be\
            \ in English, and the transcription service will need to detect the dominant\
            \ language the recording is in and transcribe accordingly. Current supported\
            \ languages are English, French, and Spanish."
          example: true
          nullable: true
          type: boolean
      type: object
    recordingTranscriptions:
      example:
        transcripts:
        - confidence: 0.9
          text: "Nice talking to you, friend!"
        - confidence: 0.9
          text: "Nice talking to you, friend!"
      properties:
        transcripts:
          items:
            $ref: "#/components/schemas/transcription"
          type: array
      type: object
    callTranscriptionMetadataList:
      example:
      - transcriptionId: t-3f758f24-c7a2fc78-7c91-401a-8b2e-e542f9c40d6b
        transcriptionName: live_transcription
        transcriptionUrl: https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-fef240ff-5cfc9091-8069-4863-a8c0-a4dcbbf1f1a4/transcriptions/t-3f758f24-c7a2fc78-7c91-401a-8b2e-e542f9c40d6b
      items:
        $ref: "#/components/schemas/callTranscriptionMetadata"
      type: array
    callTranscriptionMetadata:
      properties:
        transcriptionId:
          description: The programmable voice API transcription ID.
          example: t-3f758f24-c7a2fc78-7c91-401a-8b2e-e542f9c40d6b
          type: string
        transcriptionName:
          description: The programmable voice API transcription name. This name could
            be provided by the user when creating the transcription.
          example: live_transcription
          type: string
        transcriptionUrl:
          description: |-
            A URL that may be used to retrieve the transcription itself. This points to the
            [Get Call Transcription](/apis/voice-apis/voice/#tag/Transcriptions/operation/getRealTimeTranscription) endpoint.
          example: https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-fef240ff-5cfc9091-8069-4863-a8c0-a4dcbbf1f1a4/transcriptions/t-3f758f24-c7a2fc78-7c91-401a-8b2e-e542f9c40d6b
          type: string
      type: object
    callTranscriptionResponse:
      example:
        callId: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        accountId: "9900000"
        transcriptionId: t-3f758f24-c7a2fc78-7c91-401a-8b2e-e542f9c40d6b
        tracks:
        - detectedLanguage: en-US
          track: inbound
          transcript: Hello World! This is an example.
          confidence: 0.9
      properties:
        accountId:
          description: The user account associated with the call.
          example: "9900000"
          type: string
        callId:
          description: The call id associated with the event.
          example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          type: string
        transcriptionId:
          description: The programmable voice API transcription ID.
          example: t-3f758f24-c7a2fc78-7c91-401a-8b2e-e542f9c40d6b
          type: string
        tracks:
          example:
          - detectedLanguage: en-US
            track: inbound
            transcript: Hello World! This is an example.
            confidence: 0.9
          items:
            $ref: "#/components/schemas/callTranscription"
          type: array
      type: object
    callTranscription:
      properties:
        detectedLanguage:
          $ref: "#/components/schemas/callTranscriptionDetectedLanguageEnum"
        track:
          $ref: "#/components/schemas/callTranscriptionTrackEnum"
        transcript:
          description: The transcription itself.
          example: Hello World! This is an example.
          type: string
        confidence:
          description: How confident the transcription engine was in transcribing
            the associated audio (from `0` to `1`).
          example: 0.9
          format: double
          maximum: 1
          minimum: 0
          type: number
      type: object
    recordingTranscriptionMetadata:
      description: "If the recording was transcribed, metadata about the transcription"
      example:
        completedTime: 2022-06-13T18:46:29.715Z
        id: t-387bd648-18f3-4823-9d16-746bca0003c9
        url: https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85/recordings/r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85/transcription
        status: completed
      nullable: true
      properties:
        id:
          description: The unique transcription ID
          example: t-387bd648-18f3-4823-9d16-746bca0003c9
          type: string
        status:
          description: "The current status of the process. For recording, current\
            \ possible values are 'processing', 'partial', 'complete', 'deleted',\
            \ and 'error'. For transcriptions, current possible values are 'none',\
            \ 'processing', 'available', 'error', 'timeout', 'file-size-too-big',\
            \ and 'file-size-too-small'. Additional states may be added in the future,\
            \ so your application must be tolerant of unknown values."
          example: completed
          type: string
        completedTime:
          description: The time that the transcription was completed
          example: 2022-06-13T18:46:29.715Z
          format: date-time
          type: string
        url:
          description: "The URL of the [transcription](#operation/getCallTranscription)"
          example: https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85/recordings/r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85/transcription
          format: uri
          type: string
      type: object
    voiceApiError:
      example:
        description: description
        id: id
        type: type
      properties:
        type:
          type: string
        description:
          type: string
        id:
          nullable: true
          type: string
      type: object
    answerCallback:
      description: The Answer event is sent to the answerUrl specified in the createCall
        request when an outbound call is answered.
      properties:
        eventType:
          description: "The event type, value can be one of the following: answer,\
            \ bridgeComplete, bridgeTargetComplete, conferenceCreated, conferenceRedirect,\
            \ conferenceMemberJoin, conferenceMemberExit, conferenceCompleted, conferenceRecordingAvailable,\
            \ disconnect, dtmf, gather, initiate, machineDetectionComplete, recordingComplete,\
            \ recordingAvailable, redirect, transcriptionAvailable, transferAnswer,\
            \ transferComplete, transferDisconnect."
          example: bridgeComplete
          type: string
        eventTime:
          description: "The approximate UTC date and time when the event was generated\
            \ by the Bandwidth server, in ISO 8601 format. This may not be exactly\
            \ the time of event execution."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        accountId:
          description: The user account associated with the call.
          example: "9900000"
          type: string
        applicationId:
          description: The id of the application associated with the call.
          example: 04e88489-df02-4e34-a0ee-27a91849555f
          type: string
        from:
          description: The provided identifier of the caller. Must be a phone number
            in E.164 format (e.g. +15555555555).
          example: "+15555555555"
          type: string
        to:
          description: "The phone number that received the call, in E.164 format (e.g.\
            \ +15555555555)."
          example: "+15555555555"
          type: string
        direction:
          $ref: "#/components/schemas/callDirectionEnum"
        callId:
          description: The call id associated with the event.
          example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          type: string
        callUrl:
          description: The URL of the call associated with the event.
          example: https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          format: uri
          type: string
        enqueuedTime:
          description: "(optional) If call queueing is enabled and this is an outbound\
            \ call, time the call was queued, in ISO 8601 format."
          example: 2022-06-17T22:20:00Z
          format: date-time
          nullable: true
          type: string
        startTime:
          description: "Time the call was started, in ISO 8601 format."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        answerTime:
          description: "Time the call was answered, in ISO 8601 format."
          example: 2022-06-17T22:20:00Z
          format: date-time
          nullable: true
          type: string
        tag:
          description: "(optional) The tag specified on call creation. If no tag was\
            \ specified or it was previously cleared, this field will not be present."
          example: exampleTag
          nullable: true
          type: string
        machineDetectionResult:
          $ref: "#/components/schemas/machineDetectionResult"
      type: object
    bridgeCompleteCallback:
      description: "If the target call leaves the <Bridge>, then this callback is\
        \ sent to the bridgeCompleteUrl, and the BXML returned in it is executed on\
        \ the call. If this webhook is sent, the Bridge Target Complete webhook is\
        \ NOT sent. This callback is also sent if any problem occurs that prevents\
        \ the calls to be bridged."
      properties:
        eventType:
          description: "The event type, value can be one of the following: answer,\
            \ bridgeComplete, bridgeTargetComplete, conferenceCreated, conferenceRedirect,\
            \ conferenceMemberJoin, conferenceMemberExit, conferenceCompleted, conferenceRecordingAvailable,\
            \ disconnect, dtmf, gather, initiate, machineDetectionComplete, recordingComplete,\
            \ recordingAvailable, redirect, transcriptionAvailable, transferAnswer,\
            \ transferComplete, transferDisconnect."
          example: bridgeComplete
          type: string
        eventTime:
          description: "The approximate UTC date and time when the event was generated\
            \ by the Bandwidth server, in ISO 8601 format. This may not be exactly\
            \ the time of event execution."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        accountId:
          description: The user account associated with the call.
          example: "9900000"
          type: string
        applicationId:
          description: The id of the application associated with the call.
          example: 04e88489-df02-4e34-a0ee-27a91849555f
          type: string
        from:
          description: The provided identifier of the caller. Must be a phone number
            in E.164 format (e.g. +15555555555).
          example: "+15555555555"
          type: string
        to:
          description: "The phone number that received the call, in E.164 format (e.g.\
            \ +15555555555)."
          example: "+15555555555"
          type: string
        direction:
          $ref: "#/components/schemas/callDirectionEnum"
        callId:
          description: The call id associated with the event.
          example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          type: string
        callUrl:
          description: The URL of the call associated with the event.
          example: https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          format: uri
          type: string
        enqueuedTime:
          description: "(optional) If call queueing is enabled and this is an outbound\
            \ call, time the call was queued, in ISO 8601 format."
          example: 2022-06-17T22:20:00Z
          format: date-time
          nullable: true
          type: string
        startTime:
          description: "Time the call was started, in ISO 8601 format."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        answerTime:
          description: "Time the call was answered, in ISO 8601 format."
          example: 2022-06-17T22:20:00Z
          format: date-time
          nullable: true
          type: string
        tag:
          description: "(optional) The tag specified on call creation. If no tag was\
            \ specified or it was previously cleared, this field will not be present."
          example: exampleTag
          nullable: true
          type: string
        cause:
          description: "Reason the call failed - hangup, busy, timeout, cancel, rejected,\
            \ callback-error, invalid-bxml, application-error, account-limit, node-capacity-exceeded,\
            \ error, or unknown."
          example: busy
          type: string
        errorMessage:
          description: Text explaining the reason that caused the call to fail in
            case of errors.
          example: Call c-2a913f94-6a486f3a-3cae-4034-bcc3-f0c9fa77ca2f is already
            bridged with another call
          nullable: true
          type: string
        errorId:
          description: Bandwidth's internal id that references the error event.
          example: 4642074b-7b58-478b-96e4-3a60955c6765
          nullable: true
          type: string
      type: object
    bridgeTargetCompleteCallback:
      description: "If the originating call leaves the <Bridge>, then this callback\
        \ is sent to the bridgeTargetCompleteUrl, and the BXML returned in it is executed\
        \ on the target call. If this webhook is sent, the Bridge Complete webhook\
        \ is NOT sent."
      properties:
        eventType:
          description: "The event type, value can be one of the following: answer,\
            \ bridgeComplete, bridgeTargetComplete, conferenceCreated, conferenceRedirect,\
            \ conferenceMemberJoin, conferenceMemberExit, conferenceCompleted, conferenceRecordingAvailable,\
            \ disconnect, dtmf, gather, initiate, machineDetectionComplete, recordingComplete,\
            \ recordingAvailable, redirect, transcriptionAvailable, transferAnswer,\
            \ transferComplete, transferDisconnect."
          example: bridgeComplete
          type: string
        eventTime:
          description: "The approximate UTC date and time when the event was generated\
            \ by the Bandwidth server, in ISO 8601 format. This may not be exactly\
            \ the time of event execution."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        accountId:
          description: The user account associated with the call.
          example: "9900000"
          type: string
        applicationId:
          description: The id of the application associated with the call.
          example: 04e88489-df02-4e34-a0ee-27a91849555f
          type: string
        from:
          description: The provided identifier of the caller. Must be a phone number
            in E.164 format (e.g. +15555555555).
          example: "+15555555555"
          type: string
        to:
          description: "The phone number that received the call, in E.164 format (e.g.\
            \ +15555555555)."
          example: "+15555555555"
          type: string
        direction:
          $ref: "#/components/schemas/callDirectionEnum"
        callId:
          description: The call id associated with the event.
          example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          type: string
        callUrl:
          description: The URL of the call associated with the event.
          example: https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          format: uri
          type: string
        enqueuedTime:
          description: "(optional) If call queueing is enabled and this is an outbound\
            \ call, time the call was queued, in ISO 8601 format."
          example: 2022-06-17T22:20:00Z
          format: date-time
          nullable: true
          type: string
        startTime:
          description: "Time the call was started, in ISO 8601 format."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        answerTime:
          description: "Time the call was answered, in ISO 8601 format."
          example: 2022-06-17T22:20:00Z
          format: date-time
          nullable: true
          type: string
        tag:
          description: "(optional) The tag specified on call creation. If no tag was\
            \ specified or it was previously cleared, this field will not be present."
          example: exampleTag
          nullable: true
          type: string
      type: object
    conferenceCreatedCallback:
      description: "The Conference Created event is fired whenever a new conference\
        \ that specified a callbackUrl is created. The response may be either empty\
        \ or a BXML document. Only the following verbs are valid for conferences:\
        \ PlayAudio, SpeakSentence, StartRecording, StopRecording, PauseRecording,\
        \ ResumeRecording. Audio verbs will be heard by all members of the conference.\
        \ Recordings capture audio from all members who are not muted or on hold,\
        \ as well as any audio verbs that are played into the conference."
      properties:
        eventType:
          description: "The event type, value can be one of the following: answer,\
            \ bridgeComplete, bridgeTargetComplete, conferenceCreated, conferenceRedirect,\
            \ conferenceMemberJoin, conferenceMemberExit, conferenceCompleted, conferenceRecordingAvailable,\
            \ disconnect, dtmf, gather, initiate, machineDetectionComplete, recordingComplete,\
            \ recordingAvailable, redirect, transcriptionAvailable, transferAnswer,\
            \ transferComplete, transferDisconnect."
          example: bridgeComplete
          type: string
        eventTime:
          description: "The approximate UTC date and time when the event was generated\
            \ by the Bandwidth server, in ISO 8601 format. This may not be exactly\
            \ the time of event execution."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        conferenceId:
          description: "The unique, Bandwidth-generated ID of the conference that\
            \ was recorded"
          example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
          type: string
        name:
          description: The user-specified name of the conference that was recorded
          example: my-conference-name
          type: string
        tag:
          description: "(optional) The tag specified on call creation. If no tag was\
            \ specified or it was previously cleared, this field will not be present."
          example: exampleTag
          nullable: true
          type: string
      type: object
    conferenceRedirectCallback:
      description: "The Conference Redirect event is fired whenever an existing conference\
        \ is modified via a POST request made to the /conferences/{conferenceId} endpoint.\
        \ The response may be either empty or a BXML document. Only the following\
        \ verbs are valid for conferences: PlayAudio, SpeakSentence, StartRecording,\
        \ StopRecording, PauseRecording, ResumeRecording. Audio verbs will be heard\
        \ by all members of the conference. Recordings capture audio from all members\
        \ who are not muted or on hold, as well as any audio verbs that are played\
        \ into the conference."
      properties:
        eventType:
          description: "The event type, value can be one of the following: answer,\
            \ bridgeComplete, bridgeTargetComplete, conferenceCreated, conferenceRedirect,\
            \ conferenceMemberJoin, conferenceMemberExit, conferenceCompleted, conferenceRecordingAvailable,\
            \ disconnect, dtmf, gather, initiate, machineDetectionComplete, recordingComplete,\
            \ recordingAvailable, redirect, transcriptionAvailable, transferAnswer,\
            \ transferComplete, transferDisconnect."
          example: bridgeComplete
          type: string
        eventTime:
          description: "The approximate UTC date and time when the event was generated\
            \ by the Bandwidth server, in ISO 8601 format. This may not be exactly\
            \ the time of event execution."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        conferenceId:
          description: "The unique, Bandwidth-generated ID of the conference that\
            \ was recorded"
          example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
          type: string
        name:
          description: The user-specified name of the conference that was recorded
          example: my-conference-name
          type: string
        tag:
          description: "(optional) The tag specified on call creation. If no tag was\
            \ specified or it was previously cleared, this field will not be present."
          example: exampleTag
          nullable: true
          type: string
      type: object
    conferenceMemberJoinCallback:
      description: "The Conference Member Join event is fired whenever a caller joins\
        \ a conference that specified a callbackUrl. The response may be either empty\
        \ or a BXML document. Only the following verbs are valid for conferences:\
        \ PlayAudio, SpeakSentence, StartRecording, StopRecording, PauseRecording,\
        \ ResumeRecording. Audio verbs will be heard by all members of the conference.\
        \ Recordings capture audio from all members who are not muted or on hold,\
        \ as well as any audio verbs that are played into the conference."
      properties:
        eventType:
          description: "The event type, value can be one of the following: answer,\
            \ bridgeComplete, bridgeTargetComplete, conferenceCreated, conferenceRedirect,\
            \ conferenceMemberJoin, conferenceMemberExit, conferenceCompleted, conferenceRecordingAvailable,\
            \ disconnect, dtmf, gather, initiate, machineDetectionComplete, recordingComplete,\
            \ recordingAvailable, redirect, transcriptionAvailable, transferAnswer,\
            \ transferComplete, transferDisconnect."
          example: bridgeComplete
          type: string
        eventTime:
          description: "The approximate UTC date and time when the event was generated\
            \ by the Bandwidth server, in ISO 8601 format. This may not be exactly\
            \ the time of event execution."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        conferenceId:
          description: "The unique, Bandwidth-generated ID of the conference that\
            \ was recorded"
          example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
          type: string
        name:
          description: The user-specified name of the conference that was recorded
          example: my-conference-name
          type: string
        from:
          description: The provided identifier of the caller. Must be a phone number
            in E.164 format (e.g. +15555555555).
          example: "+15555555555"
          type: string
        to:
          description: "The phone number that received the call, in E.164 format (e.g.\
            \ +15555555555)."
          example: "+15555555555"
          type: string
        callId:
          description: The call id associated with the event.
          example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          type: string
        tag:
          description: "(optional) The tag specified on call creation. If no tag was\
            \ specified or it was previously cleared, this field will not be present."
          example: exampleTag
          nullable: true
          type: string
      type: object
    conferenceMemberExitCallback:
      description: "The Conference Member Exit event is fired whenever a caller exits\
        \ a conference that specified a callbackUrl. The response may be either empty\
        \ or a BXML document. Only the following verbs are valid for conferences:\
        \ PlayAudio, SpeakSentence, StartRecording, StopRecording, PauseRecording,\
        \ ResumeRecording. Audio verbs will be heard by all members of the conference.\
        \ Recordings capture audio from all members who are not muted or on hold,\
        \ as well as any audio verbs that are played into the conference."
      properties:
        eventType:
          description: "The event type, value can be one of the following: answer,\
            \ bridgeComplete, bridgeTargetComplete, conferenceCreated, conferenceRedirect,\
            \ conferenceMemberJoin, conferenceMemberExit, conferenceCompleted, conferenceRecordingAvailable,\
            \ disconnect, dtmf, gather, initiate, machineDetectionComplete, recordingComplete,\
            \ recordingAvailable, redirect, transcriptionAvailable, transferAnswer,\
            \ transferComplete, transferDisconnect."
          example: bridgeComplete
          type: string
        eventTime:
          description: "The approximate UTC date and time when the event was generated\
            \ by the Bandwidth server, in ISO 8601 format. This may not be exactly\
            \ the time of event execution."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        conferenceId:
          description: "The unique, Bandwidth-generated ID of the conference that\
            \ was recorded"
          example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
          type: string
        name:
          description: The user-specified name of the conference that was recorded
          example: my-conference-name
          type: string
        from:
          description: The provided identifier of the caller. Must be a phone number
            in E.164 format (e.g. +15555555555).
          example: "+15555555555"
          type: string
        to:
          description: "The phone number that received the call, in E.164 format (e.g.\
            \ +15555555555)."
          example: "+15555555555"
          type: string
        callId:
          description: The call id associated with the event.
          example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          type: string
        tag:
          description: "(optional) The tag specified on call creation. If no tag was\
            \ specified or it was previously cleared, this field will not be present."
          example: exampleTag
          nullable: true
          type: string
      type: object
    conferenceCompletedCallback:
      description: The Conference Completed event is fired when the last member leaves
        the conference. The response to this event may not contain BXML.
      properties:
        eventType:
          description: "The event type, value can be one of the following: answer,\
            \ bridgeComplete, bridgeTargetComplete, conferenceCreated, conferenceRedirect,\
            \ conferenceMemberJoin, conferenceMemberExit, conferenceCompleted, conferenceRecordingAvailable,\
            \ disconnect, dtmf, gather, initiate, machineDetectionComplete, recordingComplete,\
            \ recordingAvailable, redirect, transcriptionAvailable, transferAnswer,\
            \ transferComplete, transferDisconnect."
          example: bridgeComplete
          type: string
        eventTime:
          description: "The approximate UTC date and time when the event was generated\
            \ by the Bandwidth server, in ISO 8601 format. This may not be exactly\
            \ the time of event execution."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        conferenceId:
          description: "The unique, Bandwidth-generated ID of the conference that\
            \ was recorded"
          example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
          type: string
        name:
          description: The user-specified name of the conference that was recorded
          example: my-conference-name
          type: string
        tag:
          description: "(optional) The tag specified on call creation. If no tag was\
            \ specified or it was previously cleared, this field will not be present."
          example: exampleTag
          nullable: true
          type: string
      type: object
    conferenceRecordingAvailableCallback:
      description: The Conference Recording Available event is sent after a conference
        recording has been processed. It indicates that the recording is available
        for download.
      properties:
        eventType:
          description: "The event type, value can be one of the following: answer,\
            \ bridgeComplete, bridgeTargetComplete, conferenceCreated, conferenceRedirect,\
            \ conferenceMemberJoin, conferenceMemberExit, conferenceCompleted, conferenceRecordingAvailable,\
            \ disconnect, dtmf, gather, initiate, machineDetectionComplete, recordingComplete,\
            \ recordingAvailable, redirect, transcriptionAvailable, transferAnswer,\
            \ transferComplete, transferDisconnect."
          example: bridgeComplete
          type: string
        eventTime:
          description: "The approximate UTC date and time when the event was generated\
            \ by the Bandwidth server, in ISO 8601 format. This may not be exactly\
            \ the time of event execution."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        conferenceId:
          description: "The unique, Bandwidth-generated ID of the conference that\
            \ was recorded"
          example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
          type: string
        name:
          description: The user-specified name of the conference that was recorded
          example: my-conference-name
          type: string
        accountId:
          description: The user account associated with the call.
          example: "9900000"
          type: string
        recordingId:
          description: The unique ID of this recording
          example: r-fbe05094-9fd2afe9-bf5b-4c68-820a-41a01c1c5833
          type: string
        channels:
          description: Always `1` for conference recordings; multi-channel recordings
            are not supported on conferences.
          example: 1
          format: int32
          type: integer
        startTime:
          description: "Time the call was started, in ISO 8601 format."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        endTime:
          description: The time that the recording ended in ISO-8601 format
          example: 2022-06-17T22:20:00Z
          format: date-time
          type: string
        duration:
          description: The duration of the recording in ISO-8601 format
          example: PT13.67S
          type: string
        fileFormat:
          $ref: "#/components/schemas/fileFormatEnum"
        mediaUrl:
          description: The URL that can be used to download the recording. Only present
            if the recording is finished and may be downloaded.
          example: https://voice.bandwidth.com/api/v2/accounts/9900000/conferences/conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9/recordings/r-fbe05094-9fd2afe9-bf5b-4c68-820a-41a01c1c5833/media
          format: uri
          nullable: true
          type: string
        tag:
          description: "(optional) The tag specified on call creation. If no tag was\
            \ specified or it was previously cleared, this field will not be present."
          example: exampleTag
          nullable: true
          type: string
        status:
          description: "The current status of the process. For recording, current\
            \ possible values are 'processing', 'partial', 'complete', 'deleted',\
            \ and 'error'. For transcriptions, current possible values are 'none',\
            \ 'processing', 'available', 'error', 'timeout', 'file-size-too-big',\
            \ and 'file-size-too-small'. Additional states may be added in the future,\
            \ so your application must be tolerant of unknown values."
          example: completed
          type: string
      type: object
    disconnectCallback:
      description: "The Disconnect event is fired when a call ends, for any reason."
      properties:
        eventType:
          description: "The event type, value can be one of the following: answer,\
            \ bridgeComplete, bridgeTargetComplete, conferenceCreated, conferenceRedirect,\
            \ conferenceMemberJoin, conferenceMemberExit, conferenceCompleted, conferenceRecordingAvailable,\
            \ disconnect, dtmf, gather, initiate, machineDetectionComplete, recordingComplete,\
            \ recordingAvailable, redirect, transcriptionAvailable, transferAnswer,\
            \ transferComplete, transferDisconnect."
          example: bridgeComplete
          type: string
        eventTime:
          description: "The approximate UTC date and time when the event was generated\
            \ by the Bandwidth server, in ISO 8601 format. This may not be exactly\
            \ the time of event execution."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        accountId:
          description: The user account associated with the call.
          example: "9900000"
          type: string
        applicationId:
          description: The id of the application associated with the call.
          example: 04e88489-df02-4e34-a0ee-27a91849555f
          type: string
        from:
          description: The provided identifier of the caller. Must be a phone number
            in E.164 format (e.g. +15555555555).
          example: "+15555555555"
          type: string
        to:
          description: "The phone number that received the call, in E.164 format (e.g.\
            \ +15555555555)."
          example: "+15555555555"
          type: string
        callId:
          description: The call id associated with the event.
          example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          type: string
        direction:
          $ref: "#/components/schemas/callDirectionEnum"
        callUrl:
          description: The URL of the call associated with the event.
          example: https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          format: uri
          type: string
        enqueuedTime:
          description: "(optional) If call queueing is enabled and this is an outbound\
            \ call, time the call was queued, in ISO 8601 format."
          example: 2022-06-17T22:20:00Z
          format: date-time
          nullable: true
          type: string
        startTime:
          description: "Time the call was started, in ISO 8601 format."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        answerTime:
          description: "Time the call was answered, in ISO 8601 format."
          example: 2022-06-17T22:20:00Z
          format: date-time
          nullable: true
          type: string
        endTime:
          description: The time that the recording ended in ISO-8601 format
          example: 2022-06-17T22:20:00Z
          format: date-time
          type: string
        cause:
          description: "Reason the call failed - hangup, busy, timeout, cancel, rejected,\
            \ callback-error, invalid-bxml, application-error, account-limit, node-capacity-exceeded,\
            \ error, or unknown."
          example: busy
          type: string
        errorMessage:
          description: Text explaining the reason that caused the call to fail in
            case of errors.
          example: Call c-2a913f94-6a486f3a-3cae-4034-bcc3-f0c9fa77ca2f is already
            bridged with another call
          nullable: true
          type: string
        errorId:
          description: Bandwidth's internal id that references the error event.
          example: 4642074b-7b58-478b-96e4-3a60955c6765
          nullable: true
          type: string
        tag:
          description: "(optional) The tag specified on call creation. If no tag was\
            \ specified or it was previously cleared, this field will not be present."
          example: exampleTag
          nullable: true
          type: string
      type: object
    dtmfCallback:
      description: The DTMF event is sent for every digit detected after a <StartGather>
        verb is executed. You may not respond to this event with BXML.
      properties:
        eventType:
          description: "The event type, value can be one of the following: answer,\
            \ bridgeComplete, bridgeTargetComplete, conferenceCreated, conferenceRedirect,\
            \ conferenceMemberJoin, conferenceMemberExit, conferenceCompleted, conferenceRecordingAvailable,\
            \ disconnect, dtmf, gather, initiate, machineDetectionComplete, recordingComplete,\
            \ recordingAvailable, redirect, transcriptionAvailable, transferAnswer,\
            \ transferComplete, transferDisconnect."
          example: bridgeComplete
          type: string
        eventTime:
          description: "The approximate UTC date and time when the event was generated\
            \ by the Bandwidth server, in ISO 8601 format. This may not be exactly\
            \ the time of event execution."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        accountId:
          description: The user account associated with the call.
          example: "9900000"
          type: string
        applicationId:
          description: The id of the application associated with the call.
          example: 04e88489-df02-4e34-a0ee-27a91849555f
          type: string
        from:
          description: The provided identifier of the caller. Must be a phone number
            in E.164 format (e.g. +15555555555).
          example: "+15555555555"
          type: string
        to:
          description: "The phone number that received the call, in E.164 format (e.g.\
            \ +15555555555)."
          example: "+15555555555"
          type: string
        callId:
          description: The call id associated with the event.
          example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          type: string
        direction:
          $ref: "#/components/schemas/callDirectionEnum"
        digit:
          description: The digit collected in the call.
          example: "2"
          type: string
        callUrl:
          description: The URL of the call associated with the event.
          example: https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          format: uri
          type: string
        enqueuedTime:
          description: "(optional) If call queueing is enabled and this is an outbound\
            \ call, time the call was queued, in ISO 8601 format."
          example: 2022-06-17T22:20:00Z
          format: date-time
          nullable: true
          type: string
        startTime:
          description: "Time the call was started, in ISO 8601 format."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        answerTime:
          description: "Time the call was answered, in ISO 8601 format."
          example: 2022-06-17T22:20:00Z
          format: date-time
          nullable: true
          type: string
        parentCallId:
          description: "(optional) If the event is related to the B leg of a <Transfer>,\
            \ the call id of the original call leg that executed the <Transfer>. Otherwise,\
            \ this field will not be present."
          example: c-95ac8d6e-1a31c52e-b38f-4198-93c1-51633ec68f8d
          type: string
        transferCallerId:
          description: "The phone number used as the from field of the B-leg call,\
            \ in E.164 format (e.g. +15555555555)."
          example: "+15555555555"
          type: string
        transferTo:
          description: "The phone number used as the to field of the B-leg call, in\
            \ E.164 format (e.g. +15555555555)."
          example: "+15555555555"
          type: string
        tag:
          description: "(optional) The tag specified on call creation. If no tag was\
            \ specified or it was previously cleared, this field will not be present."
          example: exampleTag
          nullable: true
          type: string
      type: object
    gatherCallback:
      description: The gather event is sent after a <Gather> verb is executed. Its
        purpose is to report the gathered digits to the calling application.
      properties:
        eventType:
          description: "The event type, value can be one of the following: answer,\
            \ bridgeComplete, bridgeTargetComplete, conferenceCreated, conferenceRedirect,\
            \ conferenceMemberJoin, conferenceMemberExit, conferenceCompleted, conferenceRecordingAvailable,\
            \ disconnect, dtmf, gather, initiate, machineDetectionComplete, recordingComplete,\
            \ recordingAvailable, redirect, transcriptionAvailable, transferAnswer,\
            \ transferComplete, transferDisconnect."
          example: bridgeComplete
          type: string
        eventTime:
          description: "The approximate UTC date and time when the event was generated\
            \ by the Bandwidth server, in ISO 8601 format. This may not be exactly\
            \ the time of event execution."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        accountId:
          description: The user account associated with the call.
          example: "9900000"
          type: string
        applicationId:
          description: The id of the application associated with the call.
          example: 04e88489-df02-4e34-a0ee-27a91849555f
          type: string
        from:
          description: The provided identifier of the caller. Must be a phone number
            in E.164 format (e.g. +15555555555).
          example: "+15555555555"
          type: string
        to:
          description: "The phone number that received the call, in E.164 format (e.g.\
            \ +15555555555)."
          example: "+15555555555"
          type: string
        direction:
          $ref: "#/components/schemas/callDirectionEnum"
        callId:
          description: The call id associated with the event.
          example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          type: string
        digits:
          description: "(optional) The digits, letters, and/or symbols entered by\
            \ the user. The string is empty if a timeout occurred before any buttons\
            \ were pressed."
          example: "123"
          type: string
        callUrl:
          description: The URL of the call associated with the event.
          example: https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          format: uri
          type: string
        enqueuedTime:
          description: "(optional) If call queueing is enabled and this is an outbound\
            \ call, time the call was queued, in ISO 8601 format."
          example: 2022-06-17T22:20:00Z
          format: date-time
          nullable: true
          type: string
        startTime:
          description: "Time the call was started, in ISO 8601 format."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        answerTime:
          description: "Time the call was answered, in ISO 8601 format."
          example: 2022-06-17T22:20:00Z
          format: date-time
          nullable: true
          type: string
        parentCallId:
          description: "(optional) If the event is related to the B leg of a <Transfer>,\
            \ the call id of the original call leg that executed the <Transfer>. Otherwise,\
            \ this field will not be present."
          example: c-95ac8d6e-1a31c52e-b38f-4198-93c1-51633ec68f8d
          type: string
        terminatingDigit:
          description: (optional) The digit the user pressed to end the gather. Empty
            string value if no terminating digit was pressed.
          example: "#"
          type: string
        transferCallerId:
          description: "The phone number used as the from field of the B-leg call,\
            \ in E.164 format (e.g. +15555555555)."
          example: "+15555555555"
          type: string
        transferTo:
          description: "The phone number used as the to field of the B-leg call, in\
            \ E.164 format (e.g. +15555555555)."
          example: "+15555555555"
          type: string
        tag:
          description: "(optional) The tag specified on call creation. If no tag was\
            \ specified or it was previously cleared, this field will not be present."
          example: exampleTag
          nullable: true
          type: string
      type: object
    initiateCallback:
      description: The Initiate event is fired when an inbound call is received for
        a Telephone Number on your Account. It is sent to the URL specified in the
        application associated with the location (sip-peer) that the called telephone
        number belongs to.
      properties:
        eventType:
          description: "The event type, value can be one of the following: answer,\
            \ bridgeComplete, bridgeTargetComplete, conferenceCreated, conferenceRedirect,\
            \ conferenceMemberJoin, conferenceMemberExit, conferenceCompleted, conferenceRecordingAvailable,\
            \ disconnect, dtmf, gather, initiate, machineDetectionComplete, recordingComplete,\
            \ recordingAvailable, redirect, transcriptionAvailable, transferAnswer,\
            \ transferComplete, transferDisconnect."
          example: bridgeComplete
          type: string
        eventTime:
          description: "The approximate UTC date and time when the event was generated\
            \ by the Bandwidth server, in ISO 8601 format. This may not be exactly\
            \ the time of event execution."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        accountId:
          description: The user account associated with the call.
          example: "9900000"
          type: string
        applicationId:
          description: The id of the application associated with the call.
          example: 04e88489-df02-4e34-a0ee-27a91849555f
          type: string
        from:
          description: The provided identifier of the caller. Must be a phone number
            in E.164 format (e.g. +15555555555).
          example: "+15555555555"
          type: string
        to:
          description: "The phone number that received the call, in E.164 format (e.g.\
            \ +15555555555)."
          example: "+15555555555"
          type: string
        direction:
          $ref: "#/components/schemas/callDirectionEnum"
        callId:
          description: The call id associated with the event.
          example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          type: string
        callUrl:
          description: The URL of the call associated with the event.
          example: https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          format: uri
          type: string
        startTime:
          description: "Time the call was started, in ISO 8601 format."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        diversion:
          $ref: "#/components/schemas/diversion"
        stirShaken:
          $ref: "#/components/schemas/stirShaken"
        uui:
          description: "The value of the `User-To-User` header to send within the\
            \ initial `INVITE`. Must include the encoding parameter as specified in\
            \ RFC 7433. Only `base64`, `jwt` and `hex` encoding are currently allowed.\
            \ This value, including the encoding specifier, may not exceed 256 characters."
          example: bXktdXVp
          maxLength: 256
          type: string
      type: object
    machineDetectionCompleteCallback:
      description: "This event is sent to the url informed when requesting a machine\
        \ detection operation. It contains the machine detection operation result,\
        \ which can be: human, answering-machine, silence, timeout, error. This event\
        \ is not sent when sync answering machine detection mode is chosen."
      properties:
        eventType:
          description: "The event type, value can be one of the following: answer,\
            \ bridgeComplete, bridgeTargetComplete, conferenceCreated, conferenceRedirect,\
            \ conferenceMemberJoin, conferenceMemberExit, conferenceCompleted, conferenceRecordingAvailable,\
            \ disconnect, dtmf, gather, initiate, machineDetectionComplete, recordingComplete,\
            \ recordingAvailable, redirect, transcriptionAvailable, transferAnswer,\
            \ transferComplete, transferDisconnect."
          example: bridgeComplete
          type: string
        eventTime:
          description: "The approximate UTC date and time when the event was generated\
            \ by the Bandwidth server, in ISO 8601 format. This may not be exactly\
            \ the time of event execution."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        accountId:
          description: The user account associated with the call.
          example: "9900000"
          type: string
        applicationId:
          description: The id of the application associated with the call.
          example: 04e88489-df02-4e34-a0ee-27a91849555f
          type: string
        from:
          description: The provided identifier of the caller. Must be a phone number
            in E.164 format (e.g. +15555555555).
          example: "+15555555555"
          type: string
        to:
          description: "The phone number that received the call, in E.164 format (e.g.\
            \ +15555555555)."
          example: "+15555555555"
          type: string
        direction:
          $ref: "#/components/schemas/callDirectionEnum"
        callId:
          description: The call id associated with the event.
          example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          type: string
        callUrl:
          description: The URL of the call associated with the event.
          example: https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          format: uri
          type: string
        enqueuedTime:
          description: "(optional) If call queueing is enabled and this is an outbound\
            \ call, time the call was queued, in ISO 8601 format."
          example: 2022-06-17T22:20:00Z
          format: date-time
          nullable: true
          type: string
        startTime:
          description: "Time the call was started, in ISO 8601 format."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        answerTime:
          description: "Time the call was answered, in ISO 8601 format."
          example: 2022-06-17T22:20:00Z
          format: date-time
          nullable: true
          type: string
        tag:
          description: "(optional) The tag specified on call creation. If no tag was\
            \ specified or it was previously cleared, this field will not be present."
          example: exampleTag
          nullable: true
          type: string
        machineDetectionResult:
          $ref: "#/components/schemas/machineDetectionResult"
      type: object
    recordingCompleteCallback:
      description: "The Record Complete event is sent after a <Record> verb has executed\
        \ if the call is still active. The BXML returned by this callback is executed\
        \ next. When the recording is available for download, a Recording Available\
        \ event will be sent."
      properties:
        eventType:
          description: "The event type, value can be one of the following: answer,\
            \ bridgeComplete, bridgeTargetComplete, conferenceCreated, conferenceRedirect,\
            \ conferenceMemberJoin, conferenceMemberExit, conferenceCompleted, conferenceRecordingAvailable,\
            \ disconnect, dtmf, gather, initiate, machineDetectionComplete, recordingComplete,\
            \ recordingAvailable, redirect, transcriptionAvailable, transferAnswer,\
            \ transferComplete, transferDisconnect."
          example: bridgeComplete
          type: string
        eventTime:
          description: "The approximate UTC date and time when the event was generated\
            \ by the Bandwidth server, in ISO 8601 format. This may not be exactly\
            \ the time of event execution."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        accountId:
          description: The user account associated with the call.
          example: "9900000"
          type: string
        applicationId:
          description: The id of the application associated with the call.
          example: 04e88489-df02-4e34-a0ee-27a91849555f
          type: string
        from:
          description: The provided identifier of the caller. Must be a phone number
            in E.164 format (e.g. +15555555555).
          example: "+15555555555"
          type: string
        to:
          description: "The phone number that received the call, in E.164 format (e.g.\
            \ +15555555555)."
          example: "+15555555555"
          type: string
        direction:
          $ref: "#/components/schemas/callDirectionEnum"
        callId:
          description: The call id associated with the event.
          example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          type: string
        callUrl:
          description: The URL of the call associated with the event.
          example: https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          format: uri
          type: string
        parentCallId:
          description: "(optional) If the event is related to the B leg of a <Transfer>,\
            \ the call id of the original call leg that executed the <Transfer>. Otherwise,\
            \ this field will not be present."
          example: c-95ac8d6e-1a31c52e-b38f-4198-93c1-51633ec68f8d
          type: string
        recordingId:
          description: The unique ID of this recording
          example: r-fbe05094-9fd2afe9-bf5b-4c68-820a-41a01c1c5833
          type: string
        mediaUrl:
          description: The URL that can be used to download the recording. Only present
            if the recording is finished and may be downloaded.
          example: https://voice.bandwidth.com/api/v2/accounts/9900000/conferences/conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9/recordings/r-fbe05094-9fd2afe9-bf5b-4c68-820a-41a01c1c5833/media
          format: uri
          nullable: true
          type: string
        enqueuedTime:
          description: "(optional) If call queueing is enabled and this is an outbound\
            \ call, time the call was queued, in ISO 8601 format."
          example: 2022-06-17T22:20:00Z
          format: date-time
          nullable: true
          type: string
        startTime:
          description: "Time the call was started, in ISO 8601 format."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        answerTime:
          description: "Time the call was answered, in ISO 8601 format."
          example: 2022-06-17T22:20:00Z
          format: date-time
          nullable: true
          type: string
        endTime:
          description: The time that the recording ended in ISO-8601 format
          example: 2022-06-17T22:20:00Z
          format: date-time
          type: string
        duration:
          description: The duration of the recording in ISO-8601 format
          example: PT13.67S
          type: string
        fileFormat:
          $ref: "#/components/schemas/fileFormatEnum"
        channels:
          description: Always `1` for conference recordings; multi-channel recordings
            are not supported on conferences.
          example: 1
          format: int32
          type: integer
        tag:
          description: "(optional) The tag specified on call creation. If no tag was\
            \ specified or it was previously cleared, this field will not be present."
          example: exampleTag
          nullable: true
          type: string
        transferCallerId:
          description: "The phone number used as the from field of the B-leg call,\
            \ in E.164 format (e.g. +15555555555)."
          example: "+15555555555"
          type: string
        transferTo:
          description: "The phone number used as the to field of the B-leg call, in\
            \ E.164 format (e.g. +15555555555)."
          example: "+15555555555"
          type: string
      type: object
    recordingAvailableCallback:
      description: The Recording Available event is sent after a recording has been
        processed. It indicates that the recording is available for download.
      properties:
        eventType:
          description: "The event type, value can be one of the following: answer,\
            \ bridgeComplete, bridgeTargetComplete, conferenceCreated, conferenceRedirect,\
            \ conferenceMemberJoin, conferenceMemberExit, conferenceCompleted, conferenceRecordingAvailable,\
            \ disconnect, dtmf, gather, initiate, machineDetectionComplete, recordingComplete,\
            \ recordingAvailable, redirect, transcriptionAvailable, transferAnswer,\
            \ transferComplete, transferDisconnect."
          example: bridgeComplete
          type: string
        eventTime:
          description: "The approximate UTC date and time when the event was generated\
            \ by the Bandwidth server, in ISO 8601 format. This may not be exactly\
            \ the time of event execution."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        accountId:
          description: The user account associated with the call.
          example: "9900000"
          type: string
        applicationId:
          description: The id of the application associated with the call.
          example: 04e88489-df02-4e34-a0ee-27a91849555f
          type: string
        from:
          description: The provided identifier of the caller. Must be a phone number
            in E.164 format (e.g. +15555555555).
          example: "+15555555555"
          type: string
        to:
          description: "The phone number that received the call, in E.164 format (e.g.\
            \ +15555555555)."
          example: "+15555555555"
          type: string
        direction:
          $ref: "#/components/schemas/callDirectionEnum"
        callId:
          description: The call id associated with the event.
          example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          type: string
        callUrl:
          description: The URL of the call associated with the event.
          example: https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          format: uri
          type: string
        parentCallId:
          description: "(optional) If the event is related to the B leg of a <Transfer>,\
            \ the call id of the original call leg that executed the <Transfer>. Otherwise,\
            \ this field will not be present."
          example: c-95ac8d6e-1a31c52e-b38f-4198-93c1-51633ec68f8d
          type: string
        recordingId:
          description: The unique ID of this recording
          example: r-fbe05094-9fd2afe9-bf5b-4c68-820a-41a01c1c5833
          type: string
        mediaUrl:
          description: The URL that can be used to download the recording. Only present
            if the recording is finished and may be downloaded.
          example: https://voice.bandwidth.com/api/v2/accounts/9900000/conferences/conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9/recordings/r-fbe05094-9fd2afe9-bf5b-4c68-820a-41a01c1c5833/media
          format: uri
          nullable: true
          type: string
        enqueuedTime:
          description: "(optional) If call queueing is enabled and this is an outbound\
            \ call, time the call was queued, in ISO 8601 format."
          example: 2022-06-17T22:20:00Z
          format: date-time
          nullable: true
          type: string
        startTime:
          description: "Time the call was started, in ISO 8601 format."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        endTime:
          description: The time that the recording ended in ISO-8601 format
          example: 2022-06-17T22:20:00Z
          format: date-time
          type: string
        duration:
          description: The duration of the recording in ISO-8601 format
          example: PT13.67S
          type: string
        fileFormat:
          $ref: "#/components/schemas/fileFormatEnum"
        channels:
          description: Always `1` for conference recordings; multi-channel recordings
            are not supported on conferences.
          example: 1
          format: int32
          type: integer
        tag:
          description: "(optional) The tag specified on call creation. If no tag was\
            \ specified or it was previously cleared, this field will not be present."
          example: exampleTag
          nullable: true
          type: string
        status:
          description: "The current status of the process. For recording, current\
            \ possible values are 'processing', 'partial', 'complete', 'deleted',\
            \ and 'error'. For transcriptions, current possible values are 'none',\
            \ 'processing', 'available', 'error', 'timeout', 'file-size-too-big',\
            \ and 'file-size-too-small'. Additional states may be added in the future,\
            \ so your application must be tolerant of unknown values."
          example: completed
          type: string
        transferCallerId:
          description: "The phone number used as the from field of the B-leg call,\
            \ in E.164 format (e.g. +15555555555)."
          example: "+15555555555"
          type: string
        transferTo:
          description: "The phone number used as the to field of the B-leg call, in\
            \ E.164 format (e.g. +15555555555)."
          example: "+15555555555"
          type: string
      type: object
    redirectCallback:
      description: The Redirect event is fired when a <Redirect> verb is executed.
        Its purpose is to get the next set of verbs from the calling application.
      properties:
        eventType:
          description: "The event type, value can be one of the following: answer,\
            \ bridgeComplete, bridgeTargetComplete, conferenceCreated, conferenceRedirect,\
            \ conferenceMemberJoin, conferenceMemberExit, conferenceCompleted, conferenceRecordingAvailable,\
            \ disconnect, dtmf, gather, initiate, machineDetectionComplete, recordingComplete,\
            \ recordingAvailable, redirect, transcriptionAvailable, transferAnswer,\
            \ transferComplete, transferDisconnect."
          example: bridgeComplete
          type: string
        eventTime:
          description: "The approximate UTC date and time when the event was generated\
            \ by the Bandwidth server, in ISO 8601 format. This may not be exactly\
            \ the time of event execution."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        accountId:
          description: The user account associated with the call.
          example: "9900000"
          type: string
        applicationId:
          description: The id of the application associated with the call.
          example: 04e88489-df02-4e34-a0ee-27a91849555f
          type: string
        from:
          description: The provided identifier of the caller. Must be a phone number
            in E.164 format (e.g. +15555555555).
          example: "+15555555555"
          type: string
        to:
          description: "The phone number that received the call, in E.164 format (e.g.\
            \ +15555555555)."
          example: "+15555555555"
          type: string
        direction:
          $ref: "#/components/schemas/callDirectionEnum"
        callId:
          description: The call id associated with the event.
          example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          type: string
        callUrl:
          description: The URL of the call associated with the event.
          example: https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          format: uri
          type: string
        parentCallId:
          description: "(optional) If the event is related to the B leg of a <Transfer>,\
            \ the call id of the original call leg that executed the <Transfer>. Otherwise,\
            \ this field will not be present."
          example: c-95ac8d6e-1a31c52e-b38f-4198-93c1-51633ec68f8d
          type: string
        enqueuedTime:
          description: "(optional) If call queueing is enabled and this is an outbound\
            \ call, time the call was queued, in ISO 8601 format."
          example: 2022-06-17T22:20:00Z
          format: date-time
          nullable: true
          type: string
        startTime:
          description: "Time the call was started, in ISO 8601 format."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        answerTime:
          description: "Time the call was answered, in ISO 8601 format."
          example: 2022-06-17T22:20:00Z
          format: date-time
          nullable: true
          type: string
        tag:
          description: "(optional) The tag specified on call creation. If no tag was\
            \ specified or it was previously cleared, this field will not be present."
          example: exampleTag
          nullable: true
          type: string
        transferCallerId:
          description: "The phone number used as the from field of the B-leg call,\
            \ in E.164 format (e.g. +15555555555)."
          example: "+15555555555"
          type: string
        transferTo:
          description: "The phone number used as the to field of the B-leg call, in\
            \ E.164 format (e.g. +15555555555)."
          example: "+15555555555"
          type: string
      type: object
    transcriptionAvailableCallback:
      description: The Transcription Available event is sent when the recording transcription
        is available to be downloaded.
      properties:
        eventType:
          description: "The event type, value can be one of the following: answer,\
            \ bridgeComplete, bridgeTargetComplete, conferenceCreated, conferenceRedirect,\
            \ conferenceMemberJoin, conferenceMemberExit, conferenceCompleted, conferenceRecordingAvailable,\
            \ disconnect, dtmf, gather, initiate, machineDetectionComplete, recordingComplete,\
            \ recordingAvailable, redirect, transcriptionAvailable, transferAnswer,\
            \ transferComplete, transferDisconnect."
          example: bridgeComplete
          type: string
        eventTime:
          description: "The approximate UTC date and time when the event was generated\
            \ by the Bandwidth server, in ISO 8601 format. This may not be exactly\
            \ the time of event execution."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        accountId:
          description: The user account associated with the call.
          example: "9900000"
          type: string
        applicationId:
          description: The id of the application associated with the call.
          example: 04e88489-df02-4e34-a0ee-27a91849555f
          type: string
        from:
          description: The provided identifier of the caller. Must be a phone number
            in E.164 format (e.g. +15555555555).
          example: "+15555555555"
          type: string
        to:
          description: "The phone number that received the call, in E.164 format (e.g.\
            \ +15555555555)."
          example: "+15555555555"
          type: string
        direction:
          $ref: "#/components/schemas/callDirectionEnum"
        callId:
          description: The call id associated with the event.
          example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          type: string
        callUrl:
          description: The URL of the call associated with the event.
          example: https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          format: uri
          type: string
        mediaUrl:
          description: The URL that can be used to download the recording. Only present
            if the recording is finished and may be downloaded.
          example: https://voice.bandwidth.com/api/v2/accounts/9900000/conferences/conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9/recordings/r-fbe05094-9fd2afe9-bf5b-4c68-820a-41a01c1c5833/media
          format: uri
          nullable: true
          type: string
        parentCallId:
          description: "(optional) If the event is related to the B leg of a <Transfer>,\
            \ the call id of the original call leg that executed the <Transfer>. Otherwise,\
            \ this field will not be present."
          example: c-95ac8d6e-1a31c52e-b38f-4198-93c1-51633ec68f8d
          type: string
        recordingId:
          description: The unique ID of this recording
          example: r-fbe05094-9fd2afe9-bf5b-4c68-820a-41a01c1c5833
          type: string
        enqueuedTime:
          description: "(optional) If call queueing is enabled and this is an outbound\
            \ call, time the call was queued, in ISO 8601 format."
          example: 2022-06-17T22:20:00Z
          format: date-time
          nullable: true
          type: string
        startTime:
          description: "Time the call was started, in ISO 8601 format."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        endTime:
          description: The time that the recording ended in ISO-8601 format
          example: 2022-06-17T22:20:00Z
          format: date-time
          type: string
        duration:
          description: The duration of the recording in ISO-8601 format
          example: PT13.67S
          type: string
        fileFormat:
          $ref: "#/components/schemas/fileFormatEnum"
        tag:
          description: "(optional) The tag specified on call creation. If no tag was\
            \ specified or it was previously cleared, this field will not be present."
          example: exampleTag
          nullable: true
          type: string
        transcription:
          $ref: "#/components/schemas/transcription"
        transferCallerId:
          description: "The phone number used as the from field of the B-leg call,\
            \ in E.164 format (e.g. +15555555555)."
          example: "+15555555555"
          type: string
        transferTo:
          description: "The phone number used as the to field of the B-leg call, in\
            \ E.164 format (e.g. +15555555555)."
          example: "+15555555555"
          type: string
      type: object
    transferAnswerCallback:
      description: "When processing a <Transfer> verb, this event is sent when a called\
        \ party (B-leg) answers. The event is sent to the endpoint specified in the\
        \ transferAnswerUrl attribute of the <PhoneNumber> tag that answered. BXML\
        \ returned by this callback will be executed for the called party only. After\
        \ all BXML has been executed, the called party will be bridged to the original\
        \ call. Most BXML verbs are allowed in response to a transferAnswer event,\
        \ but some are not allowed."
      properties:
        eventType:
          description: "The event type, value can be one of the following: answer,\
            \ bridgeComplete, bridgeTargetComplete, conferenceCreated, conferenceRedirect,\
            \ conferenceMemberJoin, conferenceMemberExit, conferenceCompleted, conferenceRecordingAvailable,\
            \ disconnect, dtmf, gather, initiate, machineDetectionComplete, recordingComplete,\
            \ recordingAvailable, redirect, transcriptionAvailable, transferAnswer,\
            \ transferComplete, transferDisconnect."
          example: bridgeComplete
          type: string
        eventTime:
          description: "The approximate UTC date and time when the event was generated\
            \ by the Bandwidth server, in ISO 8601 format. This may not be exactly\
            \ the time of event execution."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        accountId:
          description: The user account associated with the call.
          example: "9900000"
          type: string
        applicationId:
          description: The id of the application associated with the call.
          example: 04e88489-df02-4e34-a0ee-27a91849555f
          type: string
        from:
          description: The provided identifier of the caller. Must be a phone number
            in E.164 format (e.g. +15555555555).
          example: "+15555555555"
          type: string
        to:
          description: "The phone number that received the call, in E.164 format (e.g.\
            \ +15555555555)."
          example: "+15555555555"
          type: string
        direction:
          $ref: "#/components/schemas/callDirectionEnum"
        callId:
          description: The call id associated with the event.
          example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          type: string
        callUrl:
          description: The URL of the call associated with the event.
          example: https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          format: uri
          type: string
        enqueuedTime:
          description: "(optional) If call queueing is enabled and this is an outbound\
            \ call, time the call was queued, in ISO 8601 format."
          example: 2022-06-17T22:20:00Z
          format: date-time
          nullable: true
          type: string
        startTime:
          description: "Time the call was started, in ISO 8601 format."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        answerTime:
          description: "Time the call was answered, in ISO 8601 format."
          example: 2022-06-17T22:20:00Z
          format: date-time
          nullable: true
          type: string
        tag:
          description: "(optional) The tag specified on call creation. If no tag was\
            \ specified or it was previously cleared, this field will not be present."
          example: exampleTag
          nullable: true
          type: string
        transferCallerId:
          description: "The phone number used as the from field of the B-leg call,\
            \ in E.164 format (e.g. +15555555555)."
          example: "+15555555555"
          type: string
        transferTo:
          description: "The phone number used as the to field of the B-leg call, in\
            \ E.164 format (e.g. +15555555555)."
          example: "+15555555555"
          type: string
      type: object
    transferCompleteCallback:
      description: "This event is sent to the transferCompleteUrl of the A-leg's <Transfer>\
        \ verb when the transferred call (B-leg) completes. In a simultaneous ringing\
        \ scenario, only one B-leg succeeds and this event corresponds to that successful\
        \ leg. If none of the calls were answered, the transferComplete event corresponds\
        \ to one of the legs."
      properties:
        eventType:
          description: "The event type, value can be one of the following: answer,\
            \ bridgeComplete, bridgeTargetComplete, conferenceCreated, conferenceRedirect,\
            \ conferenceMemberJoin, conferenceMemberExit, conferenceCompleted, conferenceRecordingAvailable,\
            \ disconnect, dtmf, gather, initiate, machineDetectionComplete, recordingComplete,\
            \ recordingAvailable, redirect, transcriptionAvailable, transferAnswer,\
            \ transferComplete, transferDisconnect."
          example: bridgeComplete
          type: string
        eventTime:
          description: "The approximate UTC date and time when the event was generated\
            \ by the Bandwidth server, in ISO 8601 format. This may not be exactly\
            \ the time of event execution."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        accountId:
          description: The user account associated with the call.
          example: "9900000"
          type: string
        applicationId:
          description: The id of the application associated with the call.
          example: 04e88489-df02-4e34-a0ee-27a91849555f
          type: string
        from:
          description: The provided identifier of the caller. Must be a phone number
            in E.164 format (e.g. +15555555555).
          example: "+15555555555"
          type: string
        to:
          description: "The phone number that received the call, in E.164 format (e.g.\
            \ +15555555555)."
          example: "+15555555555"
          type: string
        direction:
          $ref: "#/components/schemas/callDirectionEnum"
        callId:
          description: The call id associated with the event.
          example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          type: string
        callUrl:
          description: The URL of the call associated with the event.
          example: https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          format: uri
          type: string
        enqueuedTime:
          description: "(optional) If call queueing is enabled and this is an outbound\
            \ call, time the call was queued, in ISO 8601 format."
          example: 2022-06-17T22:20:00Z
          format: date-time
          nullable: true
          type: string
        startTime:
          description: "Time the call was started, in ISO 8601 format."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        answerTime:
          description: "Time the call was answered, in ISO 8601 format."
          example: 2022-06-17T22:20:00Z
          format: date-time
          nullable: true
          type: string
        tag:
          description: "(optional) The tag specified on call creation. If no tag was\
            \ specified or it was previously cleared, this field will not be present."
          example: exampleTag
          nullable: true
          type: string
        transferCallerId:
          description: "The phone number used as the from field of the B-leg call,\
            \ in E.164 format (e.g. +15555555555)."
          example: "+15555555555"
          type: string
        transferTo:
          description: "The phone number used as the to field of the B-leg call, in\
            \ E.164 format (e.g. +15555555555)."
          example: "+15555555555"
          type: string
        cause:
          description: "Reason the call failed - hangup, busy, timeout, cancel, rejected,\
            \ callback-error, invalid-bxml, application-error, account-limit, node-capacity-exceeded,\
            \ error, or unknown."
          example: busy
          type: string
        errorMessage:
          description: Text explaining the reason that caused the call to fail in
            case of errors.
          example: Call c-2a913f94-6a486f3a-3cae-4034-bcc3-f0c9fa77ca2f is already
            bridged with another call
          nullable: true
          type: string
        errorId:
          description: Bandwidth's internal id that references the error event.
          example: 4642074b-7b58-478b-96e4-3a60955c6765
          nullable: true
          type: string
      type: object
    transferDisconnectCallback:
      description: "This event is sent to the transferDisconnectUrl of each <PhoneNumber>\
        \ tag when its respective call leg ends for any reason. The event is sent\
        \ in the normal case, when the transferred leg is answered and later hung\
        \ up, but is also sent if the new leg was never answered in the first place,\
        \ if it was rejected, and if the original call leg hung up before the transferred\
        \ leg."
      properties:
        eventType:
          description: "The event type, value can be one of the following: answer,\
            \ bridgeComplete, bridgeTargetComplete, conferenceCreated, conferenceRedirect,\
            \ conferenceMemberJoin, conferenceMemberExit, conferenceCompleted, conferenceRecordingAvailable,\
            \ disconnect, dtmf, gather, initiate, machineDetectionComplete, recordingComplete,\
            \ recordingAvailable, redirect, transcriptionAvailable, transferAnswer,\
            \ transferComplete, transferDisconnect."
          example: bridgeComplete
          type: string
        eventTime:
          description: "The approximate UTC date and time when the event was generated\
            \ by the Bandwidth server, in ISO 8601 format. This may not be exactly\
            \ the time of event execution."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        accountId:
          description: The user account associated with the call.
          example: "9900000"
          type: string
        applicationId:
          description: The id of the application associated with the call.
          example: 04e88489-df02-4e34-a0ee-27a91849555f
          type: string
        from:
          description: The provided identifier of the caller. Must be a phone number
            in E.164 format (e.g. +15555555555).
          example: "+15555555555"
          type: string
        to:
          description: "The phone number that received the call, in E.164 format (e.g.\
            \ +15555555555)."
          example: "+15555555555"
          type: string
        direction:
          $ref: "#/components/schemas/callDirectionEnum"
        callId:
          description: The call id associated with the event.
          example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          type: string
        callUrl:
          description: The URL of the call associated with the event.
          example: https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          format: uri
          type: string
        parentCallId:
          description: "(optional) If the event is related to the B leg of a <Transfer>,\
            \ the call id of the original call leg that executed the <Transfer>. Otherwise,\
            \ this field will not be present."
          example: c-95ac8d6e-1a31c52e-b38f-4198-93c1-51633ec68f8d
          type: string
        enqueuedTime:
          description: "(optional) If call queueing is enabled and this is an outbound\
            \ call, time the call was queued, in ISO 8601 format."
          example: 2022-06-17T22:20:00Z
          format: date-time
          nullable: true
          type: string
        startTime:
          description: "Time the call was started, in ISO 8601 format."
          example: 2022-06-17T22:19:40.375Z
          format: date-time
          type: string
        answerTime:
          description: "Time the call was answered, in ISO 8601 format."
          example: 2022-06-17T22:20:00Z
          format: date-time
          nullable: true
          type: string
        endTime:
          description: The time that the recording ended in ISO-8601 format
          example: 2022-06-17T22:20:00Z
          format: date-time
          type: string
        tag:
          description: "(optional) The tag specified on call creation. If no tag was\
            \ specified or it was previously cleared, this field will not be present."
          example: exampleTag
          nullable: true
          type: string
        transferCallerId:
          description: "The phone number used as the from field of the B-leg call,\
            \ in E.164 format (e.g. +15555555555)."
          example: "+15555555555"
          type: string
        transferTo:
          description: "The phone number used as the to field of the B-leg call, in\
            \ E.164 format (e.g. +15555555555)."
          example: "+15555555555"
          type: string
        cause:
          description: "Reason the call failed - hangup, busy, timeout, cancel, rejected,\
            \ callback-error, invalid-bxml, application-error, account-limit, node-capacity-exceeded,\
            \ error, or unknown."
          example: busy
          type: string
        errorMessage:
          description: Text explaining the reason that caused the call to fail in
            case of errors.
          example: Call c-2a913f94-6a486f3a-3cae-4034-bcc3-f0c9fa77ca2f is already
            bridged with another call
          nullable: true
          type: string
        errorId:
          description: Bandwidth's internal id that references the error event.
          example: 4642074b-7b58-478b-96e4-3a60955c6765
          nullable: true
          type: string
      type: object
    eventType:
      description: "The event type, value can be one of the following: answer, bridgeComplete,\
        \ bridgeTargetComplete, conferenceCreated, conferenceRedirect, conferenceMemberJoin,\
        \ conferenceMemberExit, conferenceCompleted, conferenceRecordingAvailable,\
        \ disconnect, dtmf, gather, initiate, machineDetectionComplete, recordingComplete,\
        \ recordingAvailable, redirect, transcriptionAvailable, transferAnswer, transferComplete,\
        \ transferDisconnect."
      example: bridgeComplete
      type: string
    eventTime:
      description: "The approximate UTC date and time when the event was generated\
        \ by the Bandwidth server, in ISO 8601 format. This may not be exactly the\
        \ time of event execution."
      example: 2022-06-17T22:19:40.375Z
      format: date-time
      type: string
    accountId:
      description: The user account associated with the call.
      example: "9900000"
      type: string
    applicationId1:
      description: The id of the application associated with the call.
      example: 04e88489-df02-4e34-a0ee-27a91849555f
      type: string
    to:
      description: "The phone number that received the call, in E.164 format (e.g.\
        \ +15555555555)."
      example: "+15555555555"
      type: string
    from:
      description: The provided identifier of the caller. Must be a phone number in
        E.164 format (e.g. +15555555555).
      example: "+15555555555"
      type: string
    conferenceId:
      description: "The unique, Bandwidth-generated ID of the conference that was\
        \ recorded"
      example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
      type: string
    name:
      description: The user-specified name of the conference that was recorded
      example: my-conference-name
      type: string
    recordingId:
      description: The unique ID of this recording
      example: r-fbe05094-9fd2afe9-bf5b-4c68-820a-41a01c1c5833
      type: string
    duration:
      description: The duration of the recording in ISO-8601 format
      example: PT13.67S
      type: string
    channels:
      description: Always `1` for conference recordings; multi-channel recordings
        are not supported on conferences.
      example: 1
      format: int32
      type: integer
    digit:
      description: The digit collected in the call.
      example: "2"
      type: string
    digits:
      description: "(optional) The digits, letters, and/or symbols entered by the\
        \ user. The string is empty if a timeout occurred before any buttons were\
        \ pressed."
      example: "123"
      type: string
    terminatingDigit:
      description: (optional) The digit the user pressed to end the gather. Empty
        string value if no terminating digit was pressed.
      example: "#"
      type: string
    startTime:
      description: "Time the call was started, in ISO 8601 format."
      example: 2022-06-17T22:19:40.375Z
      format: date-time
      type: string
    enqueuedTime:
      description: "(optional) If call queueing is enabled and this is an outbound\
        \ call, time the call was queued, in ISO 8601 format."
      example: 2022-06-17T22:20:00Z
      format: date-time
      nullable: true
      type: string
    answerTime:
      description: "Time the call was answered, in ISO 8601 format."
      example: 2022-06-17T22:20:00Z
      format: date-time
      nullable: true
      type: string
    endTime:
      description: The time that the recording ended in ISO-8601 format
      example: 2022-06-17T22:20:00Z
      format: date-time
      type: string
    status:
      description: "The current status of the process. For recording, current possible\
        \ values are 'processing', 'partial', 'complete', 'deleted', and 'error'.\
        \ For transcriptions, current possible values are 'none', 'processing', 'available',\
        \ 'error', 'timeout', 'file-size-too-big', and 'file-size-too-small'. Additional\
        \ states may be added in the future, so your application must be tolerant\
        \ of unknown values."
      example: completed
      type: string
    transferCallerId:
      description: "The phone number used as the from field of the B-leg call, in\
        \ E.164 format (e.g. +15555555555)."
      example: "+15555555555"
      type: string
    transferTo:
      description: "The phone number used as the to field of the B-leg call, in E.164\
        \ format (e.g. +15555555555)."
      example: "+15555555555"
      type: string
    mediaUrl:
      description: The URL that can be used to download the recording. Only present
        if the recording is finished and may be downloaded.
      example: https://voice.bandwidth.com/api/v2/accounts/9900000/conferences/conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9/recordings/r-fbe05094-9fd2afe9-bf5b-4c68-820a-41a01c1c5833/media
      format: uri
      nullable: true
      type: string
    callId:
      description: The call id associated with the event.
      example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
      type: string
    recordingName:
      description: A name to identify this recording.
      example: my-recording-name
      type: string
    callUrl:
      description: The URL of the call associated with the event.
      example: https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
      format: uri
      type: string
    parentCallId:
      description: "(optional) If the event is related to the B leg of a <Transfer>,\
        \ the call id of the original call leg that executed the <Transfer>. Otherwise,\
        \ this field will not be present."
      example: c-95ac8d6e-1a31c52e-b38f-4198-93c1-51633ec68f8d
      type: string
    tag1:
      description: "(optional) The tag specified on call creation. If no tag was specified\
        \ or it was previously cleared, this field will not be present."
      example: exampleTag
      nullable: true
      type: string
    cause:
      description: "Reason the call failed - hangup, busy, timeout, cancel, rejected,\
        \ callback-error, invalid-bxml, application-error, account-limit, node-capacity-exceeded,\
        \ error, or unknown."
      example: busy
      type: string
    errorMessage:
      description: Text explaining the reason that caused the call to fail in case
        of errors.
      example: Call c-2a913f94-6a486f3a-3cae-4034-bcc3-f0c9fa77ca2f is already bridged
        with another call
      nullable: true
      type: string
    errorId:
      description: Bandwidth's internal id that references the error event.
      example: 4642074b-7b58-478b-96e4-3a60955c6765
      nullable: true
      type: string
    machineDetectionResult:
      description: "(optional) if machine detection was requested in sync mode, the\
        \ result will be specified here. Possible values are the same as the async\
        \ counterpart: Machine Detection Complete"
      nullable: true
      properties:
        value:
          description: "Possible values are answering-machine, human, silence, timeout,\
            \ or error."
          example: answering-machine
          type: string
        duration:
          description: The amount of time it took to determine the result.
          example: PT4.9891287S
          type: string
      type: object
    diversion:
      properties:
        reason:
          description: "The reason for the diversion. Common values: unknown, user-busy,\
            \ no-answer, unavailable, unconditional, time-of-day, do-not-disturb,\
            \ deflection, follow-me, out-of-service, away."
          example: unavailable
          type: string
        privacy:
          description: off or full
          example: "off"
          type: string
        screen:
          description: "No if the number was provided by the user, yes if the number\
            \ was provided by the network"
          example: "no"
          type: string
        counter:
          description: The number of diversions that have occurred
          example: "2"
          type: string
        limit:
          description: The maximum number of diversions allowed for this session
          example: "3"
          type: string
        unknown:
          description: The normal list of values is not exhaustive. Your application
            must be tolerant of unlisted keys and unlisted values of those keys.
          example: unknownValue
          type: string
        origTo:
          description: Always present. Indicates the last telephone number that the
            call was diverted from.
          example: "+15558884444"
          type: string
      type: object
    transcription:
      example:
        confidence: 0.9
        text: "Nice talking to you, friend!"
      properties:
        text:
          description: The transcribed text
          example: "Nice talking to you, friend!"
          type: string
        confidence:
          description: "The confidence on the recognized content, ranging from `0.0`\
            \ to `1.0` with `1.0` being the highest confidence."
          example: 0.9
          format: double
          type: number
      type: object
    stirShaken:
      properties:
        verstat:
          description: (optional) The verification status indicating whether the verification
            was successful or not. Possible values are TN-Validation-Passed and TN-Validation-Failed.
          example: Tn-Validation-Passed
          type: string
        attestationIndicator:
          description: "(optional) The attestation level verified by Bandwidth. Possible\
            \ values are A (full), B (partial) or C (gateway)."
          example: A
          type: string
        originatingId:
          description: (optional) A unique origination identifier.
          example: 99759086-1335-11ed-9bcf-5f7d464e91af
          type: string
      type: object
    uui:
      description: "The value of the `User-To-User` header to send within the initial\
        \ `INVITE`. Must include the encoding parameter as specified in RFC 7433.\
        \ Only `base64`, `jwt` and `hex` encoding are currently allowed. This value,\
        \ including the encoding specifier, may not exceed 256 characters."
      example: bXktdXVp
      maxLength: 256
      type: string
    codeRequest:
      properties:
        to:
          description: The phone number to send the mfa code to.
          example: "+19195551234"
          pattern: "^\\+[1-9]\\d{1,14}$"
          type: string
        from:
          description: "The application phone number, the sender of the mfa code."
          example: "+19195554321"
          maxLength: 32
          pattern: "^\\+[1-9]\\d{1,14}$"
          type: string
        applicationId:
          description: "The application unique ID, obtained from Bandwidth."
          example: 66fd98ae-ac8d-a00f-7fcd-ba3280aeb9b1
          maxLength: 50
          type: string
        scope:
          description: "An optional field to denote what scope or action the mfa code\
            \ is addressing.  If not supplied, defaults to \"2FA\"."
          example: 2FA
          maxLength: 25
          type: string
        message:
          description: "The message format of the mfa code.  There are three values\
            \ that the system will replace \"{CODE}\", \"{NAME}\", \"{SCOPE}\".  The\
            \ \"{SCOPE}\" and \"{NAME} value template are optional, while \"{CODE}\"\
            \ must be supplied.  As the name would suggest, code will be replace with\
            \ the actual mfa code.  Name is replaced with the application name, configured\
            \ during provisioning of mfa.  The scope value is the same value sent\
            \ during the call and partitioned by the server."
          example: "Your temporary {NAME} {SCOPE} code is {CODE}"
          maxLength: 2048
          type: string
        digits:
          description: "The number of digits for your mfa code.  The valid number\
            \ ranges from 2 to 8, inclusively."
          example: 6
          maximum: 8
          minimum: 4
          type: integer
      required:
      - applicationId
      - digits
      - from
      - message
      - to
      type: object
    voiceCodeResponse:
      example:
        callId: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
      properties:
        callId:
          description: Programmable Voice API Call ID.
          example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          type: string
      type: object
    messagingCodeResponse:
      example:
        messageId: 1589228074636lm4k2je7j7jklbn2
      properties:
        messageId:
          description: Messaging API Message ID.
          example: 1589228074636lm4k2je7j7jklbn2
          type: string
      type: object
    verifyCodeRequest:
      properties:
        to:
          description: The phone number to send the mfa code to.
          example: "+19195551234"
          pattern: "^\\+[1-9]\\d{1,14}$"
          type: string
        scope:
          description: "An optional field to denote what scope or action the mfa code\
            \ is addressing.  If not supplied, defaults to \"2FA\"."
          example: 2FA
          type: string
        expirationTimeInMinutes:
          description: "The time period, in minutes, to validate the mfa code.  By\
            \ setting this to 3 minutes, it will mean any code generated within the\
            \ last 3 minutes are still valid.  The valid range for expiration time\
            \ is between 0 and 15 minutes, exclusively and inclusively, respectively."
          example: 3
          maximum: 15
          minimum: 1
          type: number
        code:
          description: The generated mfa code to check if valid.
          example: "123456"
          maxLength: 8
          minLength: 4
          type: string
      required:
      - code
      - expirationTimeInMinutes
      - to
      type: object
    verifyCodeResponse:
      example:
        valid: true
      properties:
        valid:
          description: Whether or not the supplied code is valid.
          example: true
          type: boolean
      type: object
    mfaRequestError:
      example:
        requestId: 354cc8a3-6701-461e-8fa7-8671703dd898
        error: 400 Request is malformed or invalid
      properties:
        error:
          description: A message describing the error with your request.
          example: 400 Request is malformed or invalid
          type: string
        requestId:
          description: The associated requestId from AWS.
          example: 354cc8a3-6701-461e-8fa7-8671703dd898
          type: string
      type: object
    mfaUnauthorizedRequestError:
      example:
        message: Unauthorized
      properties:
        message:
          description: Unauthorized
          example: Unauthorized
          type: string
      type: object
    mfaForbiddenRequestError:
      example:
        message: Missing Authentication Token
      properties:
        message:
          description: The message containing the reason behind the request being
            forbidden.
          example: Missing Authentication Token
          type: string
      type: object
    completedLookupStatusEnum:
      enum:
      - COMPLETE
      - PARTIAL_COMPLETE
      - FAILED
      example: COMPLETE
      type: string
    inProgressLookupStatusEnum:
      enum:
      - IN_PROGRESS
      - COMPLETE
      - PARTIAL_COMPLETE
      - FAILED
      example: COMPLETE
      type: string
    deactivationEventEnum:
      description: |
        [DNI-Only](#section/DNI-Only).
        `DEACTIVATED` if the carrier reported a deactivation event for this phone number.
      enum:
      - DEACTIVATED
      type: string
    latestMessageDeliveryStatusEnum:
      description: |-
        [DNI-Only](#section/DNI-Only). The current delivery status of the phone number.
        - ACTIVE: A message was successfully sent to the number (delivery code 0).
        - DEACTIVATED: A message was not delivered to a number (delivery code 720)
        - UNKNOWN: Bandwidth cannot find an delivery status entry for the number.
      enum:
      - ACTIVE
      - DEACTIVATED
      - UNKNOWN
      type: string
    lineTypeEnum:
      enum:
      - FIXED
      - VOIP-FIXED
      - MOBILE
      - VOIP
      example: MOBILE
      type: string
    requestId:
      description: The phone number lookup request ID from Bandwidth.
      example: 004223a0-8b17-41b1-bf81-20732adf5590
      format: uuid
      type: string
    linkSchema:
      example:
        method: GET
        rel: aRelatedResource
        href: /relative/uri
      properties:
        href:
          description: URI of the link.
          example: /relative/uri
          type: string
        rel:
          description: Specifies the relationship between this link and the resource.
          example: aRelatedResource
          type: string
        method:
          description: HTTP method to be used.
          example: GET
          type: string
      title: Link
      type: object
    lookupErrorSchema:
      example:
        code: NO-MATCH
        meta:
          code: 1001
          message: Invalid TNs
          phoneNumbers:
          - "+13992077164"
          - "+19196104424"
        description: Example error description
        type: NumberInventory
      properties:
        code:
          description: Validation error code
          example: NO-MATCH
          type: string
        description:
          description: Description of validation error
          example: Example error description
          type: string
        type:
          description: Type of validation error
          example: NumberInventory
          type: string
        meta:
          $ref: "#/components/schemas/lookupErrorSchema_meta"
      type: object
    syncLookupRequest:
      properties:
        phoneNumbers:
          description: Telephone numbers in E.164 format.
          items:
            pattern: "^\\+[1-9]\\d{1,14}$"
            type: string
          maximum: 100
          minimum: 1
          type: array
      required:
      - phoneNumbers
      type: object
    asyncLookupRequest:
      properties:
        phoneNumbers:
          description: Telephone numbers in E.164 format.
          items:
            pattern: "^\\+[1-9]\\d{1,14}$"
            type: string
          maximum: 15000
          minimum: 1
          type: array
      required:
      - phoneNumbers
      type: object
    createSyncLookupResponse:
      example:
        data:
          requestId: 004223a0-8b17-41b1-bf81-20732adf5590
          results:
          - deactivationEvent: DEACTIVATED
            messagingProvider: Verizon Wireless
            deactivationDate: 2025-06-20 18:35
            latestMessageDeliveryStatus: ACTIVE
            phoneNumber: "+10072904498"
            countryCodeA3: USA
            initialMessageDeliveryStatusDate: 2025-06-20
            lineType: MOBILE
            deactivationReporter: deactivationReporter
            voiceProvider: Verizon Wireless
            latestMessageDeliveryStatusDate: 2025-06-21
          - deactivationEvent: DEACTIVATED
            messagingProvider: Verizon Wireless
            deactivationDate: 2025-06-20 18:35
            latestMessageDeliveryStatus: ACTIVE
            phoneNumber: "+10072904498"
            countryCodeA3: USA
            initialMessageDeliveryStatusDate: 2025-06-20
            lineType: MOBILE
            deactivationReporter: deactivationReporter
            voiceProvider: Verizon Wireless
            latestMessageDeliveryStatusDate: 2025-06-21
          status: COMPLETE
        links: []
        errors:
        - code: NO-MATCH
          meta:
            code: 1001
            message: Invalid TNs
            phoneNumbers:
            - "+13992077164"
            - "+19196104424"
          description: Example error description
          type: NumberInventory
        - code: NO-MATCH
          meta:
            code: 1001
            message: Invalid TNs
            phoneNumbers:
            - "+13992077164"
            - "+19196104424"
          description: Example error description
          type: NumberInventory
      properties:
        links:
          example: []
          items:
            $ref: "#/components/schemas/linkSchema"
          type: array
        data:
          $ref: "#/components/schemas/createSyncLookupResponse_data"
        errors:
          items:
            $ref: "#/components/schemas/lookupErrorSchema"
          type: array
      type: object
    createAsyncBulkLookupResponse:
      example:
        data:
          requestId: 004223a0-8b17-41b1-bf81-20732adf5590
          status: COMPLETE
        links:
        - method: GET
          rel: aRelatedResource
          href: /relative/uri
        - method: GET
          rel: aRelatedResource
          href: /relative/uri
        errors:
        - code: NO-MATCH
          meta:
            code: 1001
            message: Invalid TNs
            phoneNumbers:
            - "+13992077164"
            - "+19196104424"
          description: Example error description
          type: NumberInventory
        - code: NO-MATCH
          meta:
            code: 1001
            message: Invalid TNs
            phoneNumbers:
            - "+13992077164"
            - "+19196104424"
          description: Example error description
          type: NumberInventory
      properties:
        links:
          description: Links for pagination (if applicable)
          items:
            $ref: "#/components/schemas/linkSchema"
          type: array
        data:
          $ref: "#/components/schemas/createAsyncBulkLookupResponse_data"
        errors:
          items:
            $ref: "#/components/schemas/lookupErrorSchema"
          type: array
      type: object
    getAsyncBulkLookupResponse:
      example:
        data:
          requestId: 004223a0-8b17-41b1-bf81-20732adf5590
          results:
          - deactivationEvent: DEACTIVATED
            messagingProvider: Verizon Wireless
            deactivationDate: 2025-06-20 18:35
            latestMessageDeliveryStatus: ACTIVE
            phoneNumber: "+10072904498"
            countryCodeA3: USA
            initialMessageDeliveryStatusDate: 2025-06-20
            lineType: MOBILE
            deactivationReporter: deactivationReporter
            voiceProvider: Verizon Wireless
            latestMessageDeliveryStatusDate: 2025-06-21
          - deactivationEvent: DEACTIVATED
            messagingProvider: Verizon Wireless
            deactivationDate: 2025-06-20 18:35
            latestMessageDeliveryStatus: ACTIVE
            phoneNumber: "+10072904498"
            countryCodeA3: USA
            initialMessageDeliveryStatusDate: 2025-06-20
            lineType: MOBILE
            deactivationReporter: deactivationReporter
            voiceProvider: Verizon Wireless
            latestMessageDeliveryStatusDate: 2025-06-21
          status: COMPLETE
        links: []
        errors:
        - code: NO-MATCH
          meta:
            code: 1001
            message: Invalid TNs
            phoneNumbers:
            - "+13992077164"
            - "+19196104424"
          description: Example error description
          type: NumberInventory
        - code: NO-MATCH
          meta:
            code: 1001
            message: Invalid TNs
            phoneNumbers:
            - "+13992077164"
            - "+19196104424"
          description: Example error description
          type: NumberInventory
      properties:
        links:
          example: []
          items:
            $ref: "#/components/schemas/linkSchema"
          type: array
        data:
          $ref: "#/components/schemas/getAsyncBulkLookupResponse_data"
        errors:
          items:
            $ref: "#/components/schemas/lookupErrorSchema"
          type: array
      type: object
    lookupErrorResponse:
      example:
        data: "{}"
        links: []
        errors:
        - code: NO-MATCH
          meta:
            code: 1001
            message: Invalid TNs
            phoneNumbers:
            - "+13992077164"
            - "+19196104424"
          description: Example error description
          type: NumberInventory
        - code: NO-MATCH
          meta:
            code: 1001
            message: Invalid TNs
            phoneNumbers:
            - "+13992077164"
            - "+19196104424"
          description: Example error description
          type: NumberInventory
      properties:
        links:
          example: []
          items:
            $ref: "#/components/schemas/linkSchema"
          type: array
        data:
          description: The phone number lookup response data
          type: object
        errors:
          items:
            $ref: "#/components/schemas/lookupErrorSchema"
          type: array
      type: object
    lookupResult:
      description: Carrier information results for the specified telephone number.
      example:
        deactivationEvent: DEACTIVATED
        messagingProvider: Verizon Wireless
        deactivationDate: 2025-06-20 18:35
        latestMessageDeliveryStatus: ACTIVE
        phoneNumber: "+10072904498"
        countryCodeA3: USA
        initialMessageDeliveryStatusDate: 2025-06-20
        lineType: MOBILE
        deactivationReporter: deactivationReporter
        voiceProvider: Verizon Wireless
        latestMessageDeliveryStatusDate: 2025-06-21
      properties:
        phoneNumber:
          description: The telephone number in E.164 format.
          example: "+10072904498"
          type: string
        lineType:
          $ref: "#/components/schemas/lineTypeEnum"
        messagingProvider:
          description: The messaging service provider of the telephone number.
          example: Verizon Wireless
          type: string
        voiceProvider:
          description: The voice service provider of the telephone number.
          example: Verizon Wireless
          type: string
        countryCodeA3:
          description: The country code of the telephone number in ISO 3166-1 alpha-3
            format.
          example: USA
          type: string
        deactivationReporter:
          description: |
            [DNI-Only](#section/DNI-Only).
            The carrier that reported a deactivation event for this phone number.
          type: string
        deactivationDate:
          description: "[DNI-Only](#section/DNI-Only). The datetime the carrier reported\
            \ a deactivation event."
          example: 2025-06-20 18:35
          format: date-time-local
          type: string
        deactivationEvent:
          $ref: "#/components/schemas/deactivationEventEnum"
        latestMessageDeliveryStatus:
          $ref: "#/components/schemas/latestMessageDeliveryStatusEnum"
        initialMessageDeliveryStatusDate:
          description: "[DNI-Only](#section/DNI-Only). The date the phone number entered\
            \ the status described in `latestMessageDeliveryStatus`. \nThink of this\
            \ as the \"start time\" for that status.\nValue resets every time the\
            \ `latestMessageDeliveryStatus` changes."
          example: 2025-06-20
          format: date
          type: string
        latestMessageDeliveryStatusDate:
          description: "[DNI-Only](#section/DNI-Only). The date bandwidth last received\
            \ delivery status information for this phone number. \nUse this field\
            \ to understand how up-to-date the `latestMessageDeliveryStatus` is.\n\
            Value resets every time the `latestMessageDeliveryStatus` changes."
          example: 2025-06-21
          format: date
          type: string
      type: object
    accountId1:
      description: User's account ID.
      example: "1234567"
      type: string
    tfPhoneNumber:
      description: Toll-free telephone number in E.164 format.
      example: "+18005555555"
      maxLength: 12
      minLength: 12
      nullable: false
      pattern: "^\\+1(800|833|844|855|866|877|888)[2-9]\\d{6}$"
      type: string
    tfvWebhookErrors:
      description: Details of the errors that were encountered when processing the
        request.
      items:
        example: "optInWorkflowImageURLs: Entries must be a valid array of objects."
        type: string
      type: array
    tfvCallbackStatusEnum:
      enum:
      - VERIFIED
      - UNVERIFIED
      example: VERIFIED
      type: string
    tfvUnverifiedStatus:
      default: UNVERIFIED
      example: UNVERIFIED
      type: string
    declineReasonDescription:
      description: Explanation for why a verification request was declined.
      example: Invalid Information - Can't Validate URL - Website is not accessible
        / not available
      nullable: false
      type: string
    denialStatusCode:
      description: Reason code for denial.
      example: 511
      type: integer
    resubmitAllowed:
      description: Whether a Toll-Free Verification request qualifies for resubmission
        via PUT.
      example: true
      type: boolean
    blocked:
      description: Whether a Toll-Free Verification is blocked. This attribute will
        only be defined when the number is blocked.
      example: true
      type: boolean
    blockedReason:
      description: The reason why the Toll-Free Verification is blocked. This attribute
        will only be defined when the number is blocked.
      example: Toll-free number was used to send spam messages
      type: string
    privacyPolicyUrl:
      description: The Toll-Free Verification request privacy policy URL.
      example: http://your-company.com/privacyPolicy
      type: string
    termsAndConditionsUrl:
      description: The Toll-Free Verification request terms and conditions policy
        URL.
      example: http://your-company.com/termsAndConditions
      type: string
    businessDba:
      description: The company 'Doing Business As'.
      example: Another Company Name Inc.
      type: string
    businessRegistrationNumber:
      description: "US Federal Tax ID Number (EIN) or Canada Business Number (CBN).\
        \ Optional until early 2026. If a value is provided for this field, a value\
        \ must be provided for `businessRegistrationType` and `businessEntityType`.\
        \ Available starting October 1st, 2025."
      example: 12-3456789
      maxLength: 500
      nullable: true
      type: string
    businessRegistrationTypeEnum:
      description: "The type of business registration number. Optional until early\
        \ 2026; required if `businessRegistrationNumber` is provided. Available starting\
        \ October 1st, 2025."
      enum:
      - EIN
      - CBN
      nullable: true
      type: string
    businessEntityTypeEnum:
      description: "The type of registered business. If no option is applicable, please\
        \ provide \"SOLE_PROPRIETOR\" as a value. Optional until early 2026; required\
        \ if `businessRegistrationNumber` is provided. Available starting October\
        \ 1st, 2025."
      enum:
      - SOLE_PROPRIETOR
      - PRIVATE_PROFIT
      - PUBLIC_PROFIT
      - NON_PROFIT
      - GOVERNMENT
      nullable: true
      type: string
    helpMessageResponse:
      description: A message that gets sent to users requesting help.
      example: Please contact support for assistance.
      maxLength: 500
      nullable: true
      type: string
    ageGatedContent:
      description: Indicates whether the content is age-gated.
      example: false
      type: boolean
    additionalDenialReason:
      properties:
        statusCode:
          description: Reason code for denial.
          example: 511
          type: integer
        reason:
          description: Explanation for why a verification request was declined.
          example: Invalid Information - Can't Validate URL - Website is not accessible
            / not available
          nullable: false
          type: string
        resubmitAllowed:
          description: Whether a Toll-Free Verification request qualifies for resubmission
            via PUT.
          example: true
          type: boolean
      required:
      - reason
      - resubmitAllowed
      - statusCode
      type: object
    internalTicketNumber:
      description: Unique identifier (UUID) generated by Bandwidth to assist in tracking
        the verification status of a toll-free number - included in all webhook payloads.
      example: acde070d-8c4c-4f0d-9d8a-162843c10333
      type: string
    internalTicketNumberForWebhook:
      description: Unique identifier (UUID) generated by Bandwidth to assist in tracking
        the verification status of a toll-free number.
      example: acde070d-8c4c-4f0d-9d8a-162843c10333
      type: string
    businessContactPhoneNumber:
      description: Contact telephone number
      example: "+19192654500"
      maxLength: 500
      minLength: 1
      nullable: false
      type: string
    verificationRequest:
      properties:
        businessAddress:
          $ref: "#/components/schemas/address"
        businessContact:
          $ref: "#/components/schemas/contact"
        messageVolume:
          description: Estimated monthly volume of messages from the toll-free number.
          example: 10000
          maximum: 10000000
          minimum: 10
          type: integer
        phoneNumbers:
          items:
            $ref: "#/components/schemas/tfPhoneNumber"
          maxItems: 10
          minItems: 1
          type: array
        useCase:
          description: The category of the use case.
          example: 2FA
          maxLength: 500
          minLength: 0
          type: string
        useCaseSummary:
          description: A general idea of the use case and customer.
          example: Text summarizing the use case for the toll-free number
          maxLength: 500
          minLength: 0
          nullable: false
          type: string
        productionMessageContent:
          description: Example of message content.
          example: Production message content
          maxLength: 500
          minLength: 0
          nullable: false
          type: string
        optInWorkflow:
          $ref: "#/components/schemas/optInWorkflow"
        additionalInformation:
          description: Any additional information.
          example: Any additional information
          maxLength: 500
          minLength: 0
          nullable: true
          type: string
        isvReseller:
          description: ISV name.
          example: Test ISV
          maxLength: 500
          minLength: 0
          nullable: true
          type: string
        privacyPolicyUrl:
          description: The Toll-Free Verification request privacy policy URL.
          example: http://your-company.com/privacyPolicy
          type: string
        termsAndConditionsUrl:
          description: The Toll-Free Verification request terms and conditions policy
            URL.
          example: http://your-company.com/termsAndConditions
          type: string
        businessDba:
          description: The company 'Doing Business As'.
          example: Another Company Name Inc.
          type: string
        businessRegistrationNumber:
          description: "US Federal Tax ID Number (EIN) or Canada Business Number (CBN).\
            \ Optional until early 2026. If a value is provided for this field, a\
            \ value must be provided for `businessRegistrationType` and `businessEntityType`.\
            \ Available starting October 1st, 2025."
          example: 12-3456789
          maxLength: 500
          nullable: true
          type: string
        businessRegistrationType:
          $ref: "#/components/schemas/businessRegistrationTypeEnum"
        businessEntityType:
          $ref: "#/components/schemas/businessEntityTypeEnum"
        helpMessageResponse:
          description: A message that gets sent to users requesting help.
          example: Please contact support for assistance.
          maxLength: 500
          nullable: true
          type: string
        ageGatedContent:
          description: Indicates whether the content is age-gated.
          example: false
          type: boolean
        cvToken:
          description: "The token provided by Campaign Verify to validate your political\
            \ use case. Only required for 527 political organizations. If you are\
            \ not a 527 political organization, this field should be omitted. If you\
            \ pass an empty string, it will be passed along and potentially rejected."
          example: cv.user123|sess456|mno|tfree|read_write|X7yZ9aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVw
          maxLength: 500
          minLength: 0
          nullable: true
          type: string
      required:
      - businessAddress
      - businessContact
      - messageVolume
      - optInWorkflow
      - phoneNumbers
      - productionMessageContent
      - useCase
      - useCaseSummary
      type: object
    verificationUpdateRequest:
      properties:
        businessAddress:
          $ref: "#/components/schemas/address"
        businessContact:
          $ref: "#/components/schemas/contact"
        messageVolume:
          description: Estimated monthly volume of messages from the toll-free number.
          example: 10000
          maximum: 10000000
          minimum: 10
          type: integer
        useCase:
          description: The category of the use case.
          example: 2FA
          maxLength: 500
          minLength: 0
          type: string
        useCaseSummary:
          description: A general idea of the use case and customer.
          example: Text summarizing the use case for the toll-free number
          maxLength: 500
          minLength: 0
          nullable: false
          type: string
        productionMessageContent:
          description: Example of message content.
          example: Production message content
          maxLength: 500
          minLength: 0
          nullable: false
          type: string
        optInWorkflow:
          $ref: "#/components/schemas/optInWorkflow"
        additionalInformation:
          description: Any additional information.
          example: Any additional information
          maxLength: 500
          minLength: 0
          nullable: true
          type: string
        isvReseller:
          description: ISV name.
          example: Test ISV
          maxLength: 500
          minLength: 0
          nullable: true
          type: string
        privacyPolicyUrl:
          description: The Toll-Free Verification request privacy policy URL.
          example: http://your-company.com/privacyPolicy
          type: string
        termsAndConditionsUrl:
          description: The Toll-Free Verification request terms and conditions policy
            URL.
          example: http://your-company.com/termsAndConditions
          type: string
        businessDba:
          description: The company 'Doing Business As'.
          example: Another Company Name Inc.
          type: string
        businessRegistrationNumber:
          description: "US Federal Tax ID Number (EIN) or Canada Business Number (CBN).\
            \ Optional until early 2026. If a value is provided for this field, a\
            \ value must be provided for `businessRegistrationType` and `businessEntityType`.\
            \ Available starting October 1st, 2025."
          example: 12-3456789
          maxLength: 500
          nullable: true
          type: string
        businessRegistrationType:
          $ref: "#/components/schemas/businessRegistrationTypeEnum"
        businessEntityType:
          $ref: "#/components/schemas/businessEntityTypeEnum"
        helpMessageResponse:
          description: A message that gets sent to users requesting help.
          example: Please contact support for assistance.
          maxLength: 500
          nullable: true
          type: string
        ageGatedContent:
          description: Indicates whether the content is age-gated.
          example: false
          type: boolean
        cvToken:
          description: "The token provided by Campaign Verify to validate your political\
            \ use case. Only required for 527 political organizations. If you are\
            \ not a 527 political organization, this field should be omitted. If you\
            \ pass an empty string, it will be passed along and potentially rejected."
          example: cv.user123|sess456|mno|tfree|read_write|X7yZ9aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVw
          maxLength: 500
          minLength: 0
          nullable: true
          type: string
      required:
      - businessAddress
      - businessContact
      - messageVolume
      - optInWorkflow
      - productionMessageContent
      - useCase
      - useCaseSummary
      type: object
    tfvBasicAuthentication:
      properties:
        username:
          example: username
          maxLength: 100
          type: string
        password:
          example: password
          maxLength: 200
          type: string
      required:
      - password
      - username
      type: object
    webhookSubscriptionRequestSchema:
      properties:
        basicAuthentication:
          $ref: "#/components/schemas/tfvBasicAuthentication"
        callbackUrl:
          description: "Callback URL to receive status updates from Bandwidth. When\
            \ a webhook subscription is registered with Bandwidth under a given account\
            \ ID, it will be used to send status updates for all requests submitted\
            \ under that account ID."
          example: https://www.example.com/path/to/resource
          format: url
          maxLength: 2000
          minLength: 0
          nullable: true
          pattern: "^$|(https?:\\/\\/)?(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,253}\\.[a-z]{2,6}\\\
            b([-a-zA-Z0-9@:%_\\+.~#()?&//=]*)"
          type: string
        sharedSecretKey:
          description: An ASCII string submitted by the user as a shared secret key
            for generating an HMAC header for callbacks.
          example: This is my $3cret
          maxLength: 64
          minLength: 16
          nullable: true
          pattern: "^[ -~]{16,64}$"
          type: string
      required:
      - callbackUrl
      type: object
    failureWebhook:
      properties:
        accountId:
          description: User's account ID.
          example: "1234567"
          type: string
        phoneNumber:
          description: Toll-free telephone number in E.164 format.
          example: "+18005555555"
          maxLength: 12
          minLength: 12
          nullable: false
          pattern: "^\\+1(800|833|844|855|866|877|888)[2-9]\\d{6}$"
          type: string
        errorCode:
          description: An error code indicating what error was encountered. This code
            can be interpreted as an HTTP status code in regards to the error that
            was encountered.
          example: "400"
          type: string
        errorMessage:
          description: A description of the error that was encountered.
          example: cannot process request.
          type: string
        errors:
          description: Details of the errors that were encountered when processing
            the request.
          items:
            example: "optInWorkflowImageURLs: Entries must be a valid array of objects."
            type: string
          type: array
        internalTicketNumber:
          description: Unique identifier (UUID) generated by Bandwidth to assist in
            tracking the verification status of a toll-free number.
          example: acde070d-8c4c-4f0d-9d8a-162843c10333
          type: string
      type: object
    verificationDenialWebhook:
      properties:
        accountId:
          description: User's account ID.
          example: "1234567"
          type: string
        additionalDenialReasons:
          description: An optional list of denial reasons in addition to declineReasonDescription
            when multiple reasons apply.
          example:
          - statusCode: 512
            reason: Reason A
            resubmitAllowed: true
          - statusCode: 513
            reason: Reason B
            resubmitAllowed: true
          items:
            $ref: "#/components/schemas/additionalDenialReason"
          type: array
        declineReasonDescription:
          description: Explanation for why a verification request was declined.
          example: Invalid Information - Can't Validate URL - Website is not accessible
            / not available
          nullable: false
          type: string
        denialStatusCode:
          description: Reason code for denial.
          example: 511
          type: integer
        internalTicketNumber:
          description: Unique identifier (UUID) generated by Bandwidth to assist in
            tracking the verification status of a toll-free number.
          example: acde070d-8c4c-4f0d-9d8a-162843c10333
          type: string
        phoneNumber:
          description: Toll-free telephone number in E.164 format.
          example: "+18005555555"
          maxLength: 12
          minLength: 12
          nullable: false
          pattern: "^\\+1(800|833|844|855|866|877|888)[2-9]\\d{6}$"
          type: string
        resubmitAllowed:
          description: Whether a Toll-Free Verification request qualifies for resubmission
            via PUT.
          example: true
          type: boolean
        status:
          default: UNVERIFIED
          example: UNVERIFIED
          type: string
        blocked:
          description: Whether a Toll-Free Verification is blocked. This attribute
            will only be defined when the number is blocked.
          example: true
          type: boolean
        blockedReason:
          description: The reason why the Toll-Free Verification is blocked. This
            attribute will only be defined when the number is blocked.
          example: Toll-free number was used to send spam messages
          type: string
      type: object
    verificationWebhook:
      properties:
        accountId:
          description: User's account ID.
          example: "1234567"
          type: string
        phoneNumber:
          description: Toll-free telephone number in E.164 format.
          example: "+18005555555"
          maxLength: 12
          minLength: 12
          nullable: false
          pattern: "^\\+1(800|833|844|855|866|877|888)[2-9]\\d{6}$"
          type: string
        status:
          $ref: "#/components/schemas/tfvCallbackStatusEnum"
        internalTicketNumber:
          description: Unique identifier (UUID) generated by Bandwidth to assist in
            tracking the verification status of a toll-free number.
          example: acde070d-8c4c-4f0d-9d8a-162843c10333
          type: string
      type: object
    blockedWebhook:
      properties:
        accountId:
          description: User's account ID.
          example: "1234567"
          type: string
        phoneNumber:
          description: Toll-free telephone number in E.164 format.
          example: "+18005555555"
          maxLength: 12
          minLength: 12
          nullable: false
          pattern: "^\\+1(800|833|844|855|866|877|888)[2-9]\\d{6}$"
          type: string
        status:
          $ref: "#/components/schemas/tfvCallbackStatusEnum"
        internalTicketNumber:
          description: Unique identifier (UUID) generated by Bandwidth to assist in
            tracking the verification status of a toll-free number.
          example: acde070d-8c4c-4f0d-9d8a-162843c10333
          type: string
        blocked:
          description: Whether a Toll-Free Verification is blocked. This attribute
            will only be defined when the number is blocked.
          example: true
          type: boolean
        blockedReason:
          description: The reason why the Toll-Free Verification is blocked. This
            attribute will only be defined when the number is blocked.
          example: Toll-free number was used to send spam messages
          type: string
      type: object
    tfvSubmissionWrapper:
      properties:
        submission:
          $ref: "#/components/schemas/verificationUpdateRequest"
      type: object
    address:
      example:
        zip: "27606"
        addr2: 2230 Bandmate Way
        addr1: 2230 Bandmate Way
        city: Raleigh
        name: Bandwidth Inc.
        state: NC
        url: https://www.example.com/path/to/resource
      nullable: false
      properties:
        name:
          description: The name of the business using the toll-free number.
          example: Bandwidth Inc.
          maxLength: 500
          minLength: 1
          nullable: false
          type: string
        addr1:
          description: The address of the business using the toll-free number.
          example: 2230 Bandmate Way
          maxLength: 500
          minLength: 1
          nullable: false
          type: string
        addr2:
          description: The address of the business using the toll-free number.
          example: 2230 Bandmate Way
          maxLength: 500
          minLength: 0
          nullable: true
          type: string
        city:
          description: The city of the business using the toll-free number.
          example: Raleigh
          maxLength: 500
          minLength: 1
          nullable: false
          type: string
        state:
          description: The state of the business using the toll-free number.
          example: NC
          maxLength: 500
          minLength: 1
          nullable: false
          type: string
        zip:
          description: The zip of the business using the toll-free number.
          example: "27606"
          nullable: false
          pattern: "[- A-Za-z0-9]{0,500}"
          type: string
        url:
          description: The website of the business using the toll-free number.
          example: https://www.example.com/path/to/resource
          format: url
          maxLength: 500
          minLength: 1
          nullable: false
          type: string
      required:
      - addr1
      - city
      - name
      - state
      - url
      - zip
      type: object
    additionalInformation:
      description: Any additional information.
      example: Any additional information
      maxLength: 500
      minLength: 0
      nullable: true
      type: string
    optInWorkflow:
      example:
        imageUrls:
        - https://www.example.com/path/to/resource
        - https://www.example.com/path/to/resource
        confirmationResponse: Thank you for opting in!
        description: Opt In Flow
      nullable: false
      properties:
        description:
          example: Opt In Flow
          maxLength: 500
          minLength: 1
          nullable: false
          type: string
        imageUrls:
          items:
            example: https://www.example.com/path/to/resource
            maxLength: 500
            minLength: 1
            nullable: false
            pattern: "^$|(https?:\\/\\/)?(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,253}\\\
              .[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+.~#()?&//=]*)"
            type: string
          type: array
        confirmationResponse:
          example: Thank you for opting in!
          maxLength: 500
          minLength: 0
          nullable: true
          type: string
      required:
      - description
      - imageUrls
      type: object
    isvReseller:
      description: ISV name.
      example: Test ISV
      maxLength: 500
      minLength: 0
      nullable: true
      type: string
    contact:
      example:
        firstName: John
        lastName: Doe
        phoneNumber: "+19192654500"
        email: foo@bar.com
      nullable: false
      properties:
        firstName:
          description: The first name of the business contact using the toll-free
            number.
          example: John
          maxLength: 500
          minLength: 1
          nullable: false
          type: string
        lastName:
          description: The last name of the business contact using the toll-free number.
          example: Doe
          maxLength: 500
          minLength: 1
          nullable: false
          type: string
        email:
          example: foo@bar.com
          format: email
          maxLength: 500
          minLength: 0
          nullable: false
          pattern: "^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"\
            (?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\\
            [\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\\
            .)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\\\
            .){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\\\
            x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\\
            x0b\\x0c\\x0e-\\x7f])+)\\])$"
          type: string
        phoneNumber:
          description: Contact telephone number
          example: "+19192654500"
          maxLength: 500
          minLength: 1
          nullable: false
          type: string
      required:
      - email
      - firstName
      - lastName
      - phoneNumber
      type: object
    email:
      example: foo@bar.com
      format: email
      maxLength: 500
      minLength: 0
      nullable: false
      pattern: "^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"\
        (?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\\
        x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\\
        [(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\\\
        x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\\
        x0c\\x0e-\\x7f])+)\\])$"
      type: string
    useCases:
      example:
      - 2FA
      - App Notifications
      - Appointments
      - Auctions
      - Auto Repair Services
      - Bank Transfers
      - Billing
      - Booking Confirmations
      - Business Updates
      - COVID-19 Alerts
      items:
        type: string
      type: array
    useCase:
      description: The category of the use case.
      example: 2FA
      maxLength: 500
      minLength: 0
      type: string
    useCaseSummary:
      description: A general idea of the use case and customer.
      example: Text summarizing the use case for the toll-free number
      maxLength: 500
      minLength: 0
      nullable: false
      type: string
    productionMessageContent:
      description: Example of message content.
      example: Production message content
      maxLength: 500
      minLength: 0
      nullable: false
      type: string
    webhookSubscriptionsListBody:
      description: A list of all webhook subscriptions registered for this account
        ID for this particular feature (unpaginated).
      example:
        data:
        - accountId: "1234567"
          createdDate: 2023-05-15T13:56:39.965Z
          modifiedDate: 2023-05-15T13:56:39.965Z
          callbackUrl: https://www.example.com/path/to/resource
          id: 7hICGStfAfeGxEq3N0lQwO
          type: TOLLFREE_VERIFICATION_STATUS
          basicAuthentication:
            password: password
            username: username
        - accountId: "1234567"
          createdDate: 2023-05-15T13:56:39.965Z
          modifiedDate: 2023-05-15T13:56:39.965Z
          callbackUrl: https://www.example.com/path/to/resource
          id: 7hICGStfAfeGxEq3N0lQwO
          type: TOLLFREE_VERIFICATION_STATUS
          basicAuthentication:
            password: password
            username: username
        links:
          next: next
          previous: previous
          last: last
          first: first
        errors:
        - code: 0
          telephoneNumbers:
          - telephoneNumber: telephoneNumber
          - telephoneNumber: telephoneNumber
          description: description
        - code: 0
          telephoneNumbers:
          - telephoneNumber: telephoneNumber
          - telephoneNumber: telephoneNumber
          description: description
      properties:
        links:
          $ref: "#/components/schemas/linksObject"
        errors:
          items:
            $ref: "#/components/schemas/error"
          type: array
        data:
          items:
            $ref: "#/components/schemas/webhookSubscription"
          type: array
      required:
      - data
      type: object
    linksObject:
      example:
        next: next
        previous: previous
        last: last
        first: first
      properties:
        first:
          description: The first (or only) page of results matching the query.
          type: string
        next:
          description: "If more results exist than specified by 'size', this link\
            \ returns the next page of 'size' results."
          type: string
        previous:
          description: "If the results are more than one page, this link returns the\
            \ previous page of 'size' results."
          type: string
        last:
          description: "If more results exist than specified by 'size', this link\
            \ return the last page of result."
          type: string
      type: object
    error:
      example:
        code: 0
        telephoneNumbers:
        - telephoneNumber: telephoneNumber
        - telephoneNumber: telephoneNumber
        description: description
      properties:
        code:
          type: integer
        description:
          type: string
        telephoneNumbers:
          items:
            $ref: "#/components/schemas/telephoneNumber"
          type: array
      type: object
    telephoneNumber:
      example:
        telephoneNumber: telephoneNumber
      properties:
        telephoneNumber:
          description: Simple Telephone Number.
          type: string
      type: object
    webhookSubscriptionTypeEnum:
      enum:
      - TOLLFREE_VERIFICATION_STATUS
      - MESSAGING_PORTOUT_APPROVAL_STATUS
      example: TOLLFREE_VERIFICATION_STATUS
      type: string
    webhookSubscription:
      description: Information about a webhook that Bandwidth should send upon the
        completion of event customer has subscribed to.
      example:
        accountId: "1234567"
        createdDate: 2023-05-15T13:56:39.965Z
        modifiedDate: 2023-05-15T13:56:39.965Z
        callbackUrl: https://www.example.com/path/to/resource
        id: 7hICGStfAfeGxEq3N0lQwO
        type: TOLLFREE_VERIFICATION_STATUS
        basicAuthentication:
          password: password
          username: username
      properties:
        id:
          example: 7hICGStfAfeGxEq3N0lQwO
          type: string
        accountId:
          example: "1234567"
          type: string
        callbackUrl:
          description: "Callback URL to receive status updates from Bandwidth. When\
            \ a webhook subscription is registered with Bandwidth under a given account\
            \ ID, it will be used to send status updates for all requests submitted\
            \ under that account ID."
          example: https://www.example.com/path/to/resource
          format: url
          maxLength: 2000
          minLength: 0
          nullable: true
          pattern: "^$|(https?:\\/\\/)?(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,253}\\.[a-z]{2,6}\\\
            b([-a-zA-Z0-9@:%_\\+.~#()?&//=]*)"
          type: string
        type:
          $ref: "#/components/schemas/webhookSubscriptionTypeEnum"
        basicAuthentication:
          $ref: "#/components/schemas/webhookSubscription_basicAuthentication"
        createdDate:
          example: 2023-05-15T13:56:39.965Z
          format: date-time
          type: string
        modifiedDate:
          example: 2023-05-15T13:56:39.965Z
          format: date-time
          type: string
      required:
      - callbackUrl
      type: object
    webhookUrl:
      description: "Callback URL to receive status updates from Bandwidth. When a\
        \ webhook subscription is registered with Bandwidth under a given account\
        \ ID, it will be used to send status updates for all requests submitted under\
        \ that account ID."
      example: https://www.example.com/path/to/resource
      format: url
      maxLength: 2000
      minLength: 0
      nullable: true
      pattern: "^$|(https?:\\/\\/)?(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,253}\\.[a-z]{2,6}\\\
        b([-a-zA-Z0-9@:%_\\+.~#()?&//=]*)"
      type: string
    tfvError:
      description: A generic error object.
      example:
        description: Error Message
        type: Error Type
        errors:
          field: error message
      properties:
        type:
          example: Error Type
          type: string
        description:
          example: Error Message
          type: string
        errors:
          description: "Each key of this errors object refers to a field of the submitted\
            \ object (using dot notation for nested objects), with the field being\
            \ a key to an array of one or more errors for that field."
          example:
            field: error message
          type: object
      type: object
    tfvStatus:
      example:
        internalTicketNumber: acde070d-8c4c-4f0d-9d8a-162843c10333
        phoneNumber: "+18005555555"
        blocked: true
        blockedReason: Toll-free number was used to send spam messages
        resubmitAllowed: true
        createdDateTime: 2021-06-08T06:45:13Z
        modifiedDateTime: 2021-06-08T06:45:13Z
        submission:
          additionalInformation: Any additional information
          termsAndConditionsUrl: http://your-company.com/termsAndConditions
          businessDba: Another Company Name Inc.
          businessContact:
            firstName: John
            lastName: Doe
            phoneNumber: "+19192654500"
            email: foo@bar.com
          messageVolume: 10000
          businessEntityType: SOLE_PROPRIETOR
          businessRegistrationType: EIN
          privacyPolicyUrl: http://your-company.com/privacyPolicy
          optInWorkflow:
            imageUrls:
            - https://www.example.com/path/to/resource
            - https://www.example.com/path/to/resource
            confirmationResponse: Thank you for opting in!
            description: Opt In Flow
          useCase: 2FA
          isvReseller: Test ISV
          businessRegistrationNumber: 12-3456789
          productionMessageContent: Production message content
          businessAddress:
            zip: "27606"
            addr2: 2230 Bandmate Way
            addr1: 2230 Bandmate Way
            city: Raleigh
            name: Bandwidth Inc.
            state: NC
            url: https://www.example.com/path/to/resource
          useCaseSummary: Text summarizing the use case for the toll-free number
        declineReasonDescription: Invalid Information - Can't Validate URL - Website
          is not accessible / not available
        cvToken: cv.user123|sess456|mno|tfree|read_write|X7yZ9aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVw
        status: VERIFIED
      properties:
        phoneNumber:
          description: Toll-free telephone number in E.164 format.
          example: "+18005555555"
          maxLength: 12
          minLength: 12
          nullable: false
          pattern: "^\\+1(800|833|844|855|866|877|888)[2-9]\\d{6}$"
          type: string
        status:
          $ref: "#/components/schemas/tfvStatusEnum"
        internalTicketNumber:
          description: Unique identifier (UUID) generated by Bandwidth to assist in
            tracking the verification status of a toll-free number - included in all
            webhook payloads.
          example: acde070d-8c4c-4f0d-9d8a-162843c10333
          type: string
        declineReasonDescription:
          description: Explanation for why a verification request was declined.
          example: Invalid Information - Can't Validate URL - Website is not accessible
            / not available
          nullable: false
          type: string
        resubmitAllowed:
          description: Whether a Toll-Free Verification request qualifies for resubmission
            via PUT.
          example: true
          type: boolean
        createdDateTime:
          description: Date and time the verification request was created.
          example: 2021-06-08T06:45:13Z
          format: date-time
          type: string
        modifiedDateTime:
          description: Date and time the verification request was last modified.
          example: 2021-06-08T06:45:13Z
          format: date-time
          type: string
        submission:
          $ref: "#/components/schemas/tfvSubmissionInfo"
        blocked:
          description: Whether a Toll-Free Verification is blocked. This attribute
            will only be defined when the number is blocked.
          example: true
          type: boolean
        blockedReason:
          description: The reason why the Toll-Free Verification is blocked. This
            attribute will only be defined when the number is blocked.
          example: Toll-free number was used to send spam messages
          type: string
        cvToken:
          description: "The token provided by Campaign Verify to validate your political\
            \ use case. Only required for 527 political organizations. If you are\
            \ not a 527 political organization, this field should be omitted. If you\
            \ pass an empty string, it will be passed along and potentially rejected."
          example: cv.user123|sess456|mno|tfree|read_write|X7yZ9aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVw
          maxLength: 500
          minLength: 0
          nullable: true
          type: string
      type: object
    tfvSubmissionInfo:
      example:
        additionalInformation: Any additional information
        termsAndConditionsUrl: http://your-company.com/termsAndConditions
        businessDba: Another Company Name Inc.
        businessContact:
          firstName: John
          lastName: Doe
          phoneNumber: "+19192654500"
          email: foo@bar.com
        messageVolume: 10000
        businessEntityType: SOLE_PROPRIETOR
        businessRegistrationType: EIN
        privacyPolicyUrl: http://your-company.com/privacyPolicy
        optInWorkflow:
          imageUrls:
          - https://www.example.com/path/to/resource
          - https://www.example.com/path/to/resource
          confirmationResponse: Thank you for opting in!
          description: Opt In Flow
        useCase: 2FA
        isvReseller: Test ISV
        businessRegistrationNumber: 12-3456789
        productionMessageContent: Production message content
        businessAddress:
          zip: "27606"
          addr2: 2230 Bandmate Way
          addr1: 2230 Bandmate Way
          city: Raleigh
          name: Bandwidth Inc.
          state: NC
          url: https://www.example.com/path/to/resource
        useCaseSummary: Text summarizing the use case for the toll-free number
      properties:
        businessAddress:
          $ref: "#/components/schemas/address"
        businessContact:
          $ref: "#/components/schemas/contact"
        messageVolume:
          description: Estimated monthly volume of messages from the toll-free number.
          example: 10000
          maximum: 10000000
          minimum: 10
          type: integer
        useCase:
          description: The category of the use case.
          example: 2FA
          maxLength: 500
          minLength: 0
          type: string
        useCaseSummary:
          description: A general idea of the use case and customer.
          example: Text summarizing the use case for the toll-free number
          maxLength: 500
          minLength: 0
          nullable: false
          type: string
        productionMessageContent:
          description: Example of message content.
          example: Production message content
          maxLength: 500
          minLength: 0
          nullable: false
          type: string
        optInWorkflow:
          $ref: "#/components/schemas/optInWorkflow"
        additionalInformation:
          description: Any additional information.
          example: Any additional information
          maxLength: 500
          minLength: 0
          nullable: true
          type: string
        isvReseller:
          description: ISV name.
          example: Test ISV
          maxLength: 500
          minLength: 0
          nullable: true
          type: string
        privacyPolicyUrl:
          description: The Toll-Free Verification request privacy policy URL.
          example: http://your-company.com/privacyPolicy
          type: string
        termsAndConditionsUrl:
          description: The Toll-Free Verification request terms and conditions policy
            URL.
          example: http://your-company.com/termsAndConditions
          type: string
        businessDba:
          description: The company 'Doing Business As'.
          example: Another Company Name Inc.
          type: string
        businessRegistrationNumber:
          description: "US Federal Tax ID Number (EIN) or Canada Business Number (CBN).\
            \ Optional until early 2026. If a value is provided for this field, a\
            \ value must be provided for `businessRegistrationType` and `businessEntityType`.\
            \ Available starting October 1st, 2025."
          example: 12-3456789
          maxLength: 500
          nullable: true
          type: string
        businessRegistrationType:
          $ref: "#/components/schemas/businessRegistrationTypeEnum"
        businessEntityType:
          $ref: "#/components/schemas/businessEntityTypeEnum"
      type: object
    tfvStatusEnum:
      enum:
      - VERIFIED
      - UNVERIFIED
      - PENDING
      example: VERIFIED
      type: string
    sharedSecretKey:
      description: An ASCII string submitted by the user as a shared secret key for
        generating an HMAC header for callbacks.
      example: This is my $3cret
      maxLength: 64
      minLength: 16
      nullable: true
      pattern: "^[ -~]{16,64}$"
      type: string
    cvToken:
      description: "The token provided by Campaign Verify to validate your political\
        \ use case. Only required for 527 political organizations. If you are not\
        \ a 527 political organization, this field should be omitted. If you pass\
        \ an empty string, it will be passed along and potentially rejected."
      example: cv.user123|sess456|mno|tfree|read_write|X7yZ9aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVw
      maxLength: 500
      minLength: 0
      nullable: true
      type: string
    rbmCardContent_media:
      allOf:
      - $ref: "#/components/schemas/rbmMessageContentFile"
      - properties:
          height:
            $ref: "#/components/schemas/rbmMediaHeightEnum"
        type: object
      required:
      - height
    multiChannelChannelListRBMObject_allOf_content:
      description: The content of the message.
      oneOf:
      - $ref: "#/components/schemas/rbmMessageContentText"
      - $ref: "#/components/schemas/rbmMessageMedia"
      - $ref: "#/components/schemas/rbmMessageContentRichCard"
    lookupErrorSchema_meta:
      example:
        code: 1001
        message: Invalid TNs
        phoneNumbers:
        - "+13992077164"
        - "+19196104424"
      properties:
        phoneNumbers:
          example:
          - "+13992077164"
          - "+19196104424"
          items:
            description: Phone number experiencing the error.
            type: string
          type: array
        message:
          description: Message describing the error
          example: Invalid TNs
          type: string
        code:
          description: Error code associated with the message
          example: 1001
          type: integer
      type: object
    createSyncLookupResponse_data:
      description: The phone number lookup response data
      example:
        requestId: 004223a0-8b17-41b1-bf81-20732adf5590
        results:
        - deactivationEvent: DEACTIVATED
          messagingProvider: Verizon Wireless
          deactivationDate: 2025-06-20 18:35
          latestMessageDeliveryStatus: ACTIVE
          phoneNumber: "+10072904498"
          countryCodeA3: USA
          initialMessageDeliveryStatusDate: 2025-06-20
          lineType: MOBILE
          deactivationReporter: deactivationReporter
          voiceProvider: Verizon Wireless
          latestMessageDeliveryStatusDate: 2025-06-21
        - deactivationEvent: DEACTIVATED
          messagingProvider: Verizon Wireless
          deactivationDate: 2025-06-20 18:35
          latestMessageDeliveryStatus: ACTIVE
          phoneNumber: "+10072904498"
          countryCodeA3: USA
          initialMessageDeliveryStatusDate: 2025-06-20
          lineType: MOBILE
          deactivationReporter: deactivationReporter
          voiceProvider: Verizon Wireless
          latestMessageDeliveryStatusDate: 2025-06-21
        status: COMPLETE
      properties:
        requestId:
          description: The phone number lookup request ID from Bandwidth.
          example: 004223a0-8b17-41b1-bf81-20732adf5590
          format: uuid
          type: string
        status:
          $ref: "#/components/schemas/completedLookupStatusEnum"
        results:
          description: The carrier information results for the specified telephone
            numbers.
          items:
            $ref: "#/components/schemas/lookupResult"
          type: array
      type: object
    createAsyncBulkLookupResponse_data:
      description: The phone number lookup response data
      example:
        requestId: 004223a0-8b17-41b1-bf81-20732adf5590
        status: COMPLETE
      properties:
        requestId:
          description: The phone number lookup request ID from Bandwidth.
          example: 004223a0-8b17-41b1-bf81-20732adf5590
          format: uuid
          type: string
        status:
          $ref: "#/components/schemas/inProgressLookupStatusEnum"
      type: object
    getAsyncBulkLookupResponse_data:
      description: The phone number lookup response data
      example:
        requestId: 004223a0-8b17-41b1-bf81-20732adf5590
        results:
        - deactivationEvent: DEACTIVATED
          messagingProvider: Verizon Wireless
          deactivationDate: 2025-06-20 18:35
          latestMessageDeliveryStatus: ACTIVE
          phoneNumber: "+10072904498"
          countryCodeA3: USA
          initialMessageDeliveryStatusDate: 2025-06-20
          lineType: MOBILE
          deactivationReporter: deactivationReporter
          voiceProvider: Verizon Wireless
          latestMessageDeliveryStatusDate: 2025-06-21
        - deactivationEvent: DEACTIVATED
          messagingProvider: Verizon Wireless
          deactivationDate: 2025-06-20 18:35
          latestMessageDeliveryStatus: ACTIVE
          phoneNumber: "+10072904498"
          countryCodeA3: USA
          initialMessageDeliveryStatusDate: 2025-06-20
          lineType: MOBILE
          deactivationReporter: deactivationReporter
          voiceProvider: Verizon Wireless
          latestMessageDeliveryStatusDate: 2025-06-21
        status: COMPLETE
      properties:
        requestId:
          description: The phone number lookup request ID from Bandwidth.
          example: 004223a0-8b17-41b1-bf81-20732adf5590
          format: uuid
          type: string
        status:
          $ref: "#/components/schemas/inProgressLookupStatusEnum"
        results:
          description: The carrier information results for the specified telephone
            number.
          items:
            $ref: "#/components/schemas/lookupResult"
          type: array
      type: object
    webhookSubscription_basicAuthentication:
      description: "Basic authentication credentials are not required, but if present,\
        \ both username and password must be provided."
      example:
        password: password
        username: username
      properties:
        username:
          maxLength: 100
          type: string
        password:
          maxLength: 200
          type: string
      required:
      - password
      - username
      type: object
  securitySchemes:
    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==`
      scheme: basic
      type: http
    OAuth2:
      flows:
        clientCredentials:
          scopes: {}
          tokenUrl: https://api.bandwidth.com/api/v1/oauth2/token
      type: oauth2

