openapi: 3.0.3
info:
  title: Voice
  version: 4.1.0
  contact:
    name: Bandwidth
    url: https://support.bandwidth.com
    email: support@bandwidth.com
  termsOfService: https://www.bandwidth.com/legal/terms-of-use-bandwidthcom-web-sites/
  description: |-
    The API Specification for Bandwidth's Programmable Voice Platform

    ## Base URL

    `https://voice.bandwidth.com/api/v2`
servers:
  - url: https://voice.bandwidth.com/api/v2
    description: Production
paths:
  /accounts/{accountId}/calls:
    post:
      tags:
        - Calls
      summary: Create Call
      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:
        - $ref: '#/components/parameters/accountId'
      requestBody:
        $ref: '#/components/requestBodies/createCallRequest'
      responses:
        '201':
          $ref: '#/components/responses/createCallResponse'
        '400':
          $ref: '#/components/responses/voiceBadRequestError'
        '401':
          $ref: '#/components/responses/voiceUnauthorizedError'
        '403':
          $ref: '#/components/responses/voiceForbiddenError'
        '404':
          $ref: '#/components/responses/voiceNotFoundError'
        '405':
          $ref: '#/components/responses/voiceNotAllowedError'
        '415':
          $ref: '#/components/responses/voiceUnsupportedMediaTypeError'
        '429':
          $ref: '#/components/responses/voiceTooManyRequestsError'
        '500':
          $ref: '#/components/responses/voiceInternalServerError'
      x-codeSamples:
        - lang: cURL
          source: |-
            curl 'https://voice.bandwidth.com/api/v2/accounts/9900000/calls' \
              -H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
              -H 'Content-Type: application/json' \
              -H 'Accept: application/json' \
              -d '{
                "answerUrl": "https://www.myCallbackServer.example/webhooks/answer",
                "applicationId": "1234-qwer-5679-tyui",
                "from": "+15555551212",
                "to": "+19195551234",
                "privacy": false,
                "displayName": "John Doe",
                "uui": "eyJhbGciOiJIUzI1NiJ9.WyJoaSJd.-znkjYyCkgz4djmHUPSXl9YrJ6Nix_XvmlwKGFh5ERM;encoding=jwt,aGVsbG8gd29ybGQ;encoding=base64",
                "answerMethod": "POST",
                "username": "mySecretUsername",
                "password": "mySecretPassword1!",
                "answerFallbackUrl": "https://www.myFallbackServer.example/webhooks/answer",
                "answerFallbackMethod": "POST",
                "fallbackUsername": "mySecretUsername",
                "fallbackPassword": "mySecretPassword1!",
                "disconnectUrl": "https://www.myCallbackServer.example/webhooks/disconnect",
                "disconnectMethod": "POST",
                "callTimeout": 30,
                "callbackTimeout": 15,
                "machineDetection": {
                  "mode": "async",
                  "detectionTimeout": 15,
                  "silenceTimeout": 10,
                  "speechThreshold": 10,
                  "speechEndThreshold": 5,
                  "machineSpeechEndThreshold": 5,
                  "delayResult": false,
                  "callbackUrl": "https://myServer.example/bandwidth/webhooks/machineDetectionComplete",
                  "callbackMethod": "POST",
                  "username": "mySecretUsername",
                  "password": "mySecretPassword1!",
                  "fallbackUrl": "https://myFallbackServer.example/bandwidth/webhooks/machineDetectionComplete",
                  "fallbackMethod": "POST",
                  "fallbackUsername": "mySecretUsername",
                  "fallbackPassword": "mySecretPassword1!"
                },
                "priority": 5,
                "tag": "arbitrary text here"
              }'
        - lang: C#
          source: |
            using System.Collections.Generic;
            using System.Diagnostics;
            using Bandwidth.Standard.Api;
            using Bandwidth.Standard.Client;
            using Bandwidth.Standard.Model;

            namespace Example
            {
                public class CreateCallExample
                {
                    public static void Main()
                    {
                        Configuration config = new Configuration();
                        config.BasePath = "http://localhost";
                        // Configure HTTP basic authorization: Basic
                        config.Username = "YOUR_USERNAME";
                        config.Password = "YOUR_PASSWORD";

                        var apiInstance = new CallsApi(config);
                        var accountId = 9900000;  // string | Your Bandwidth Account ID.
                        var createCall = new CreateCall(); // CreateCall | JSON object containing information to create an outbound call

                        try
                        {
                            // Create Call
                            CreateCallResponse result = apiInstance.CreateCall(accountId, createCall);
                            Debug.WriteLine(result);
                        }
                        catch (ApiException  e)
                        {
                            Debug.Print("Exception when calling CallsApi.CreateCall: " + e.Message);
                            Debug.Print("Status Code: " + e.ErrorCode);
                            Debug.Print(e.StackTrace);
                        }
                    }
                }
            }
        - lang: Java
          source: |
            // Import classes:
            import com.bandwidth.sdk.ApiClient;
            import com.bandwidth.sdk.ApiException;
            import com.bandwidth.sdk.Configuration;
            import com.bandwidth.sdk.auth.*;
            import com.bandwidth.sdk.models.*;
            import com.bandwidth.sdk.api.CallsApi;

            public class Example {
              public static void main(String[] args) {
                ApiClient defaultClient = Configuration.getDefaultApiClient();
                defaultClient.setBasePath("http://localhost");
                
                // Configure HTTP basic authorization: Basic
                HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
                Basic.setUsername("YOUR USERNAME");
                Basic.setPassword("YOUR PASSWORD");

                CallsApi apiInstance = new CallsApi(defaultClient);
                String accountId = "9900000"; // String | Your Bandwidth Account ID.
                CreateCall createCall = new CreateCall(); // CreateCall | JSON object containing information to create an outbound call
                try {
                  CreateCallResponse result = apiInstance.createCall(accountId, createCall);
                  System.out.println(result);
                } catch (ApiException e) {
                  System.err.println("Exception when calling CallsApi#createCall");
                  System.err.println("Status code: " + e.getCode());
                  System.err.println("Reason: " + e.getResponseBody());
                  System.err.println("Response headers: " + e.getResponseHeaders());
                  e.printStackTrace();
                }
              }
            }
        - lang: PHP
          source: |
            <?php
              
            require "vendor/autoload.php";

            api-username = "api-username";
            api-password = "api-pasword";
            12345 = "12345";
            1234-qwer = "1234-qwer";
            +15554443333 = "+15554443333";
            +15553334444 = "+15553334444";
            $VOICE_CALLBACK_URL = "https://sample.com";

            $config = new BandwidthLib\Configuration(
                array(
                    'voiceBasicAuthUserName' => $BW_USERNAME,
                    'voiceBasicAuthPassword' => $BW_PASSWORD,
                )
            );
            $client = new BandwidthLib\BandwidthClient($config);

            $voiceClient = $client->getVoice()->getClient();

            $body = new BandwidthLib\Voice\Models\CreateCallRequest();
            $body->from = $BW_NUMBER;
            $body->to = $USER_NUMBER;
            $body->answerUrl = $VOICE_CALLBACK_URL;
            $body->applicationId = $BW_VOICE_APPLICATION_ID;

            try {
                $response = $voiceClient->createCall($BW_ACCOUNT_ID, $body);
                print_r($response->getResult()->callId);
            } catch (BandwidthLib\APIException $e) {
                print_r($e->getResponseCode());
            } 
        - lang: Python
          source: >
            import bandwidth

            from bandwidth.models.create_call import CreateCall

            from bandwidth.models.create_call_response import CreateCallResponse

            from bandwidth.rest import ApiException

            from pprint import pprint


            # Defining the host is optional and defaults to http://localhost

            # See configuration.py for a list of all supported configuration
            parameters.

            configuration = bandwidth.Configuration(
                host = "http://localhost"
            )


            # The client must configure the authentication and authorization
            parameters

            # in accordance with the API server security policy.

            # Examples for each auth method are provided below, use the example
            that

            # satisfies your auth use case.


            # Configure HTTP basic authorization: Basic

            configuration = bandwidth.Configuration(
                username = os.environ["USERNAME"],
                password = os.environ["PASSWORD"]
            )


            # Enter a context with an instance of the API client

            with bandwidth.ApiClient(configuration) as api_client:
                # Create an instance of the API class
                api_instance = bandwidth.CallsApi(api_client)
                account_id = '9900000' # str | Your Bandwidth Account ID.
                create_call = bandwidth.CreateCall() # CreateCall | JSON object containing information to create an outbound call

                try:
                    # Create Call
                    api_response = api_instance.create_call(account_id, create_call)
                    print("The response of CallsApi->create_call:\n")
                    pprint(api_response)
                except Exception as e:
                    print("Exception when calling CallsApi->create_call: %s\n" % e)
        - lang: Ruby
          source: >
            require 'time'

            require 'bandwidth-sdk'

            # setup authorization

            Bandwidth.configure do |config|
              # Configure HTTP basic authorization: Basic
              config.username = 'YOUR USERNAME'
              config.password = 'YOUR PASSWORD'
            end


            api_instance = Bandwidth::CallsApi.new

            account_id = '9900000' # String | Your Bandwidth Account ID.

            create_call = Bandwidth::CreateCall.new({to: '+19195551234', from:
            '+15555551212', application_id: '1234-qwer-5679-tyui', answer_url:
            'https://www.myCallbackServer.example/webhooks/answer'}) #
            CreateCall | JSON object containing information to create an
            outbound call


            begin
              # Create Call
              result = api_instance.create_call(account_id, create_call)
              p result
            rescue Bandwidth::ApiError => e
              puts "Error when calling CallsApi->create_call: #{e}"
            end
        - lang: TypeScript
          source: >
            import {
                CallsApi,
                Configuration,
                CreateCall
            } from 'bandwidth-sdk';


            const configuration = new Configuration();

            const apiInstance = new CallsApi(configuration);


            let accountId: string; //Your Bandwidth Account ID. (default to
            undefined)

            let createCall: CreateCall; //JSON object containing information to
            create an outbound call


            const { status, data } = await apiInstance.createCall(
                accountId,
                createCall
            );
    get:
      tags:
        - Calls
      summary: Get Calls
      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:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/to'
        - $ref: '#/components/parameters/from'
        - $ref: '#/components/parameters/minStartTimeCalls'
        - $ref: '#/components/parameters/maxStartTimeCalls'
        - $ref: '#/components/parameters/disconnectCause'
        - $ref: '#/components/parameters/pageSizeCalls'
        - $ref: '#/components/parameters/pageToken'
      responses:
        '200':
          $ref: '#/components/responses/listCallsResponse'
        '400':
          $ref: '#/components/responses/voiceBadRequestError'
        '401':
          $ref: '#/components/responses/voiceUnauthorizedError'
        '403':
          $ref: '#/components/responses/voiceForbiddenError'
        '404':
          $ref: '#/components/responses/voiceNotFoundError'
        '405':
          $ref: '#/components/responses/voiceNotAllowedError'
        '415':
          $ref: '#/components/responses/voiceUnsupportedMediaTypeError'
        '429':
          $ref: '#/components/responses/voiceTooManyRequestsError'
        '500':
          $ref: '#/components/responses/voiceInternalServerError'
      x-codeSamples:
        - lang: cURL
          source: >-
            curl
            'https://voice.bandwidth.com/api/v2/accounts/9900000/calls?to=%2b19195551234&from=%2b19195554321&minStartTime=2022-06-21T19%3A13%3A21Z&maxStartTime=2022-06-21T19%3A13%3A21Z&disconnectCause=hangup&pageSize=500&pageToken=eyJwYWdlVG9rZW4iOiJ0b2tlbiJ9'
            \
              -H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
              -H 'Accept: application/json'
        - lang: C#
          source: |
            using System.Collections.Generic;
            using System.Diagnostics;
            using Bandwidth.Standard.Api;
            using Bandwidth.Standard.Client;
            using Bandwidth.Standard.Model;

            namespace Example
            {
                public class ListCallsExample
                {
                    public static void Main()
                    {
                        Configuration config = new Configuration();
                        config.BasePath = "http://localhost";
                        // Configure HTTP basic authorization: Basic
                        config.Username = "YOUR_USERNAME";
                        config.Password = "YOUR_PASSWORD";

                        var apiInstance = new CallsApi(config);
                        var accountId = 9900000;  // string | Your Bandwidth Account ID.
                        var to = %2b19195551234;  // string | Filter results by the `to` field. (optional) 
                        var from = %2b19195554321;  // string | Filter results by the `from` field. (optional) 
                        var minStartTime = 2022-06-21T19:13:21Z;  // string | Filter results to calls which have a `startTime` after or including `minStartTime` (in ISO8601 format). (optional) 
                        var maxStartTime = 2022-06-21T19:13:21Z;  // string | Filter results to calls which have a `startTime` before or including `maxStartTime` (in ISO8601 format). (optional) 
                        var disconnectCause = hangup;  // string | Filter results to calls with specified call Disconnect Cause. (optional) 
                        var pageSize = 500;  // int? | Specifies the max number of calls that will be returned. (optional)  (default to 1000)
                        var pageToken = eyJwYWdlVG9rZW4iOiJ0b2tlbiJ9;  // string | Not intended for explicit use. To use pagination, follow the links in the `Link` header of the response, as indicated in the endpoint description. (optional) 

                        try
                        {
                            // Get Calls
                            List<CallState> result = apiInstance.ListCalls(accountId, to, from, minStartTime, maxStartTime, disconnectCause, pageSize, pageToken);
                            Debug.WriteLine(result);
                        }
                        catch (ApiException  e)
                        {
                            Debug.Print("Exception when calling CallsApi.ListCalls: " + e.Message);
                            Debug.Print("Status Code: " + e.ErrorCode);
                            Debug.Print(e.StackTrace);
                        }
                    }
                }
            }
        - lang: Java
          source: |
            // Import classes:
            import com.bandwidth.sdk.ApiClient;
            import com.bandwidth.sdk.ApiException;
            import com.bandwidth.sdk.Configuration;
            import com.bandwidth.sdk.auth.*;
            import com.bandwidth.sdk.models.*;
            import com.bandwidth.sdk.api.CallsApi;

            public class Example {
              public static void main(String[] args) {
                ApiClient defaultClient = Configuration.getDefaultApiClient();
                defaultClient.setBasePath("http://localhost");
                
                // Configure HTTP basic authorization: Basic
                HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
                Basic.setUsername("YOUR USERNAME");
                Basic.setPassword("YOUR PASSWORD");

                CallsApi apiInstance = new CallsApi(defaultClient);
                String accountId = "9900000"; // String | Your Bandwidth Account ID.
                String to = "%2b19195551234"; // String | Filter results by the `to` field.
                String from = "%2b19195554321"; // String | Filter results by the `from` field.
                String minStartTime = "2022-06-21T19:13:21Z"; // String | Filter results to calls which have a `startTime` after or including `minStartTime` (in ISO8601 format).
                String maxStartTime = "2022-06-21T19:13:21Z"; // String | Filter results to calls which have a `startTime` before or including `maxStartTime` (in ISO8601 format).
                String disconnectCause = "hangup"; // String | Filter results to calls with specified call Disconnect Cause.
                Integer pageSize = 1000; // Integer | Specifies the max number of calls that will be returned.
                String pageToken = "eyJwYWdlVG9rZW4iOiJ0b2tlbiJ9"; // String | Not intended for explicit use. To use pagination, follow the links in the `Link` header of the response, as indicated in the endpoint description.
                try {
                  List<CallState> result = apiInstance.listCalls(accountId, to, from, minStartTime, maxStartTime, disconnectCause, pageSize, pageToken);
                  System.out.println(result);
                } catch (ApiException e) {
                  System.err.println("Exception when calling CallsApi#listCalls");
                  System.err.println("Status code: " + e.getCode());
                  System.err.println("Reason: " + e.getResponseBody());
                  System.err.println("Response headers: " + e.getResponseHeaders());
                  e.printStackTrace();
                }
              }
            }
        - lang: Python
          source: >
            import bandwidth

            from bandwidth.models.call_state import CallState

            from bandwidth.rest import ApiException

            from pprint import pprint


            # Defining the host is optional and defaults to http://localhost

            # See configuration.py for a list of all supported configuration
            parameters.

            configuration = bandwidth.Configuration(
                host = "http://localhost"
            )


            # The client must configure the authentication and authorization
            parameters

            # in accordance with the API server security policy.

            # Examples for each auth method are provided below, use the example
            that

            # satisfies your auth use case.


            # Configure HTTP basic authorization: Basic

            configuration = bandwidth.Configuration(
                username = os.environ["USERNAME"],
                password = os.environ["PASSWORD"]
            )


            # Enter a context with an instance of the API client

            with bandwidth.ApiClient(configuration) as api_client:
                # Create an instance of the API class
                api_instance = bandwidth.CallsApi(api_client)
                account_id = '9900000' # str | Your Bandwidth Account ID.
                to = '%2b19195551234' # str | Filter results by the `to` field. (optional)
                var_from = '%2b19195554321' # str | Filter results by the `from` field. (optional)
                min_start_time = '2022-06-21T19:13:21Z' # str | Filter results to calls which have a `startTime` after or including `minStartTime` (in ISO8601 format). (optional)
                max_start_time = '2022-06-21T19:13:21Z' # str | Filter results to calls which have a `startTime` before or including `maxStartTime` (in ISO8601 format). (optional)
                disconnect_cause = 'hangup' # str | Filter results to calls with specified call Disconnect Cause. (optional)
                page_size = 1000 # int | Specifies the max number of calls that will be returned. (optional) (default to 1000)
                page_token = 'eyJwYWdlVG9rZW4iOiJ0b2tlbiJ9' # str | Not intended for explicit use. To use pagination, follow the links in the `Link` header of the response, as indicated in the endpoint description. (optional)

                try:
                    # Get Calls
                    api_response = api_instance.list_calls(account_id, to=to, var_from=var_from, min_start_time=min_start_time, max_start_time=max_start_time, disconnect_cause=disconnect_cause, page_size=page_size, page_token=page_token)
                    print("The response of CallsApi->list_calls:\n")
                    pprint(api_response)
                except Exception as e:
                    print("Exception when calling CallsApi->list_calls: %s\n" % e)
        - lang: Ruby
          source: |
            require 'time'
            require 'bandwidth-sdk'
            # setup authorization
            Bandwidth.configure do |config|
              # Configure HTTP basic authorization: Basic
              config.username = 'YOUR USERNAME'
              config.password = 'YOUR PASSWORD'
            end

            api_instance = Bandwidth::CallsApi.new
            account_id = '9900000' # String | Your Bandwidth Account ID.
            opts = {
              to: '%2b19195551234', # String | Filter results by the `to` field.
              from: '%2b19195554321', # String | Filter results by the `from` field.
              min_start_time: '2022-06-21T19:13:21Z', # String | Filter results to calls which have a `startTime` after or including `minStartTime` (in ISO8601 format).
              max_start_time: '2022-06-21T19:13:21Z', # String | Filter results to calls which have a `startTime` before or including `maxStartTime` (in ISO8601 format).
              disconnect_cause: 'hangup', # String | Filter results to calls with specified call Disconnect Cause.
              page_size: 500, # Integer | Specifies the max number of calls that will be returned.
              page_token: 'eyJwYWdlVG9rZW4iOiJ0b2tlbiJ9' # String | Not intended for explicit use. To use pagination, follow the links in the `Link` header of the response, as indicated in the endpoint description.
            }

            begin
              # Get Calls
              result = api_instance.list_calls(account_id, opts)
              p result
            rescue Bandwidth::ApiError => e
              puts "Error when calling CallsApi->list_calls: #{e}"
            end
        - lang: TypeScript
          source: >
            import {
                CallsApi,
                Configuration
            } from 'bandwidth-sdk';


            const configuration = new Configuration();

            const apiInstance = new CallsApi(configuration);


            let accountId: string; //Your Bandwidth Account ID. (default to
            undefined)

            let to: string; //Filter results by the `to` field. (optional)
            (default to undefined)

            let from: string; //Filter results by the `from` field. (optional)
            (default to undefined)

            let minStartTime: string; //Filter results to calls which have a
            `startTime` after or including `minStartTime` (in ISO8601 format).
            (optional) (default to undefined)

            let maxStartTime: string; //Filter results to calls which have a
            `startTime` before or including `maxStartTime` (in ISO8601 format).
            (optional) (default to undefined)

            let disconnectCause: string; //Filter results to calls with
            specified call Disconnect Cause. (optional) (default to undefined)

            let pageSize: number; //Specifies the max number of calls that will
            be returned. (optional) (default to 1000)

            let pageToken: string; //Not intended for explicit use. To use
            pagination, follow the links in the `Link` header of the response,
            as indicated in the endpoint description. (optional) (default to
            undefined)


            const { status, data } = await apiInstance.listCalls(
                accountId,
                to,
                from,
                minStartTime,
                maxStartTime,
                disconnectCause,
                pageSize,
                pageToken
            );
  /accounts/{accountId}/calls/{callId}:
    get:
      tags:
        - Calls
      summary: Get Call State Information
      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:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/callId'
      responses:
        '200':
          $ref: '#/components/responses/getCallStateResponse'
        '400':
          $ref: '#/components/responses/voiceBadRequestError'
        '401':
          $ref: '#/components/responses/voiceUnauthorizedError'
        '403':
          $ref: '#/components/responses/voiceForbiddenError'
        '404':
          $ref: '#/components/responses/voiceNotFoundError'
        '405':
          $ref: '#/components/responses/voiceNotAllowedError'
        '415':
          $ref: '#/components/responses/voiceUnsupportedMediaTypeError'
        '429':
          $ref: '#/components/responses/voiceTooManyRequestsError'
        '500':
          $ref: '#/components/responses/voiceInternalServerError'
      x-codeSamples:
        - lang: cURL
          source: >-
            curl
            'https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85'
            \
              -H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
              -H 'Accept: application/json'
        - lang: C#
          source: |
            using System.Collections.Generic;
            using System.Diagnostics;
            using Bandwidth.Standard.Api;
            using Bandwidth.Standard.Client;
            using Bandwidth.Standard.Model;

            namespace Example
            {
                public class GetCallStateExample
                {
                    public static void Main()
                    {
                        Configuration config = new Configuration();
                        config.BasePath = "http://localhost";
                        // Configure HTTP basic authorization: Basic
                        config.Username = "YOUR_USERNAME";
                        config.Password = "YOUR_PASSWORD";

                        var apiInstance = new CallsApi(config);
                        var accountId = 9900000;  // string | Your Bandwidth Account ID.
                        var callId = c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85;  // string | Programmable Voice API Call ID.

                        try
                        {
                            // Get Call State Information
                            CallState result = apiInstance.GetCallState(accountId, callId);
                            Debug.WriteLine(result);
                        }
                        catch (ApiException  e)
                        {
                            Debug.Print("Exception when calling CallsApi.GetCallState: " + e.Message);
                            Debug.Print("Status Code: " + e.ErrorCode);
                            Debug.Print(e.StackTrace);
                        }
                    }
                }
            }
        - lang: Java
          source: |
            // Import classes:
            import com.bandwidth.sdk.ApiClient;
            import com.bandwidth.sdk.ApiException;
            import com.bandwidth.sdk.Configuration;
            import com.bandwidth.sdk.auth.*;
            import com.bandwidth.sdk.models.*;
            import com.bandwidth.sdk.api.CallsApi;

            public class Example {
              public static void main(String[] args) {
                ApiClient defaultClient = Configuration.getDefaultApiClient();
                defaultClient.setBasePath("http://localhost");
                
                // Configure HTTP basic authorization: Basic
                HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
                Basic.setUsername("YOUR USERNAME");
                Basic.setPassword("YOUR PASSWORD");

                CallsApi apiInstance = new CallsApi(defaultClient);
                String accountId = "9900000"; // String | Your Bandwidth Account ID.
                String callId = "c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Call ID.
                try {
                  CallState result = apiInstance.getCallState(accountId, callId);
                  System.out.println(result);
                } catch (ApiException e) {
                  System.err.println("Exception when calling CallsApi#getCallState");
                  System.err.println("Status code: " + e.getCode());
                  System.err.println("Reason: " + e.getResponseBody());
                  System.err.println("Response headers: " + e.getResponseHeaders());
                  e.printStackTrace();
                }
              }
            }
        - lang: PHP
          source: |
            <?php

            require "vendor/autoload.php";

            api-username = "api-username";
            api-password = "api-pasword";
            12345 = "12345";

            $config = new BandwidthLib\Configuration(
                array(
                    'voiceBasicAuthUserName' => $BW_USERNAME,
                    'voiceBasicAuthPassword' => $BW_PASSWORD,
                )
            );
            $client = new BandwidthLib\BandwidthClient($config);

            $voiceClient = $client->getVoice()->getClient();

            $callId = "c-1234";

            try {
                $response = $voiceClient->getCall($BW_ACCOUNT_ID, $callId);
                print_r($response->getResult()->state);
            } catch (BandwidthLib\APIException $e) {
                print_r($e->getResponseCode());
            }
        - lang: Python
          source: >
            import bandwidth

            from bandwidth.models.call_state import CallState

            from bandwidth.rest import ApiException

            from pprint import pprint


            # Defining the host is optional and defaults to http://localhost

            # See configuration.py for a list of all supported configuration
            parameters.

            configuration = bandwidth.Configuration(
                host = "http://localhost"
            )


            # The client must configure the authentication and authorization
            parameters

            # in accordance with the API server security policy.

            # Examples for each auth method are provided below, use the example
            that

            # satisfies your auth use case.


            # Configure HTTP basic authorization: Basic

            configuration = bandwidth.Configuration(
                username = os.environ["USERNAME"],
                password = os.environ["PASSWORD"]
            )


            # Enter a context with an instance of the API client

            with bandwidth.ApiClient(configuration) as api_client:
                # Create an instance of the API class
                api_instance = bandwidth.CallsApi(api_client)
                account_id = '9900000' # str | Your Bandwidth Account ID.
                call_id = 'c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # str | Programmable Voice API Call ID.

                try:
                    # Get Call State Information
                    api_response = api_instance.get_call_state(account_id, call_id)
                    print("The response of CallsApi->get_call_state:\n")
                    pprint(api_response)
                except Exception as e:
                    print("Exception when calling CallsApi->get_call_state: %s\n" % e)
        - lang: Ruby
          source: >
            require 'time'

            require 'bandwidth-sdk'

            # setup authorization

            Bandwidth.configure do |config|
              # Configure HTTP basic authorization: Basic
              config.username = 'YOUR USERNAME'
              config.password = 'YOUR PASSWORD'
            end


            api_instance = Bandwidth::CallsApi.new

            account_id = '9900000' # String | Your Bandwidth Account ID.

            call_id = 'c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # String
            | Programmable Voice API Call ID.


            begin
              # Get Call State Information
              result = api_instance.get_call_state(account_id, call_id)
              p result
            rescue Bandwidth::ApiError => e
              puts "Error when calling CallsApi->get_call_state: #{e}"
            end
        - lang: TypeScript
          source: >
            import {
                CallsApi,
                Configuration
            } from 'bandwidth-sdk';


            const configuration = new Configuration();

            const apiInstance = new CallsApi(configuration);


            let accountId: string; //Your Bandwidth Account ID. (default to
            undefined)

            let callId: string; //Programmable Voice API Call ID. (default to
            undefined)


            const { status, data } = await apiInstance.getCallState(
                accountId,
                callId
            );
    post:
      tags:
        - Calls
      summary: Update Call
      description: >-
        Interrupts and redirects a call to a different URL that should return a
        BXML document.
      operationId: updateCall
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/callId'
      requestBody:
        $ref: '#/components/requestBodies/updateCallRequest'
      responses:
        '200':
          $ref: '#/components/responses/updateCallResponse'
        '400':
          $ref: '#/components/responses/voiceBadRequestError'
        '401':
          $ref: '#/components/responses/voiceUnauthorizedError'
        '403':
          $ref: '#/components/responses/voiceForbiddenError'
        '404':
          $ref: '#/components/responses/voiceNotFoundError'
        '405':
          $ref: '#/components/responses/voiceNotAllowedError'
        '409':
          $ref: '#/components/responses/voiceConflictError'
        '415':
          $ref: '#/components/responses/voiceUnsupportedMediaTypeError'
        '429':
          $ref: '#/components/responses/voiceTooManyRequestsError'
        '500':
          $ref: '#/components/responses/voiceInternalServerError'
      x-codeSamples:
        - lang: cURL
          source: >-
            curl
            'https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85'
            \
              -H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
              -H 'Content-Type: application/json' \
              -H 'Accept: application/json' \
              -d '{
                "state": "completed",
                "redirectUrl": "https://myServer.example/bandwidth/webhooks/redirect",
                "redirectMethod": "POST",
                "username": "mySecretUsername",
                "password": "mySecretPassword1!",
                "redirectFallbackUrl": "https://myFallbackServer.example/bandwidth/webhooks/redirect",
                "redirectFallbackMethod": "POST",
                "fallbackUsername": "mySecretUsername",
                "fallbackPassword": "mySecretPassword1!",
                "tag": "My Custom Tag"
              }'
        - lang: C#
          source: |
            using System.Collections.Generic;
            using System.Diagnostics;
            using Bandwidth.Standard.Api;
            using Bandwidth.Standard.Client;
            using Bandwidth.Standard.Model;

            namespace Example
            {
                public class UpdateCallExample
                {
                    public static void Main()
                    {
                        Configuration config = new Configuration();
                        config.BasePath = "http://localhost";
                        // Configure HTTP basic authorization: Basic
                        config.Username = "YOUR_USERNAME";
                        config.Password = "YOUR_PASSWORD";

                        var apiInstance = new CallsApi(config);
                        var accountId = 9900000;  // string | Your Bandwidth Account ID.
                        var callId = c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85;  // string | Programmable Voice API Call ID.
                        var updateCall = new UpdateCall(); // UpdateCall | JSON object containing information to redirect an existing call to a new BXML document

                        try
                        {
                            // Update Call
                            apiInstance.UpdateCall(accountId, callId, updateCall);
                        }
                        catch (ApiException  e)
                        {
                            Debug.Print("Exception when calling CallsApi.UpdateCall: " + e.Message);
                            Debug.Print("Status Code: " + e.ErrorCode);
                            Debug.Print(e.StackTrace);
                        }
                    }
                }
            }
        - lang: Java
          source: |
            // Import classes:
            import com.bandwidth.sdk.ApiClient;
            import com.bandwidth.sdk.ApiException;
            import com.bandwidth.sdk.Configuration;
            import com.bandwidth.sdk.auth.*;
            import com.bandwidth.sdk.models.*;
            import com.bandwidth.sdk.api.CallsApi;

            public class Example {
              public static void main(String[] args) {
                ApiClient defaultClient = Configuration.getDefaultApiClient();
                defaultClient.setBasePath("http://localhost");
                
                // Configure HTTP basic authorization: Basic
                HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
                Basic.setUsername("YOUR USERNAME");
                Basic.setPassword("YOUR PASSWORD");

                CallsApi apiInstance = new CallsApi(defaultClient);
                String accountId = "9900000"; // String | Your Bandwidth Account ID.
                String callId = "c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Call ID.
                UpdateCall updateCall = new UpdateCall(); // UpdateCall | JSON object containing information to redirect an existing call to a new BXML document
                try {
                  apiInstance.updateCall(accountId, callId, updateCall);
                } catch (ApiException e) {
                  System.err.println("Exception when calling CallsApi#updateCall");
                  System.err.println("Status code: " + e.getCode());
                  System.err.println("Reason: " + e.getResponseBody());
                  System.err.println("Response headers: " + e.getResponseHeaders());
                  e.printStackTrace();
                }
              }
            }
        - lang: PHP
          source: |
            <?php

            require "vendor/autoload.php";

            api-username = "api-username";
            api-password = "api-pasword";
            12345 = "12345";

            $config = new BandwidthLib\Configuration(
                array(
                    'voiceBasicAuthUserName' => $BW_USERNAME,
                    'voiceBasicAuthPassword' => $BW_PASSWORD,
                )
            );
            $client = new BandwidthLib\BandwidthClient($config);

            $voiceClient = $client->getVoice()->getClient();

            $callId = "c-1234";

            $body = new BandwidthLib\Voice\Models\ModifyCallRequest();
            $body->redirectUrl = "http://www.myapp.com/new";
            $body->state = "active";

            try {
                $voiceClient->modifyCall($BW_ACCOUNT_ID, $callId, $body);
            } catch (BandwidthLib\APIException $e) {
                print_r($e->getResponseCode());
            }
        - lang: Python
          source: >
            import bandwidth

            from bandwidth.models.update_call import UpdateCall

            from bandwidth.rest import ApiException

            from pprint import pprint


            # Defining the host is optional and defaults to http://localhost

            # See configuration.py for a list of all supported configuration
            parameters.

            configuration = bandwidth.Configuration(
                host = "http://localhost"
            )


            # The client must configure the authentication and authorization
            parameters

            # in accordance with the API server security policy.

            # Examples for each auth method are provided below, use the example
            that

            # satisfies your auth use case.


            # Configure HTTP basic authorization: Basic

            configuration = bandwidth.Configuration(
                username = os.environ["USERNAME"],
                password = os.environ["PASSWORD"]
            )


            # Enter a context with an instance of the API client

            with bandwidth.ApiClient(configuration) as api_client:
                # Create an instance of the API class
                api_instance = bandwidth.CallsApi(api_client)
                account_id = '9900000' # str | Your Bandwidth Account ID.
                call_id = 'c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # str | Programmable Voice API Call ID.
                update_call = bandwidth.UpdateCall() # UpdateCall | JSON object containing information to redirect an existing call to a new BXML document

                try:
                    # Update Call
                    api_instance.update_call(account_id, call_id, update_call)
                except Exception as e:
                    print("Exception when calling CallsApi->update_call: %s\n" % e)
        - lang: Ruby
          source: >
            require 'time'

            require 'bandwidth-sdk'

            # setup authorization

            Bandwidth.configure do |config|
              # Configure HTTP basic authorization: Basic
              config.username = 'YOUR USERNAME'
              config.password = 'YOUR PASSWORD'
            end


            api_instance = Bandwidth::CallsApi.new

            account_id = '9900000' # String | Your Bandwidth Account ID.

            call_id = 'c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # String
            | Programmable Voice API Call ID.

            update_call = Bandwidth::UpdateCall.new # UpdateCall | JSON object
            containing information to redirect an existing call to a new BXML
            document


            begin
              # Update Call
              api_instance.update_call(account_id, call_id, update_call)
            rescue Bandwidth::ApiError => e
              puts "Error when calling CallsApi->update_call: #{e}"
            end
        - lang: TypeScript
          source: >
            import {
                CallsApi,
                Configuration,
                UpdateCall
            } from 'bandwidth-sdk';


            const configuration = new Configuration();

            const apiInstance = new CallsApi(configuration);


            let accountId: string; //Your Bandwidth Account ID. (default to
            undefined)

            let callId: string; //Programmable Voice API Call ID. (default to
            undefined)

            let updateCall: UpdateCall; //JSON object containing information to
            redirect an existing call to a new BXML document


            const { status, data } = await apiInstance.updateCall(
                accountId,
                callId,
                updateCall
            );
  /accounts/{accountId}/calls/{callId}/bxml:
    put:
      tags:
        - Calls
      summary: Update Call BXML
      description: Interrupts and replaces an active call's BXML document.
      operationId: updateCallBxml
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/callId'
      requestBody:
        $ref: '#/components/requestBodies/updateCallBxmlRequest'
      responses:
        '204':
          description: Call BXML was successfully replaced.
        '400':
          $ref: '#/components/responses/voiceBadRequestError'
        '401':
          $ref: '#/components/responses/voiceUnauthorizedError'
        '403':
          $ref: '#/components/responses/voiceForbiddenError'
        '404':
          $ref: '#/components/responses/voiceNotFoundError'
        '405':
          $ref: '#/components/responses/voiceNotAllowedError'
        '409':
          $ref: '#/components/responses/voiceConflictError'
        '415':
          $ref: '#/components/responses/voiceUnsupportedMediaTypeError'
        '429':
          $ref: '#/components/responses/voiceTooManyRequestsError'
        '500':
          $ref: '#/components/responses/voiceInternalServerError'
      x-codeSamples:
        - lang: cURL
          source: >-
            curl -X PUT
            'https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85/bxml'
            \
              -H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
              -H 'Content-Type: application/xml' \
              -H 'Accept: application/json' \
              -d '<?xml version="1.0" encoding="UTF-8"?>
              <element><?xml version=\"1.0\" encoding=\"UTF-8\"?>
              <Bxml>
                <SpeakSentence>This is a test sentence.</SpeakSentence>
              </Bxml></element>'
        - lang: C#
          source: |
            using System.Collections.Generic;
            using System.Diagnostics;
            using Bandwidth.Standard.Api;
            using Bandwidth.Standard.Client;
            using Bandwidth.Standard.Model;

            namespace Example
            {
                public class UpdateCallBxmlExample
                {
                    public static void Main()
                    {
                        Configuration config = new Configuration();
                        config.BasePath = "http://localhost";
                        // Configure HTTP basic authorization: Basic
                        config.Username = "YOUR_USERNAME";
                        config.Password = "YOUR_PASSWORD";

                        var apiInstance = new CallsApi(config);
                        var accountId = 9900000;  // string | Your Bandwidth Account ID.
                        var callId = c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85;  // string | Programmable Voice API Call ID.
                        var body = <?xml version=\"1.0\" encoding=\"UTF-8\"?>
            <Bxml>
              <SpeakSentence>This is a test sentence.</SpeakSentence>
            </Bxml>;  // string | 

                        try
                        {
                            // Update Call BXML
                            apiInstance.UpdateCallBxml(accountId, callId, body);
                        }
                        catch (ApiException  e)
                        {
                            Debug.Print("Exception when calling CallsApi.UpdateCallBxml: " + e.Message);
                            Debug.Print("Status Code: " + e.ErrorCode);
                            Debug.Print(e.StackTrace);
                        }
                    }
                }
            }
        - lang: Java
          source: |
            // Import classes:
            import com.bandwidth.sdk.ApiClient;
            import com.bandwidth.sdk.ApiException;
            import com.bandwidth.sdk.Configuration;
            import com.bandwidth.sdk.auth.*;
            import com.bandwidth.sdk.models.*;
            import com.bandwidth.sdk.api.CallsApi;

            public class Example {
              public static void main(String[] args) {
                ApiClient defaultClient = Configuration.getDefaultApiClient();
                defaultClient.setBasePath("http://localhost");
                
                // Configure HTTP basic authorization: Basic
                HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
                Basic.setUsername("YOUR USERNAME");
                Basic.setPassword("YOUR PASSWORD");

                CallsApi apiInstance = new CallsApi(defaultClient);
                String accountId = "9900000"; // String | Your Bandwidth Account ID.
                String callId = "c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Call ID.
                String body = <?xml version=\"1.0\" encoding=\"UTF-8\"?>
            <Bxml>
              <SpeakSentence>This is a test sentence.</SpeakSentence>
            </Bxml>; // String | 
                try {
                  apiInstance.updateCallBxml(accountId, callId, body);
                } catch (ApiException e) {
                  System.err.println("Exception when calling CallsApi#updateCallBxml");
                  System.err.println("Status code: " + e.getCode());
                  System.err.println("Reason: " + e.getResponseBody());
                  System.err.println("Response headers: " + e.getResponseHeaders());
                  e.printStackTrace();
                }
              }
            }
        - lang: Python
          source: >
            import bandwidth

            from bandwidth.rest import ApiException

            from pprint import pprint


            # Defining the host is optional and defaults to http://localhost

            # See configuration.py for a list of all supported configuration
            parameters.

            configuration = bandwidth.Configuration(
                host = "http://localhost"
            )


            # The client must configure the authentication and authorization
            parameters

            # in accordance with the API server security policy.

            # Examples for each auth method are provided below, use the example
            that

            # satisfies your auth use case.


            # Configure HTTP basic authorization: Basic

            configuration = bandwidth.Configuration(
                username = os.environ["USERNAME"],
                password = os.environ["PASSWORD"]
            )


            # Enter a context with an instance of the API client

            with bandwidth.ApiClient(configuration) as api_client:
                # Create an instance of the API class
                api_instance = bandwidth.CallsApi(api_client)
                account_id = '9900000' # str | Your Bandwidth Account ID.
                call_id = 'c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # str | Programmable Voice API Call ID.
                body = <?xml version=\"1.0\" encoding=\"UTF-8\"?>
            <Bxml>
              <SpeakSentence>This is a test sentence.</SpeakSentence>
            </Bxml> # str | 

                try:
                    # Update Call BXML
                    api_instance.update_call_bxml(account_id, call_id, body)
                except Exception as e:
                    print("Exception when calling CallsApi->update_call_bxml: %s\n" % e)
        - lang: Ruby
          source: >
            require 'time'

            require 'bandwidth-sdk'

            # setup authorization

            Bandwidth.configure do |config|
              # Configure HTTP basic authorization: Basic
              config.username = 'YOUR USERNAME'
              config.password = 'YOUR PASSWORD'
            end


            api_instance = Bandwidth::CallsApi.new

            account_id = '9900000' # String | Your Bandwidth Account ID.

            call_id = 'c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # String
            | Programmable Voice API Call ID.

            body = '<?xml version=\"1.0\" encoding=\"UTF-8\"?>

            <Bxml>
              <SpeakSentence>This is a test sentence.</SpeakSentence>
            </Bxml>' # String | 


            begin
              # Update Call BXML
              api_instance.update_call_bxml(account_id, call_id, body)
            rescue Bandwidth::ApiError => e
              puts "Error when calling CallsApi->update_call_bxml: #{e}"
            end
        - lang: TypeScript
          source: >
            import {
                CallsApi,
                Configuration
            } from 'bandwidth-sdk';


            const configuration = new Configuration();

            const apiInstance = new CallsApi(configuration);


            let accountId: string; //Your Bandwidth Account ID. (default to
            undefined)

            let callId: string; //Programmable Voice API Call ID. (default to
            undefined)

            let body: string; //


            const { status, data } = await apiInstance.updateCallBxml(
                accountId,
                callId,
                body
            );
  /accounts/{accountId}/conferences:
    get:
      tags:
        - Conferences
      summary: Get Conferences
      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:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/name'
        - $ref: '#/components/parameters/minCreatedTime'
        - $ref: '#/components/parameters/maxCreatedTime'
        - $ref: '#/components/parameters/pageSize'
        - $ref: '#/components/parameters/pageToken'
      responses:
        '200':
          $ref: '#/components/responses/listConferencesResponse'
        '400':
          $ref: '#/components/responses/voiceBadRequestError'
        '401':
          $ref: '#/components/responses/voiceUnauthorizedError'
        '403':
          $ref: '#/components/responses/voiceForbiddenError'
        '404':
          $ref: '#/components/responses/voiceNotFoundError'
        '405':
          $ref: '#/components/responses/voiceNotAllowedError'
        '415':
          $ref: '#/components/responses/voiceUnsupportedMediaTypeError'
        '429':
          $ref: '#/components/responses/voiceTooManyRequestsError'
        '500':
          $ref: '#/components/responses/voiceInternalServerError'
      x-codeSamples:
        - lang: cURL
          source: >-
            curl
            'https://voice.bandwidth.com/api/v2/accounts/9900000/conferences?name=my-custom-name&minCreatedTime=2022-06-21T19%3A13%3A21Z&maxCreatedTime=2022-06-21T19%3A13%3A21Z&pageSize=500&pageToken=eyJwYWdlVG9rZW4iOiJ0b2tlbiJ9'
            \
              -H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
              -H 'Accept: application/json'
        - lang: C#
          source: |
            using System.Collections.Generic;
            using System.Diagnostics;
            using Bandwidth.Standard.Api;
            using Bandwidth.Standard.Client;
            using Bandwidth.Standard.Model;

            namespace Example
            {
                public class ListConferencesExample
                {
                    public static void Main()
                    {
                        Configuration config = new Configuration();
                        config.BasePath = "http://localhost";
                        // Configure HTTP basic authorization: Basic
                        config.Username = "YOUR_USERNAME";
                        config.Password = "YOUR_PASSWORD";

                        var apiInstance = new ConferencesApi(config);
                        var accountId = 9900000;  // string | Your Bandwidth Account ID.
                        var name = my-custom-name;  // string | Filter results by the `name` field. (optional) 
                        var minCreatedTime = 2022-06-21T19:13:21Z;  // string | Filter results to conferences which have a `createdTime` after or at `minCreatedTime` (in ISO8601 format). (optional) 
                        var maxCreatedTime = 2022-06-21T19:13:21Z;  // string | Filter results to conferences which have a `createdTime` before or at `maxCreatedTime` (in ISO8601 format). (optional) 
                        var pageSize = 500;  // int? | Specifies the max number of conferences that will be returned. (optional)  (default to 1000)
                        var pageToken = eyJwYWdlVG9rZW4iOiJ0b2tlbiJ9;  // string | Not intended for explicit use. To use pagination, follow the links in the `Link` header of the response, as indicated in the endpoint description. (optional) 

                        try
                        {
                            // Get Conferences
                            List<Conference> result = apiInstance.ListConferences(accountId, name, minCreatedTime, maxCreatedTime, pageSize, pageToken);
                            Debug.WriteLine(result);
                        }
                        catch (ApiException  e)
                        {
                            Debug.Print("Exception when calling ConferencesApi.ListConferences: " + e.Message);
                            Debug.Print("Status Code: " + e.ErrorCode);
                            Debug.Print(e.StackTrace);
                        }
                    }
                }
            }
        - lang: Java
          source: |
            // Import classes:
            import com.bandwidth.sdk.ApiClient;
            import com.bandwidth.sdk.ApiException;
            import com.bandwidth.sdk.Configuration;
            import com.bandwidth.sdk.auth.*;
            import com.bandwidth.sdk.models.*;
            import com.bandwidth.sdk.api.ConferencesApi;

            public class Example {
              public static void main(String[] args) {
                ApiClient defaultClient = Configuration.getDefaultApiClient();
                defaultClient.setBasePath("http://localhost");
                
                // Configure HTTP basic authorization: Basic
                HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
                Basic.setUsername("YOUR USERNAME");
                Basic.setPassword("YOUR PASSWORD");

                ConferencesApi apiInstance = new ConferencesApi(defaultClient);
                String accountId = "9900000"; // String | Your Bandwidth Account ID.
                String name = "my-custom-name"; // String | Filter results by the `name` field.
                String minCreatedTime = "2022-06-21T19:13:21Z"; // String | Filter results to conferences which have a `createdTime` after or at `minCreatedTime` (in ISO8601 format).
                String maxCreatedTime = "2022-06-21T19:13:21Z"; // String | Filter results to conferences which have a `createdTime` before or at `maxCreatedTime` (in ISO8601 format).
                Integer pageSize = 1000; // Integer | Specifies the max number of conferences that will be returned.
                String pageToken = "eyJwYWdlVG9rZW4iOiJ0b2tlbiJ9"; // String | Not intended for explicit use. To use pagination, follow the links in the `Link` header of the response, as indicated in the endpoint description.
                try {
                  List<Conference> result = apiInstance.listConferences(accountId, name, minCreatedTime, maxCreatedTime, pageSize, pageToken);
                  System.out.println(result);
                } catch (ApiException e) {
                  System.err.println("Exception when calling ConferencesApi#listConferences");
                  System.err.println("Status code: " + e.getCode());
                  System.err.println("Reason: " + e.getResponseBody());
                  System.err.println("Response headers: " + e.getResponseHeaders());
                  e.printStackTrace();
                }
              }
            }
        - lang: PHP
          source: |
            <?php

            require "vendor/autoload.php";

            api-username = "api-username";
            api-password = "api-pasword";
            12345 = "12345";

            $config = new BandwidthLib\Configuration(
                array(
                    'voiceBasicAuthUserName' => $BW_USERNAME,
                    'voiceBasicAuthPassword' => $BW_PASSWORD,
                )
            );
            $client = new BandwidthLib\BandwidthClient($config);

            $voiceClient = $client->getVoice()->getClient();

            try {
                $response = $voiceClient->getConferences($BW_ACCOUNT_ID);
                if (count($response->getResult()) > 0) {
                    print_r($response->getResult()[0]->id);
                }
            } catch (BandwidthLib\APIException $e) {
                print_r($e->getResponseCode());
            }
        - lang: Python
          source: >
            import bandwidth

            from bandwidth.models.conference import Conference

            from bandwidth.rest import ApiException

            from pprint import pprint


            # Defining the host is optional and defaults to http://localhost

            # See configuration.py for a list of all supported configuration
            parameters.

            configuration = bandwidth.Configuration(
                host = "http://localhost"
            )


            # The client must configure the authentication and authorization
            parameters

            # in accordance with the API server security policy.

            # Examples for each auth method are provided below, use the example
            that

            # satisfies your auth use case.


            # Configure HTTP basic authorization: Basic

            configuration = bandwidth.Configuration(
                username = os.environ["USERNAME"],
                password = os.environ["PASSWORD"]
            )


            # Enter a context with an instance of the API client

            with bandwidth.ApiClient(configuration) as api_client:
                # Create an instance of the API class
                api_instance = bandwidth.ConferencesApi(api_client)
                account_id = '9900000' # str | Your Bandwidth Account ID.
                name = 'my-custom-name' # str | Filter results by the `name` field. (optional)
                min_created_time = '2022-06-21T19:13:21Z' # str | Filter results to conferences which have a `createdTime` after or at `minCreatedTime` (in ISO8601 format). (optional)
                max_created_time = '2022-06-21T19:13:21Z' # str | Filter results to conferences which have a `createdTime` before or at `maxCreatedTime` (in ISO8601 format). (optional)
                page_size = 1000 # int | Specifies the max number of conferences that will be returned. (optional) (default to 1000)
                page_token = 'eyJwYWdlVG9rZW4iOiJ0b2tlbiJ9' # str | Not intended for explicit use. To use pagination, follow the links in the `Link` header of the response, as indicated in the endpoint description. (optional)

                try:
                    # Get Conferences
                    api_response = api_instance.list_conferences(account_id, name=name, min_created_time=min_created_time, max_created_time=max_created_time, page_size=page_size, page_token=page_token)
                    print("The response of ConferencesApi->list_conferences:\n")
                    pprint(api_response)
                except Exception as e:
                    print("Exception when calling ConferencesApi->list_conferences: %s\n" % e)
        - lang: Ruby
          source: |
            require 'time'
            require 'bandwidth-sdk'
            # setup authorization
            Bandwidth.configure do |config|
              # Configure HTTP basic authorization: Basic
              config.username = 'YOUR USERNAME'
              config.password = 'YOUR PASSWORD'
            end

            api_instance = Bandwidth::ConferencesApi.new
            account_id = '9900000' # String | Your Bandwidth Account ID.
            opts = {
              name: 'my-custom-name', # String | Filter results by the `name` field.
              min_created_time: '2022-06-21T19:13:21Z', # String | Filter results to conferences which have a `createdTime` after or at `minCreatedTime` (in ISO8601 format).
              max_created_time: '2022-06-21T19:13:21Z', # String | Filter results to conferences which have a `createdTime` before or at `maxCreatedTime` (in ISO8601 format).
              page_size: 500, # Integer | Specifies the max number of conferences that will be returned.
              page_token: 'eyJwYWdlVG9rZW4iOiJ0b2tlbiJ9' # String | Not intended for explicit use. To use pagination, follow the links in the `Link` header of the response, as indicated in the endpoint description.
            }

            begin
              # Get Conferences
              result = api_instance.list_conferences(account_id, opts)
              p result
            rescue Bandwidth::ApiError => e
              puts "Error when calling ConferencesApi->list_conferences: #{e}"
            end
        - lang: TypeScript
          source: >
            import {
                ConferencesApi,
                Configuration
            } from 'bandwidth-sdk';


            const configuration = new Configuration();

            const apiInstance = new ConferencesApi(configuration);


            let accountId: string; //Your Bandwidth Account ID. (default to
            undefined)

            let name: string; //Filter results by the `name` field. (optional)
            (default to undefined)

            let minCreatedTime: string; //Filter results to conferences which
            have a `createdTime` after or at `minCreatedTime` (in ISO8601
            format). (optional) (default to undefined)

            let maxCreatedTime: string; //Filter results to conferences which
            have a `createdTime` before or at `maxCreatedTime` (in ISO8601
            format). (optional) (default to undefined)

            let pageSize: number; //Specifies the max number of conferences that
            will be returned. (optional) (default to 1000)

            let pageToken: string; //Not intended for explicit use. To use
            pagination, follow the links in the `Link` header of the response,
            as indicated in the endpoint description. (optional) (default to
            undefined)


            const { status, data } = await apiInstance.listConferences(
                accountId,
                name,
                minCreatedTime,
                maxCreatedTime,
                pageSize,
                pageToken
            );
  /accounts/{accountId}/conferences/{conferenceId}:
    get:
      tags:
        - Conferences
      summary: Get Conference Information
      description: Returns information about the specified conference.
      operationId: getConference
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/conferenceId'
      responses:
        '200':
          $ref: '#/components/responses/getConferenceResponse'
        '400':
          $ref: '#/components/responses/voiceBadRequestError'
        '401':
          $ref: '#/components/responses/voiceUnauthorizedError'
        '403':
          $ref: '#/components/responses/voiceForbiddenError'
        '404':
          $ref: '#/components/responses/voiceNotFoundError'
        '405':
          $ref: '#/components/responses/voiceNotAllowedError'
        '415':
          $ref: '#/components/responses/voiceUnsupportedMediaTypeError'
        '429':
          $ref: '#/components/responses/voiceTooManyRequestsError'
        '500':
          $ref: '#/components/responses/voiceInternalServerError'
      x-codeSamples:
        - lang: cURL
          source: >-
            curl
            'https://voice.bandwidth.com/api/v2/accounts/9900000/conferences/conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9'
            \
              -H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
              -H 'Accept: application/json'
        - lang: C#
          source: |
            using System.Collections.Generic;
            using System.Diagnostics;
            using Bandwidth.Standard.Api;
            using Bandwidth.Standard.Client;
            using Bandwidth.Standard.Model;

            namespace Example
            {
                public class GetConferenceExample
                {
                    public static void Main()
                    {
                        Configuration config = new Configuration();
                        config.BasePath = "http://localhost";
                        // Configure HTTP basic authorization: Basic
                        config.Username = "YOUR_USERNAME";
                        config.Password = "YOUR_PASSWORD";

                        var apiInstance = new ConferencesApi(config);
                        var accountId = 9900000;  // string | Your Bandwidth Account ID.
                        var conferenceId = conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9;  // string | Programmable Voice API Conference ID.

                        try
                        {
                            // Get Conference Information
                            Conference result = apiInstance.GetConference(accountId, conferenceId);
                            Debug.WriteLine(result);
                        }
                        catch (ApiException  e)
                        {
                            Debug.Print("Exception when calling ConferencesApi.GetConference: " + e.Message);
                            Debug.Print("Status Code: " + e.ErrorCode);
                            Debug.Print(e.StackTrace);
                        }
                    }
                }
            }
        - lang: Java
          source: |
            // Import classes:
            import com.bandwidth.sdk.ApiClient;
            import com.bandwidth.sdk.ApiException;
            import com.bandwidth.sdk.Configuration;
            import com.bandwidth.sdk.auth.*;
            import com.bandwidth.sdk.models.*;
            import com.bandwidth.sdk.api.ConferencesApi;

            public class Example {
              public static void main(String[] args) {
                ApiClient defaultClient = Configuration.getDefaultApiClient();
                defaultClient.setBasePath("http://localhost");
                
                // Configure HTTP basic authorization: Basic
                HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
                Basic.setUsername("YOUR USERNAME");
                Basic.setPassword("YOUR PASSWORD");

                ConferencesApi apiInstance = new ConferencesApi(defaultClient);
                String accountId = "9900000"; // String | Your Bandwidth Account ID.
                String conferenceId = "conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9"; // String | Programmable Voice API Conference ID.
                try {
                  Conference result = apiInstance.getConference(accountId, conferenceId);
                  System.out.println(result);
                } catch (ApiException e) {
                  System.err.println("Exception when calling ConferencesApi#getConference");
                  System.err.println("Status code: " + e.getCode());
                  System.err.println("Reason: " + e.getResponseBody());
                  System.err.println("Response headers: " + e.getResponseHeaders());
                  e.printStackTrace();
                }
              }
            }
        - lang: PHP
          source: |
            <?php

            require "vendor/autoload.php";

            api-username = "api-username";
            api-password = "api-pasword";
            12345 = "12345";

            $config = new BandwidthLib\Configuration(
                array(
                    'voiceBasicAuthUserName' => $BW_USERNAME,
                    'voiceBasicAuthPassword' => $BW_PASSWORD,
                )
            );
            $client = new BandwidthLib\BandwidthClient($config);

            $voiceClient = $client->getVoice()->getClient();

            $conferenceId = "conf-1234";

            try {
                $response = $voiceClient->getConference($BW_ACCOUNT_ID, $conferenceId);
                print_r($response->getResult()->name);
            } catch (BandwidthLib\APIException $e) {
                print_r($e->getResponseCode());
            }
        - lang: Python
          source: >
            import bandwidth

            from bandwidth.models.conference import Conference

            from bandwidth.rest import ApiException

            from pprint import pprint


            # Defining the host is optional and defaults to http://localhost

            # See configuration.py for a list of all supported configuration
            parameters.

            configuration = bandwidth.Configuration(
                host = "http://localhost"
            )


            # The client must configure the authentication and authorization
            parameters

            # in accordance with the API server security policy.

            # Examples for each auth method are provided below, use the example
            that

            # satisfies your auth use case.


            # Configure HTTP basic authorization: Basic

            configuration = bandwidth.Configuration(
                username = os.environ["USERNAME"],
                password = os.environ["PASSWORD"]
            )


            # Enter a context with an instance of the API client

            with bandwidth.ApiClient(configuration) as api_client:
                # Create an instance of the API class
                api_instance = bandwidth.ConferencesApi(api_client)
                account_id = '9900000' # str | Your Bandwidth Account ID.
                conference_id = 'conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9' # str | Programmable Voice API Conference ID.

                try:
                    # Get Conference Information
                    api_response = api_instance.get_conference(account_id, conference_id)
                    print("The response of ConferencesApi->get_conference:\n")
                    pprint(api_response)
                except Exception as e:
                    print("Exception when calling ConferencesApi->get_conference: %s\n" % e)
        - lang: Ruby
          source: >
            require 'time'

            require 'bandwidth-sdk'

            # setup authorization

            Bandwidth.configure do |config|
              # Configure HTTP basic authorization: Basic
              config.username = 'YOUR USERNAME'
              config.password = 'YOUR PASSWORD'
            end


            api_instance = Bandwidth::ConferencesApi.new

            account_id = '9900000' # String | Your Bandwidth Account ID.

            conference_id = 'conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9'
            # String | Programmable Voice API Conference ID.


            begin
              # Get Conference Information
              result = api_instance.get_conference(account_id, conference_id)
              p result
            rescue Bandwidth::ApiError => e
              puts "Error when calling ConferencesApi->get_conference: #{e}"
            end
        - lang: TypeScript
          source: >
            import {
                ConferencesApi,
                Configuration
            } from 'bandwidth-sdk';


            const configuration = new Configuration();

            const apiInstance = new ConferencesApi(configuration);


            let accountId: string; //Your Bandwidth Account ID. (default to
            undefined)

            let conferenceId: string; //Programmable Voice API Conference ID.
            (default to undefined)


            const { status, data } = await apiInstance.getConference(
                accountId,
                conferenceId
            );
    post:
      tags:
        - Conferences
      summary: Update Conference
      description: Update the conference state.
      operationId: updateConference
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/conferenceId'
      requestBody:
        $ref: '#/components/requestBodies/updateConferenceRequest'
      responses:
        '204':
          description: Conference was successfully modified.
        '400':
          $ref: '#/components/responses/voiceBadRequestError'
        '401':
          $ref: '#/components/responses/voiceUnauthorizedError'
        '403':
          $ref: '#/components/responses/voiceForbiddenError'
        '404':
          $ref: '#/components/responses/voiceNotFoundError'
        '405':
          $ref: '#/components/responses/voiceNotAllowedError'
        '415':
          $ref: '#/components/responses/voiceUnsupportedMediaTypeError'
        '429':
          $ref: '#/components/responses/voiceTooManyRequestsError'
        '500':
          $ref: '#/components/responses/voiceInternalServerError'
      x-codeSamples:
        - lang: cURL
          source: >-
            curl
            'https://voice.bandwidth.com/api/v2/accounts/9900000/conferences/conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9'
            \
              -H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
              -H 'Content-Type: application/json' \
              -H 'Accept: application/json' \
              -d '{
                "status": "completed",
                "redirectUrl": "https://myServer.example/bandwidth/webhooks/conferenceRedirect",
                "redirectMethod": "POST",
                "username": "mySecretUsername",
                "password": "mySecretPassword1!",
                "redirectFallbackUrl": "https://myFallbackServer.example/bandwidth/webhooks/conferenceRedirect",
                "redirectFallbackMethod": "POST",
                "fallbackUsername": "mySecretUsername",
                "fallbackPassword": "mySecretPassword1!"
              }'
        - lang: C#
          source: |
            using System.Collections.Generic;
            using System.Diagnostics;
            using Bandwidth.Standard.Api;
            using Bandwidth.Standard.Client;
            using Bandwidth.Standard.Model;

            namespace Example
            {
                public class UpdateConferenceExample
                {
                    public static void Main()
                    {
                        Configuration config = new Configuration();
                        config.BasePath = "http://localhost";
                        // Configure HTTP basic authorization: Basic
                        config.Username = "YOUR_USERNAME";
                        config.Password = "YOUR_PASSWORD";

                        var apiInstance = new ConferencesApi(config);
                        var accountId = 9900000;  // string | Your Bandwidth Account ID.
                        var conferenceId = conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9;  // string | Programmable Voice API Conference ID.
                        var updateConference = new UpdateConference(); // UpdateConference | 

                        try
                        {
                            // Update Conference
                            apiInstance.UpdateConference(accountId, conferenceId, updateConference);
                        }
                        catch (ApiException  e)
                        {
                            Debug.Print("Exception when calling ConferencesApi.UpdateConference: " + e.Message);
                            Debug.Print("Status Code: " + e.ErrorCode);
                            Debug.Print(e.StackTrace);
                        }
                    }
                }
            }
        - lang: Java
          source: |
            // Import classes:
            import com.bandwidth.sdk.ApiClient;
            import com.bandwidth.sdk.ApiException;
            import com.bandwidth.sdk.Configuration;
            import com.bandwidth.sdk.auth.*;
            import com.bandwidth.sdk.models.*;
            import com.bandwidth.sdk.api.ConferencesApi;

            public class Example {
              public static void main(String[] args) {
                ApiClient defaultClient = Configuration.getDefaultApiClient();
                defaultClient.setBasePath("http://localhost");
                
                // Configure HTTP basic authorization: Basic
                HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
                Basic.setUsername("YOUR USERNAME");
                Basic.setPassword("YOUR PASSWORD");

                ConferencesApi apiInstance = new ConferencesApi(defaultClient);
                String accountId = "9900000"; // String | Your Bandwidth Account ID.
                String conferenceId = "conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9"; // String | Programmable Voice API Conference ID.
                UpdateConference updateConference = new UpdateConference(); // UpdateConference | 
                try {
                  apiInstance.updateConference(accountId, conferenceId, updateConference);
                } catch (ApiException e) {
                  System.err.println("Exception when calling ConferencesApi#updateConference");
                  System.err.println("Status code: " + e.getCode());
                  System.err.println("Reason: " + e.getResponseBody());
                  System.err.println("Response headers: " + e.getResponseHeaders());
                  e.printStackTrace();
                }
              }
            }
        - lang: PHP
          source: |
            <?php
              
            require "vendor/autoload.php";

            api-username = "api-username";
            api-password = "api-pasword";
            12345 = "12345";

            $config = new BandwidthLib\Configuration(
                array(
                    'voiceBasicAuthUserName' => $BW_USERNAME,
                    'voiceBasicAuthPassword' => $BW_PASSWORD,
                )
            );
            $client = new BandwidthLib\BandwidthClient($config);

            $voiceClient = $client->getVoice()->getClient();

            $conferenceId = "conf-1234";

            $body = new BandwidthLib\Voice\Models\ModifyConferenceRequest();
            $body->state = "active";

            try {
                $voiceClient->modifyConference($BW_ACCOUNT_ID, $conferenceId, $body);
            } catch (BandwidthLib\APIException $e) {
                print_r($e->getResponseCode());
            }
        - lang: Python
          source: >
            import bandwidth

            from bandwidth.models.update_conference import UpdateConference

            from bandwidth.rest import ApiException

            from pprint import pprint


            # Defining the host is optional and defaults to http://localhost

            # See configuration.py for a list of all supported configuration
            parameters.

            configuration = bandwidth.Configuration(
                host = "http://localhost"
            )


            # The client must configure the authentication and authorization
            parameters

            # in accordance with the API server security policy.

            # Examples for each auth method are provided below, use the example
            that

            # satisfies your auth use case.


            # Configure HTTP basic authorization: Basic

            configuration = bandwidth.Configuration(
                username = os.environ["USERNAME"],
                password = os.environ["PASSWORD"]
            )


            # Enter a context with an instance of the API client

            with bandwidth.ApiClient(configuration) as api_client:
                # Create an instance of the API class
                api_instance = bandwidth.ConferencesApi(api_client)
                account_id = '9900000' # str | Your Bandwidth Account ID.
                conference_id = 'conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9' # str | Programmable Voice API Conference ID.
                update_conference = bandwidth.UpdateConference() # UpdateConference | 

                try:
                    # Update Conference
                    api_instance.update_conference(account_id, conference_id, update_conference)
                except Exception as e:
                    print("Exception when calling ConferencesApi->update_conference: %s\n" % e)
        - lang: Ruby
          source: >
            require 'time'

            require 'bandwidth-sdk'

            # setup authorization

            Bandwidth.configure do |config|
              # Configure HTTP basic authorization: Basic
              config.username = 'YOUR USERNAME'
              config.password = 'YOUR PASSWORD'
            end


            api_instance = Bandwidth::ConferencesApi.new

            account_id = '9900000' # String | Your Bandwidth Account ID.

            conference_id = 'conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9'
            # String | Programmable Voice API Conference ID.

            update_conference = Bandwidth::UpdateConference.new #
            UpdateConference | 


            begin
              # Update Conference
              api_instance.update_conference(account_id, conference_id, update_conference)
            rescue Bandwidth::ApiError => e
              puts "Error when calling ConferencesApi->update_conference: #{e}"
            end
        - lang: TypeScript
          source: >
            import {
                ConferencesApi,
                Configuration,
                UpdateConference
            } from 'bandwidth-sdk';


            const configuration = new Configuration();

            const apiInstance = new ConferencesApi(configuration);


            let accountId: string; //Your Bandwidth Account ID. (default to
            undefined)

            let conferenceId: string; //Programmable Voice API Conference ID.
            (default to undefined)

            let updateConference: UpdateConference; //


            const { status, data } = await apiInstance.updateConference(
                accountId,
                conferenceId,
                updateConference
            );
  /accounts/{accountId}/conferences/{conferenceId}/bxml:
    put:
      tags:
        - Conferences
      summary: Update Conference BXML
      description: Update the conference BXML document.
      operationId: updateConferenceBxml
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/conferenceId'
      requestBody:
        $ref: '#/components/requestBodies/updateConferenceBxmlRequest'
      responses:
        '204':
          description: Conference successfully modified.
        '400':
          $ref: '#/components/responses/voiceBadRequestError'
        '401':
          $ref: '#/components/responses/voiceUnauthorizedError'
        '403':
          $ref: '#/components/responses/voiceForbiddenError'
        '404':
          $ref: '#/components/responses/voiceNotFoundError'
        '405':
          $ref: '#/components/responses/voiceNotAllowedError'
        '415':
          $ref: '#/components/responses/voiceUnsupportedMediaTypeError'
        '429':
          $ref: '#/components/responses/voiceTooManyRequestsError'
        '500':
          $ref: '#/components/responses/voiceInternalServerError'
      x-codeSamples:
        - lang: cURL
          source: >-
            curl -X PUT
            'https://voice.bandwidth.com/api/v2/accounts/9900000/conferences/conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9/bxml'
            \
              -H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
              -H 'Content-Type: application/xml' \
              -H 'Accept: application/json' \
              -d '<element><?xml version="1.0" encoding="UTF-8"?>
              <Bxml>
                  <StopRecording/>
              </Bxml></element>'
        - lang: C#
          source: |
            using System.Collections.Generic;
            using System.Diagnostics;
            using Bandwidth.Standard.Api;
            using Bandwidth.Standard.Client;
            using Bandwidth.Standard.Model;

            namespace Example
            {
                public class UpdateConferenceBxmlExample
                {
                    public static void Main()
                    {
                        Configuration config = new Configuration();
                        config.BasePath = "http://localhost";
                        // Configure HTTP basic authorization: Basic
                        config.Username = "YOUR_USERNAME";
                        config.Password = "YOUR_PASSWORD";

                        var apiInstance = new ConferencesApi(config);
                        var accountId = 9900000;  // string | Your Bandwidth Account ID.
                        var conferenceId = conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9;  // string | Programmable Voice API Conference ID.
                        var body = <?xml version="1.0" encoding="UTF-8"?>
            <Bxml>
                <StopRecording/>
            </Bxml>;  // string | 

                        try
                        {
                            // Update Conference BXML
                            apiInstance.UpdateConferenceBxml(accountId, conferenceId, body);
                        }
                        catch (ApiException  e)
                        {
                            Debug.Print("Exception when calling ConferencesApi.UpdateConferenceBxml: " + e.Message);
                            Debug.Print("Status Code: " + e.ErrorCode);
                            Debug.Print(e.StackTrace);
                        }
                    }
                }
            }
        - lang: Java
          source: |
            // Import classes:
            import com.bandwidth.sdk.ApiClient;
            import com.bandwidth.sdk.ApiException;
            import com.bandwidth.sdk.Configuration;
            import com.bandwidth.sdk.auth.*;
            import com.bandwidth.sdk.models.*;
            import com.bandwidth.sdk.api.ConferencesApi;

            public class Example {
              public static void main(String[] args) {
                ApiClient defaultClient = Configuration.getDefaultApiClient();
                defaultClient.setBasePath("http://localhost");
                
                // Configure HTTP basic authorization: Basic
                HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
                Basic.setUsername("YOUR USERNAME");
                Basic.setPassword("YOUR PASSWORD");

                ConferencesApi apiInstance = new ConferencesApi(defaultClient);
                String accountId = "9900000"; // String | Your Bandwidth Account ID.
                String conferenceId = "conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9"; // String | Programmable Voice API Conference ID.
                String body = <?xml version="1.0" encoding="UTF-8"?>
            <Bxml>
                <StopRecording/>
            </Bxml>; // String | 
                try {
                  apiInstance.updateConferenceBxml(accountId, conferenceId, body);
                } catch (ApiException e) {
                  System.err.println("Exception when calling ConferencesApi#updateConferenceBxml");
                  System.err.println("Status code: " + e.getCode());
                  System.err.println("Reason: " + e.getResponseBody());
                  System.err.println("Response headers: " + e.getResponseHeaders());
                  e.printStackTrace();
                }
              }
            }
        - lang: Python
          source: >
            import bandwidth

            from bandwidth.rest import ApiException

            from pprint import pprint


            # Defining the host is optional and defaults to http://localhost

            # See configuration.py for a list of all supported configuration
            parameters.

            configuration = bandwidth.Configuration(
                host = "http://localhost"
            )


            # The client must configure the authentication and authorization
            parameters

            # in accordance with the API server security policy.

            # Examples for each auth method are provided below, use the example
            that

            # satisfies your auth use case.


            # Configure HTTP basic authorization: Basic

            configuration = bandwidth.Configuration(
                username = os.environ["USERNAME"],
                password = os.environ["PASSWORD"]
            )


            # Enter a context with an instance of the API client

            with bandwidth.ApiClient(configuration) as api_client:
                # Create an instance of the API class
                api_instance = bandwidth.ConferencesApi(api_client)
                account_id = '9900000' # str | Your Bandwidth Account ID.
                conference_id = 'conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9' # str | Programmable Voice API Conference ID.
                body = <?xml version="1.0" encoding="UTF-8"?>
            <Bxml>
                <StopRecording/>
            </Bxml> # str | 

                try:
                    # Update Conference BXML
                    api_instance.update_conference_bxml(account_id, conference_id, body)
                except Exception as e:
                    print("Exception when calling ConferencesApi->update_conference_bxml: %s\n" % e)
        - lang: Ruby
          source: >
            require 'time'

            require 'bandwidth-sdk'

            # setup authorization

            Bandwidth.configure do |config|
              # Configure HTTP basic authorization: Basic
              config.username = 'YOUR USERNAME'
              config.password = 'YOUR PASSWORD'
            end


            api_instance = Bandwidth::ConferencesApi.new

            account_id = '9900000' # String | Your Bandwidth Account ID.

            conference_id = 'conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9'
            # String | Programmable Voice API Conference ID.

            body = '<?xml version="1.0" encoding="UTF-8"?>

            <Bxml>
                <StopRecording/>
            </Bxml>' # String | 


            begin
              # Update Conference BXML
              api_instance.update_conference_bxml(account_id, conference_id, body)
            rescue Bandwidth::ApiError => e
              puts "Error when calling ConferencesApi->update_conference_bxml: #{e}"
            end
        - lang: TypeScript
          source: >
            import {
                ConferencesApi,
                Configuration
            } from 'bandwidth-sdk';


            const configuration = new Configuration();

            const apiInstance = new ConferencesApi(configuration);


            let accountId: string; //Your Bandwidth Account ID. (default to
            undefined)

            let conferenceId: string; //Programmable Voice API Conference ID.
            (default to undefined)

            let body: string; //


            const { status, data } = await apiInstance.updateConferenceBxml(
                accountId,
                conferenceId,
                body
            );
  /accounts/{accountId}/conferences/{conferenceId}/members/{memberId}:
    get:
      tags:
        - Conferences
      summary: Get Conference Member
      description: Returns information about the specified conference member.
      operationId: getConferenceMember
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/conferenceId'
        - $ref: '#/components/parameters/memberId'
      responses:
        '200':
          $ref: '#/components/responses/getConferenceMemberResponse'
        '400':
          $ref: '#/components/responses/voiceBadRequestError'
        '401':
          $ref: '#/components/responses/voiceUnauthorizedError'
        '403':
          $ref: '#/components/responses/voiceForbiddenError'
        '404':
          $ref: '#/components/responses/voiceNotFoundError'
        '405':
          $ref: '#/components/responses/voiceNotAllowedError'
        '415':
          $ref: '#/components/responses/voiceUnsupportedMediaTypeError'
        '429':
          $ref: '#/components/responses/voiceTooManyRequestsError'
        '500':
          $ref: '#/components/responses/voiceInternalServerError'
      x-codeSamples:
        - lang: cURL
          source: >-
            curl
            'https://voice.bandwidth.com/api/v2/accounts/9900000/conferences/conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9/members/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85'
            \
              -H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
              -H 'Accept: application/json'
        - lang: C#
          source: |
            using System.Collections.Generic;
            using System.Diagnostics;
            using Bandwidth.Standard.Api;
            using Bandwidth.Standard.Client;
            using Bandwidth.Standard.Model;

            namespace Example
            {
                public class GetConferenceMemberExample
                {
                    public static void Main()
                    {
                        Configuration config = new Configuration();
                        config.BasePath = "http://localhost";
                        // Configure HTTP basic authorization: Basic
                        config.Username = "YOUR_USERNAME";
                        config.Password = "YOUR_PASSWORD";

                        var apiInstance = new ConferencesApi(config);
                        var accountId = 9900000;  // string | Your Bandwidth Account ID.
                        var conferenceId = conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9;  // string | Programmable Voice API Conference ID.
                        var memberId = c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85;  // string | Programmable Voice API Conference Member ID.

                        try
                        {
                            // Get Conference Member
                            ConferenceMember result = apiInstance.GetConferenceMember(accountId, conferenceId, memberId);
                            Debug.WriteLine(result);
                        }
                        catch (ApiException  e)
                        {
                            Debug.Print("Exception when calling ConferencesApi.GetConferenceMember: " + e.Message);
                            Debug.Print("Status Code: " + e.ErrorCode);
                            Debug.Print(e.StackTrace);
                        }
                    }
                }
            }
        - lang: Java
          source: |
            // Import classes:
            import com.bandwidth.sdk.ApiClient;
            import com.bandwidth.sdk.ApiException;
            import com.bandwidth.sdk.Configuration;
            import com.bandwidth.sdk.auth.*;
            import com.bandwidth.sdk.models.*;
            import com.bandwidth.sdk.api.ConferencesApi;

            public class Example {
              public static void main(String[] args) {
                ApiClient defaultClient = Configuration.getDefaultApiClient();
                defaultClient.setBasePath("http://localhost");
                
                // Configure HTTP basic authorization: Basic
                HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
                Basic.setUsername("YOUR USERNAME");
                Basic.setPassword("YOUR PASSWORD");

                ConferencesApi apiInstance = new ConferencesApi(defaultClient);
                String accountId = "9900000"; // String | Your Bandwidth Account ID.
                String conferenceId = "conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9"; // String | Programmable Voice API Conference ID.
                String memberId = "c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Conference Member ID.
                try {
                  ConferenceMember result = apiInstance.getConferenceMember(accountId, conferenceId, memberId);
                  System.out.println(result);
                } catch (ApiException e) {
                  System.err.println("Exception when calling ConferencesApi#getConferenceMember");
                  System.err.println("Status code: " + e.getCode());
                  System.err.println("Reason: " + e.getResponseBody());
                  System.err.println("Response headers: " + e.getResponseHeaders());
                  e.printStackTrace();
                }
              }
            }
        - lang: PHP
          source: |
            <?php

            require "vendor/autoload.php";

            api-username = "api-username";
            api-password = "api-pasword";
            12345 = "12345";

            $config = new BandwidthLib\Configuration(
                array(
                    'voiceBasicAuthUserName' => $BW_USERNAME,
                    'voiceBasicAuthPassword' => $BW_PASSWORD,
                )
            );
            $client = new BandwidthLib\BandwidthClient($config);

            $voiceClient = $client->getVoice()->getClient();

            $conferenceId = "conf-1234";
            $memberId = "m-1234";

            try {
                $response = $voiceClient->getConferenceMember($BW_ACCOUNT_ID, $conferenceId, $memberId);
                print_r($response->getResult()->memberUrl);
            } catch (BandwidthLib\APIException $e) {
                print_r($e->getResponseCode());
            }
        - lang: Python
          source: >
            import bandwidth

            from bandwidth.models.conference_member import ConferenceMember

            from bandwidth.rest import ApiException

            from pprint import pprint


            # Defining the host is optional and defaults to http://localhost

            # See configuration.py for a list of all supported configuration
            parameters.

            configuration = bandwidth.Configuration(
                host = "http://localhost"
            )


            # The client must configure the authentication and authorization
            parameters

            # in accordance with the API server security policy.

            # Examples for each auth method are provided below, use the example
            that

            # satisfies your auth use case.


            # Configure HTTP basic authorization: Basic

            configuration = bandwidth.Configuration(
                username = os.environ["USERNAME"],
                password = os.environ["PASSWORD"]
            )


            # Enter a context with an instance of the API client

            with bandwidth.ApiClient(configuration) as api_client:
                # Create an instance of the API class
                api_instance = bandwidth.ConferencesApi(api_client)
                account_id = '9900000' # str | Your Bandwidth Account ID.
                conference_id = 'conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9' # str | Programmable Voice API Conference ID.
                member_id = 'c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # str | Programmable Voice API Conference Member ID.

                try:
                    # Get Conference Member
                    api_response = api_instance.get_conference_member(account_id, conference_id, member_id)
                    print("The response of ConferencesApi->get_conference_member:\n")
                    pprint(api_response)
                except Exception as e:
                    print("Exception when calling ConferencesApi->get_conference_member: %s\n" % e)
        - lang: Ruby
          source: >
            require 'time'

            require 'bandwidth-sdk'

            # setup authorization

            Bandwidth.configure do |config|
              # Configure HTTP basic authorization: Basic
              config.username = 'YOUR USERNAME'
              config.password = 'YOUR PASSWORD'
            end


            api_instance = Bandwidth::ConferencesApi.new

            account_id = '9900000' # String | Your Bandwidth Account ID.

            conference_id = 'conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9'
            # String | Programmable Voice API Conference ID.

            member_id = 'c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' #
            String | Programmable Voice API Conference Member ID.


            begin
              # Get Conference Member
              result = api_instance.get_conference_member(account_id, conference_id, member_id)
              p result
            rescue Bandwidth::ApiError => e
              puts "Error when calling ConferencesApi->get_conference_member: #{e}"
            end
        - lang: TypeScript
          source: >
            import {
                ConferencesApi,
                Configuration
            } from 'bandwidth-sdk';


            const configuration = new Configuration();

            const apiInstance = new ConferencesApi(configuration);


            let accountId: string; //Your Bandwidth Account ID. (default to
            undefined)

            let conferenceId: string; //Programmable Voice API Conference ID.
            (default to undefined)

            let memberId: string; //Programmable Voice API Conference Member ID.
            (default to undefined)


            const { status, data } = await apiInstance.getConferenceMember(
                accountId,
                conferenceId,
                memberId
            );
    put:
      tags:
        - Conferences
      summary: Update Conference Member
      description: Updates settings for a particular conference member.
      operationId: updateConferenceMember
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/conferenceId'
        - $ref: '#/components/parameters/memberId'
      requestBody:
        $ref: '#/components/requestBodies/updateConferenceMemberRequest'
      responses:
        '204':
          description: Conference member was successfully modified.
        '400':
          $ref: '#/components/responses/voiceBadRequestError'
        '401':
          $ref: '#/components/responses/voiceUnauthorizedError'
        '403':
          $ref: '#/components/responses/voiceForbiddenError'
        '404':
          $ref: '#/components/responses/voiceNotFoundError'
        '405':
          $ref: '#/components/responses/voiceNotAllowedError'
        '415':
          $ref: '#/components/responses/voiceUnsupportedMediaTypeError'
        '429':
          $ref: '#/components/responses/voiceTooManyRequestsError'
        '500':
          $ref: '#/components/responses/voiceInternalServerError'
      x-codeSamples:
        - lang: cURL
          source: >-
            curl -X PUT
            'https://voice.bandwidth.com/api/v2/accounts/9900000/conferences/conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9/members/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85'
            \
              -H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
              -H 'Content-Type: application/json' \
              -H 'Accept: application/json' \
              -d '{
                "mute": false,
                "hold": false,
                "callIdsToCoach": [
                  "c-25ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"
                ]
              }'
        - lang: C#
          source: |
            using System.Collections.Generic;
            using System.Diagnostics;
            using Bandwidth.Standard.Api;
            using Bandwidth.Standard.Client;
            using Bandwidth.Standard.Model;

            namespace Example
            {
                public class UpdateConferenceMemberExample
                {
                    public static void Main()
                    {
                        Configuration config = new Configuration();
                        config.BasePath = "http://localhost";
                        // Configure HTTP basic authorization: Basic
                        config.Username = "YOUR_USERNAME";
                        config.Password = "YOUR_PASSWORD";

                        var apiInstance = new ConferencesApi(config);
                        var accountId = 9900000;  // string | Your Bandwidth Account ID.
                        var conferenceId = conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9;  // string | Programmable Voice API Conference ID.
                        var memberId = c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85;  // string | Programmable Voice API Conference Member ID.
                        var updateConferenceMember = new UpdateConferenceMember(); // UpdateConferenceMember | 

                        try
                        {
                            // Update Conference Member
                            apiInstance.UpdateConferenceMember(accountId, conferenceId, memberId, updateConferenceMember);
                        }
                        catch (ApiException  e)
                        {
                            Debug.Print("Exception when calling ConferencesApi.UpdateConferenceMember: " + e.Message);
                            Debug.Print("Status Code: " + e.ErrorCode);
                            Debug.Print(e.StackTrace);
                        }
                    }
                }
            }
        - lang: Java
          source: |
            // Import classes:
            import com.bandwidth.sdk.ApiClient;
            import com.bandwidth.sdk.ApiException;
            import com.bandwidth.sdk.Configuration;
            import com.bandwidth.sdk.auth.*;
            import com.bandwidth.sdk.models.*;
            import com.bandwidth.sdk.api.ConferencesApi;

            public class Example {
              public static void main(String[] args) {
                ApiClient defaultClient = Configuration.getDefaultApiClient();
                defaultClient.setBasePath("http://localhost");
                
                // Configure HTTP basic authorization: Basic
                HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
                Basic.setUsername("YOUR USERNAME");
                Basic.setPassword("YOUR PASSWORD");

                ConferencesApi apiInstance = new ConferencesApi(defaultClient);
                String accountId = "9900000"; // String | Your Bandwidth Account ID.
                String conferenceId = "conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9"; // String | Programmable Voice API Conference ID.
                String memberId = "c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Conference Member ID.
                UpdateConferenceMember updateConferenceMember = new UpdateConferenceMember(); // UpdateConferenceMember | 
                try {
                  apiInstance.updateConferenceMember(accountId, conferenceId, memberId, updateConferenceMember);
                } catch (ApiException e) {
                  System.err.println("Exception when calling ConferencesApi#updateConferenceMember");
                  System.err.println("Status code: " + e.getCode());
                  System.err.println("Reason: " + e.getResponseBody());
                  System.err.println("Response headers: " + e.getResponseHeaders());
                  e.printStackTrace();
                }
              }
            }
        - lang: PHP
          source: |
            <?php
              
            require "vendor/autoload.php";

            api-username = "api-username";
            api-password = "api-pasword";
            12345 = "12345";

            $config = new BandwidthLib\Configuration(
                array(
                    'voiceBasicAuthUserName' => $BW_USERNAME,
                    'voiceBasicAuthPassword' => $BW_PASSWORD,
                )
            );
            $client = new BandwidthLib\BandwidthClient($config);

            $voiceClient = $client->getVoice()->getClient();

            $conferenceId = "conf-1234";
            $callId = "c-1234";

            $body = new BandwidthLib\Voice\Models\ConferenceMemberState();
            $body->mute = true;

            try {
                $voiceClient->modifyConferenceMember($BW_ACCOUNT_ID, $conferenceId, $callId, $body);
            } catch (BandwidthLib\APIException $e) {
                print_r($e->getResponseCode());
            }
        - lang: Python
          source: >
            import bandwidth

            from bandwidth.models.update_conference_member import
            UpdateConferenceMember

            from bandwidth.rest import ApiException

            from pprint import pprint


            # Defining the host is optional and defaults to http://localhost

            # See configuration.py for a list of all supported configuration
            parameters.

            configuration = bandwidth.Configuration(
                host = "http://localhost"
            )


            # The client must configure the authentication and authorization
            parameters

            # in accordance with the API server security policy.

            # Examples for each auth method are provided below, use the example
            that

            # satisfies your auth use case.


            # Configure HTTP basic authorization: Basic

            configuration = bandwidth.Configuration(
                username = os.environ["USERNAME"],
                password = os.environ["PASSWORD"]
            )


            # Enter a context with an instance of the API client

            with bandwidth.ApiClient(configuration) as api_client:
                # Create an instance of the API class
                api_instance = bandwidth.ConferencesApi(api_client)
                account_id = '9900000' # str | Your Bandwidth Account ID.
                conference_id = 'conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9' # str | Programmable Voice API Conference ID.
                member_id = 'c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # str | Programmable Voice API Conference Member ID.
                update_conference_member = bandwidth.UpdateConferenceMember() # UpdateConferenceMember | 

                try:
                    # Update Conference Member
                    api_instance.update_conference_member(account_id, conference_id, member_id, update_conference_member)
                except Exception as e:
                    print("Exception when calling ConferencesApi->update_conference_member: %s\n" % e)
        - lang: Ruby
          source: >
            require 'time'

            require 'bandwidth-sdk'

            # setup authorization

            Bandwidth.configure do |config|
              # Configure HTTP basic authorization: Basic
              config.username = 'YOUR USERNAME'
              config.password = 'YOUR PASSWORD'
            end


            api_instance = Bandwidth::ConferencesApi.new

            account_id = '9900000' # String | Your Bandwidth Account ID.

            conference_id = 'conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9'
            # String | Programmable Voice API Conference ID.

            member_id = 'c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' #
            String | Programmable Voice API Conference Member ID.

            update_conference_member = Bandwidth::UpdateConferenceMember.new #
            UpdateConferenceMember | 


            begin
              # Update Conference Member
              api_instance.update_conference_member(account_id, conference_id, member_id, update_conference_member)
            rescue Bandwidth::ApiError => e
              puts "Error when calling ConferencesApi->update_conference_member: #{e}"
            end
        - lang: TypeScript
          source: >
            import {
                ConferencesApi,
                Configuration,
                UpdateConferenceMember
            } from 'bandwidth-sdk';


            const configuration = new Configuration();

            const apiInstance = new ConferencesApi(configuration);


            let accountId: string; //Your Bandwidth Account ID. (default to
            undefined)

            let conferenceId: string; //Programmable Voice API Conference ID.
            (default to undefined)

            let memberId: string; //Programmable Voice API Conference Member ID.
            (default to undefined)

            let updateConferenceMember: UpdateConferenceMember; //


            const { status, data } = await apiInstance.updateConferenceMember(
                accountId,
                conferenceId,
                memberId,
                updateConferenceMember
            );
  /accounts/{accountId}/conferences/{conferenceId}/recordings:
    get:
      tags:
        - Conferences
      summary: Get Conference Recordings
      description: >-
        Returns a (potentially empty) list of metadata for the recordings that
        took place during the specified conference.
      operationId: listConferenceRecordings
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/conferenceId'
      responses:
        '200':
          $ref: '#/components/responses/listConferenceRecordingsResponse'
        '400':
          $ref: '#/components/responses/voiceBadRequestError'
        '401':
          $ref: '#/components/responses/voiceUnauthorizedError'
        '403':
          $ref: '#/components/responses/voiceForbiddenError'
        '404':
          $ref: '#/components/responses/voiceNotFoundError'
        '405':
          $ref: '#/components/responses/voiceNotAllowedError'
        '415':
          $ref: '#/components/responses/voiceUnsupportedMediaTypeError'
        '429':
          $ref: '#/components/responses/voiceTooManyRequestsError'
        '500':
          $ref: '#/components/responses/voiceInternalServerError'
      x-codeSamples:
        - lang: cURL
          source: >-
            curl
            'https://voice.bandwidth.com/api/v2/accounts/9900000/conferences/conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9/recordings'
            \
              -H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
              -H 'Accept: application/json'
        - lang: C#
          source: |
            using System.Collections.Generic;
            using System.Diagnostics;
            using Bandwidth.Standard.Api;
            using Bandwidth.Standard.Client;
            using Bandwidth.Standard.Model;

            namespace Example
            {
                public class ListConferenceRecordingsExample
                {
                    public static void Main()
                    {
                        Configuration config = new Configuration();
                        config.BasePath = "http://localhost";
                        // Configure HTTP basic authorization: Basic
                        config.Username = "YOUR_USERNAME";
                        config.Password = "YOUR_PASSWORD";

                        var apiInstance = new ConferencesApi(config);
                        var accountId = 9900000;  // string | Your Bandwidth Account ID.
                        var conferenceId = conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9;  // string | Programmable Voice API Conference ID.

                        try
                        {
                            // Get Conference Recordings
                            List<ConferenceRecordingMetadata> result = apiInstance.ListConferenceRecordings(accountId, conferenceId);
                            Debug.WriteLine(result);
                        }
                        catch (ApiException  e)
                        {
                            Debug.Print("Exception when calling ConferencesApi.ListConferenceRecordings: " + e.Message);
                            Debug.Print("Status Code: " + e.ErrorCode);
                            Debug.Print(e.StackTrace);
                        }
                    }
                }
            }
        - lang: Java
          source: |
            // Import classes:
            import com.bandwidth.sdk.ApiClient;
            import com.bandwidth.sdk.ApiException;
            import com.bandwidth.sdk.Configuration;
            import com.bandwidth.sdk.auth.*;
            import com.bandwidth.sdk.models.*;
            import com.bandwidth.sdk.api.ConferencesApi;

            public class Example {
              public static void main(String[] args) {
                ApiClient defaultClient = Configuration.getDefaultApiClient();
                defaultClient.setBasePath("http://localhost");
                
                // Configure HTTP basic authorization: Basic
                HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
                Basic.setUsername("YOUR USERNAME");
                Basic.setPassword("YOUR PASSWORD");

                ConferencesApi apiInstance = new ConferencesApi(defaultClient);
                String accountId = "9900000"; // String | Your Bandwidth Account ID.
                String conferenceId = "conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9"; // String | Programmable Voice API Conference ID.
                try {
                  List<ConferenceRecordingMetadata> result = apiInstance.listConferenceRecordings(accountId, conferenceId);
                  System.out.println(result);
                } catch (ApiException e) {
                  System.err.println("Exception when calling ConferencesApi#listConferenceRecordings");
                  System.err.println("Status code: " + e.getCode());
                  System.err.println("Reason: " + e.getResponseBody());
                  System.err.println("Response headers: " + e.getResponseHeaders());
                  e.printStackTrace();
                }
              }
            }
        - lang: PHP
          source: |
            <?php

            require "vendor/autoload.php";

            api-username = "api-username";
            api-password = "api-pasword";
            12345 = "12345";

            $config = new BandwidthLib\Configuration(
                array(
                    'voiceBasicAuthUserName' => $BW_USERNAME,
                    'voiceBasicAuthPassword' => $BW_PASSWORD,
                )
            );
            $client = new BandwidthLib\BandwidthClient($config);

            $voiceClient = $client->getVoice()->getClient();

            $conferenceId = "c-1234";

            try {
                $response = $voiceClient->getConferenceRecordings($BW_ACCOUNT_ID, $conferenceId);
                if (count($response->getResult()) > 0) {
                    print_r($response->getResult()[0]->name);
                }
            } catch (BandwidthLib\APIException $e) {
                print_r($e->getResponseCode());
            }
        - lang: Python
          source: >
            import bandwidth

            from bandwidth.models.conference_recording_metadata import
            ConferenceRecordingMetadata

            from bandwidth.rest import ApiException

            from pprint import pprint


            # Defining the host is optional and defaults to http://localhost

            # See configuration.py for a list of all supported configuration
            parameters.

            configuration = bandwidth.Configuration(
                host = "http://localhost"
            )


            # The client must configure the authentication and authorization
            parameters

            # in accordance with the API server security policy.

            # Examples for each auth method are provided below, use the example
            that

            # satisfies your auth use case.


            # Configure HTTP basic authorization: Basic

            configuration = bandwidth.Configuration(
                username = os.environ["USERNAME"],
                password = os.environ["PASSWORD"]
            )


            # Enter a context with an instance of the API client

            with bandwidth.ApiClient(configuration) as api_client:
                # Create an instance of the API class
                api_instance = bandwidth.ConferencesApi(api_client)
                account_id = '9900000' # str | Your Bandwidth Account ID.
                conference_id = 'conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9' # str | Programmable Voice API Conference ID.

                try:
                    # Get Conference Recordings
                    api_response = api_instance.list_conference_recordings(account_id, conference_id)
                    print("The response of ConferencesApi->list_conference_recordings:\n")
                    pprint(api_response)
                except Exception as e:
                    print("Exception when calling ConferencesApi->list_conference_recordings: %s\n" % e)
        - lang: Ruby
          source: >
            require 'time'

            require 'bandwidth-sdk'

            # setup authorization

            Bandwidth.configure do |config|
              # Configure HTTP basic authorization: Basic
              config.username = 'YOUR USERNAME'
              config.password = 'YOUR PASSWORD'
            end


            api_instance = Bandwidth::ConferencesApi.new

            account_id = '9900000' # String | Your Bandwidth Account ID.

            conference_id = 'conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9'
            # String | Programmable Voice API Conference ID.


            begin
              # Get Conference Recordings
              result = api_instance.list_conference_recordings(account_id, conference_id)
              p result
            rescue Bandwidth::ApiError => e
              puts "Error when calling ConferencesApi->list_conference_recordings: #{e}"
            end
        - lang: TypeScript
          source: >
            import {
                ConferencesApi,
                Configuration
            } from 'bandwidth-sdk';


            const configuration = new Configuration();

            const apiInstance = new ConferencesApi(configuration);


            let accountId: string; //Your Bandwidth Account ID. (default to
            undefined)

            let conferenceId: string; //Programmable Voice API Conference ID.
            (default to undefined)


            const { status, data } = await apiInstance.listConferenceRecordings(
                accountId,
                conferenceId
            );
  /accounts/{accountId}/conferences/{conferenceId}/recordings/{recordingId}:
    get:
      tags:
        - Conferences
      summary: Get Conference Recording Information
      description: Returns metadata for the specified recording.
      operationId: getConferenceRecording
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/conferenceId'
        - $ref: '#/components/parameters/recordingId'
      responses:
        '200':
          $ref: '#/components/responses/getConferenceRecordingResponse'
        '400':
          $ref: '#/components/responses/voiceBadRequestError'
        '401':
          $ref: '#/components/responses/voiceUnauthorizedError'
        '403':
          $ref: '#/components/responses/voiceForbiddenError'
        '404':
          $ref: '#/components/responses/voiceNotFoundError'
        '405':
          $ref: '#/components/responses/voiceNotAllowedError'
        '415':
          $ref: '#/components/responses/voiceUnsupportedMediaTypeError'
        '429':
          $ref: '#/components/responses/voiceTooManyRequestsError'
        '500':
          $ref: '#/components/responses/voiceInternalServerError'
      x-codeSamples:
        - lang: cURL
          source: >-
            curl
            'https://voice.bandwidth.com/api/v2/accounts/9900000/conferences/conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9/recordings/r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85'
            \
              -H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
              -H 'Accept: application/json'
        - lang: C#
          source: |
            using System.Collections.Generic;
            using System.Diagnostics;
            using Bandwidth.Standard.Api;
            using Bandwidth.Standard.Client;
            using Bandwidth.Standard.Model;

            namespace Example
            {
                public class GetConferenceRecordingExample
                {
                    public static void Main()
                    {
                        Configuration config = new Configuration();
                        config.BasePath = "http://localhost";
                        // Configure HTTP basic authorization: Basic
                        config.Username = "YOUR_USERNAME";
                        config.Password = "YOUR_PASSWORD";

                        var apiInstance = new ConferencesApi(config);
                        var accountId = 9900000;  // string | Your Bandwidth Account ID.
                        var conferenceId = conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9;  // string | Programmable Voice API Conference ID.
                        var recordingId = r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85;  // string | Programmable Voice API Recording ID.

                        try
                        {
                            // Get Conference Recording Information
                            ConferenceRecordingMetadata result = apiInstance.GetConferenceRecording(accountId, conferenceId, recordingId);
                            Debug.WriteLine(result);
                        }
                        catch (ApiException  e)
                        {
                            Debug.Print("Exception when calling ConferencesApi.GetConferenceRecording: " + e.Message);
                            Debug.Print("Status Code: " + e.ErrorCode);
                            Debug.Print(e.StackTrace);
                        }
                    }
                }
            }
        - lang: Java
          source: |
            // Import classes:
            import com.bandwidth.sdk.ApiClient;
            import com.bandwidth.sdk.ApiException;
            import com.bandwidth.sdk.Configuration;
            import com.bandwidth.sdk.auth.*;
            import com.bandwidth.sdk.models.*;
            import com.bandwidth.sdk.api.ConferencesApi;

            public class Example {
              public static void main(String[] args) {
                ApiClient defaultClient = Configuration.getDefaultApiClient();
                defaultClient.setBasePath("http://localhost");
                
                // Configure HTTP basic authorization: Basic
                HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
                Basic.setUsername("YOUR USERNAME");
                Basic.setPassword("YOUR PASSWORD");

                ConferencesApi apiInstance = new ConferencesApi(defaultClient);
                String accountId = "9900000"; // String | Your Bandwidth Account ID.
                String conferenceId = "conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9"; // String | Programmable Voice API Conference ID.
                String recordingId = "r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Recording ID.
                try {
                  ConferenceRecordingMetadata result = apiInstance.getConferenceRecording(accountId, conferenceId, recordingId);
                  System.out.println(result);
                } catch (ApiException e) {
                  System.err.println("Exception when calling ConferencesApi#getConferenceRecording");
                  System.err.println("Status code: " + e.getCode());
                  System.err.println("Reason: " + e.getResponseBody());
                  System.err.println("Response headers: " + e.getResponseHeaders());
                  e.printStackTrace();
                }
              }
            }
        - lang: PHP
          source: |
            <?php

            require "vendor/autoload.php";

            api-username = "api-username";
            api-password = "api-pasword";
            12345 = "12345";

            $config = new BandwidthLib\Configuration(
                array(
                    'voiceBasicAuthUserName' => $BW_USERNAME,
                    'voiceBasicAuthPassword' => $BW_PASSWORD,
                )
            );
            $client = new BandwidthLib\BandwidthClient($config);

            $voiceClient = $client->getVoice()->getClient();

            $conferenceId = "c-1234";
            $recordingId = "r-1234";

            try {
                $response = $voiceClient->getConferenceRecording($BW_ACCOUNT_ID, $conferenceId, $recordingId);
                print_r($response->getResult()->applicationId);
            } catch (BandwidthLib\APIException $e) {
                print_r($e->getResponseCode());
            }
        - lang: Python
          source: >
            import bandwidth

            from bandwidth.models.conference_recording_metadata import
            ConferenceRecordingMetadata

            from bandwidth.rest import ApiException

            from pprint import pprint


            # Defining the host is optional and defaults to http://localhost

            # See configuration.py for a list of all supported configuration
            parameters.

            configuration = bandwidth.Configuration(
                host = "http://localhost"
            )


            # The client must configure the authentication and authorization
            parameters

            # in accordance with the API server security policy.

            # Examples for each auth method are provided below, use the example
            that

            # satisfies your auth use case.


            # Configure HTTP basic authorization: Basic

            configuration = bandwidth.Configuration(
                username = os.environ["USERNAME"],
                password = os.environ["PASSWORD"]
            )


            # Enter a context with an instance of the API client

            with bandwidth.ApiClient(configuration) as api_client:
                # Create an instance of the API class
                api_instance = bandwidth.ConferencesApi(api_client)
                account_id = '9900000' # str | Your Bandwidth Account ID.
                conference_id = 'conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9' # str | Programmable Voice API Conference ID.
                recording_id = 'r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # str | Programmable Voice API Recording ID.

                try:
                    # Get Conference Recording Information
                    api_response = api_instance.get_conference_recording(account_id, conference_id, recording_id)
                    print("The response of ConferencesApi->get_conference_recording:\n")
                    pprint(api_response)
                except Exception as e:
                    print("Exception when calling ConferencesApi->get_conference_recording: %s\n" % e)
        - lang: Ruby
          source: >
            require 'time'

            require 'bandwidth-sdk'

            # setup authorization

            Bandwidth.configure do |config|
              # Configure HTTP basic authorization: Basic
              config.username = 'YOUR USERNAME'
              config.password = 'YOUR PASSWORD'
            end


            api_instance = Bandwidth::ConferencesApi.new

            account_id = '9900000' # String | Your Bandwidth Account ID.

            conference_id = 'conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9'
            # String | Programmable Voice API Conference ID.

            recording_id = 'r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' #
            String | Programmable Voice API Recording ID.


            begin
              # Get Conference Recording Information
              result = api_instance.get_conference_recording(account_id, conference_id, recording_id)
              p result
            rescue Bandwidth::ApiError => e
              puts "Error when calling ConferencesApi->get_conference_recording: #{e}"
            end
        - lang: TypeScript
          source: >
            import {
                ConferencesApi,
                Configuration
            } from 'bandwidth-sdk';


            const configuration = new Configuration();

            const apiInstance = new ConferencesApi(configuration);


            let accountId: string; //Your Bandwidth Account ID. (default to
            undefined)

            let conferenceId: string; //Programmable Voice API Conference ID.
            (default to undefined)

            let recordingId: string; //Programmable Voice API Recording ID.
            (default to undefined)


            const { status, data } = await apiInstance.getConferenceRecording(
                accountId,
                conferenceId,
                recordingId
            );
  /accounts/{accountId}/conferences/{conferenceId}/recordings/{recordingId}/media:
    get:
      tags:
        - Conferences
      summary: Download Conference Recording
      description: Downloads the specified recording file.
      operationId: downloadConferenceRecording
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/conferenceId'
        - $ref: '#/components/parameters/recordingId'
      responses:
        '200':
          $ref: '#/components/responses/downloadRecordingMediaResponse'
        '400':
          $ref: '#/components/responses/voiceBadRequestError'
        '401':
          $ref: '#/components/responses/voiceUnauthorizedError'
        '403':
          $ref: '#/components/responses/voiceForbiddenError'
        '404':
          $ref: '#/components/responses/voiceNotFoundError'
        '405':
          $ref: '#/components/responses/voiceNotAllowedError'
        '415':
          $ref: '#/components/responses/voiceUnsupportedMediaTypeError'
        '429':
          $ref: '#/components/responses/voiceTooManyRequestsError'
        '500':
          $ref: '#/components/responses/voiceInternalServerError'
      x-codeSamples:
        - lang: cURL
          source: >-
            curl
            'https://voice.bandwidth.com/api/v2/accounts/9900000/conferences/conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9/recordings/r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85/media'
            \
              -H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
              -H 'Accept: audio/vnd.wave'
        - lang: C#
          source: |
            using System.Collections.Generic;
            using System.Diagnostics;
            using Bandwidth.Standard.Api;
            using Bandwidth.Standard.Client;
            using Bandwidth.Standard.Model;

            namespace Example
            {
                public class DownloadConferenceRecordingExample
                {
                    public static void Main()
                    {
                        Configuration config = new Configuration();
                        config.BasePath = "http://localhost";
                        // Configure HTTP basic authorization: Basic
                        config.Username = "YOUR_USERNAME";
                        config.Password = "YOUR_PASSWORD";

                        var apiInstance = new ConferencesApi(config);
                        var accountId = 9900000;  // string | Your Bandwidth Account ID.
                        var conferenceId = conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9;  // string | Programmable Voice API Conference ID.
                        var recordingId = r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85;  // string | Programmable Voice API Recording ID.

                        try
                        {
                            // Download Conference Recording
                            System.IO.Stream result = apiInstance.DownloadConferenceRecording(accountId, conferenceId, recordingId);
                            Debug.WriteLine(result);
                        }
                        catch (ApiException  e)
                        {
                            Debug.Print("Exception when calling ConferencesApi.DownloadConferenceRecording: " + e.Message);
                            Debug.Print("Status Code: " + e.ErrorCode);
                            Debug.Print(e.StackTrace);
                        }
                    }
                }
            }
        - lang: Java
          source: |
            // Import classes:
            import com.bandwidth.sdk.ApiClient;
            import com.bandwidth.sdk.ApiException;
            import com.bandwidth.sdk.Configuration;
            import com.bandwidth.sdk.auth.*;
            import com.bandwidth.sdk.models.*;
            import com.bandwidth.sdk.api.ConferencesApi;

            public class Example {
              public static void main(String[] args) {
                ApiClient defaultClient = Configuration.getDefaultApiClient();
                defaultClient.setBasePath("http://localhost");
                
                // Configure HTTP basic authorization: Basic
                HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
                Basic.setUsername("YOUR USERNAME");
                Basic.setPassword("YOUR PASSWORD");

                ConferencesApi apiInstance = new ConferencesApi(defaultClient);
                String accountId = "9900000"; // String | Your Bandwidth Account ID.
                String conferenceId = "conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9"; // String | Programmable Voice API Conference ID.
                String recordingId = "r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Recording ID.
                try {
                  File result = apiInstance.downloadConferenceRecording(accountId, conferenceId, recordingId);
                  System.out.println(result);
                } catch (ApiException e) {
                  System.err.println("Exception when calling ConferencesApi#downloadConferenceRecording");
                  System.err.println("Status code: " + e.getCode());
                  System.err.println("Reason: " + e.getResponseBody());
                  System.err.println("Response headers: " + e.getResponseHeaders());
                  e.printStackTrace();
                }
              }
            }
        - lang: PHP
          source: |
            <?php
              
            require "vendor/autoload.php";

            api-username = "api-username";
            api-password = "api-pasword";
            12345 = "12345";

            $config = new BandwidthLib\Configuration(
                array(
                    'voiceBasicAuthUserName' => $BW_USERNAME,
                    'voiceBasicAuthPassword' => $BW_PASSWORD,
                )
            );
            $client = new BandwidthLib\BandwidthClient($config);

            $voiceClient = $client->getVoice()->getClient();

            $conferenceId = "conf-1234";
            $recordingId = "r-1234";

            try {
                $response = $voiceClient->getDownloadConferenceRecording($BW_ACCOUNT_ID, $conferenceId, $recordingId);
                $downloaded_recording = $response->getResult();
            } catch (BandwidthLib\APIException $e) {
                print_r($e->getResponseCode());
            }
        - lang: Python
          source: >
            import bandwidth

            from bandwidth.rest import ApiException

            from pprint import pprint


            # Defining the host is optional and defaults to http://localhost

            # See configuration.py for a list of all supported configuration
            parameters.

            configuration = bandwidth.Configuration(
                host = "http://localhost"
            )


            # The client must configure the authentication and authorization
            parameters

            # in accordance with the API server security policy.

            # Examples for each auth method are provided below, use the example
            that

            # satisfies your auth use case.


            # Configure HTTP basic authorization: Basic

            configuration = bandwidth.Configuration(
                username = os.environ["USERNAME"],
                password = os.environ["PASSWORD"]
            )


            # Enter a context with an instance of the API client

            with bandwidth.ApiClient(configuration) as api_client:
                # Create an instance of the API class
                api_instance = bandwidth.ConferencesApi(api_client)
                account_id = '9900000' # str | Your Bandwidth Account ID.
                conference_id = 'conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9' # str | Programmable Voice API Conference ID.
                recording_id = 'r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # str | Programmable Voice API Recording ID.

                try:
                    # Download Conference Recording
                    api_response = api_instance.download_conference_recording(account_id, conference_id, recording_id)
                    print("The response of ConferencesApi->download_conference_recording:\n")
                    pprint(api_response)
                except Exception as e:
                    print("Exception when calling ConferencesApi->download_conference_recording: %s\n" % e)
        - lang: Ruby
          source: >
            require 'time'

            require 'bandwidth-sdk'

            # setup authorization

            Bandwidth.configure do |config|
              # Configure HTTP basic authorization: Basic
              config.username = 'YOUR USERNAME'
              config.password = 'YOUR PASSWORD'
            end


            api_instance = Bandwidth::ConferencesApi.new

            account_id = '9900000' # String | Your Bandwidth Account ID.

            conference_id = 'conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9'
            # String | Programmable Voice API Conference ID.

            recording_id = 'r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' #
            String | Programmable Voice API Recording ID.


            begin
              # Download Conference Recording
              result = api_instance.download_conference_recording(account_id, conference_id, recording_id)
              p result
            rescue Bandwidth::ApiError => e
              puts "Error when calling ConferencesApi->download_conference_recording: #{e}"
            end
        - lang: TypeScript
          source: >
            import {
                ConferencesApi,
                Configuration
            } from 'bandwidth-sdk';


            const configuration = new Configuration();

            const apiInstance = new ConferencesApi(configuration);


            let accountId: string; //Your Bandwidth Account ID. (default to
            undefined)

            let conferenceId: string; //Programmable Voice API Conference ID.
            (default to undefined)

            let recordingId: string; //Programmable Voice API Recording ID.
            (default to undefined)


            const { status, data } = await
            apiInstance.downloadConferenceRecording(
                accountId,
                conferenceId,
                recordingId
            );
  /accounts/{accountId}/recordings:
    get:
      tags:
        - Recordings
      summary: Get Call Recordings
      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:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/to'
        - $ref: '#/components/parameters/from'
        - $ref: '#/components/parameters/minStartTime'
        - $ref: '#/components/parameters/maxStartTime'
      responses:
        '200':
          $ref: '#/components/responses/listCallRecordingsResponse'
        '400':
          $ref: '#/components/responses/voiceBadRequestError'
        '401':
          $ref: '#/components/responses/voiceUnauthorizedError'
        '403':
          $ref: '#/components/responses/voiceForbiddenError'
        '404':
          $ref: '#/components/responses/voiceNotFoundError'
        '405':
          $ref: '#/components/responses/voiceNotAllowedError'
        '415':
          $ref: '#/components/responses/voiceUnsupportedMediaTypeError'
        '429':
          $ref: '#/components/responses/voiceTooManyRequestsError'
        '500':
          $ref: '#/components/responses/voiceInternalServerError'
      x-codeSamples:
        - lang: cURL
          source: >-
            curl
            'https://voice.bandwidth.com/api/v2/accounts/9900000/recordings?to=%2b19195551234&from=%2b19195554321&minStartTime=2022-06-21T19%3A13%3A21Z&maxStartTime=2022-06-21T19%3A13%3A21Z'
            \
              -H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
              -H 'Accept: application/json'
        - lang: C#
          source: |
            using System.Collections.Generic;
            using System.Diagnostics;
            using Bandwidth.Standard.Api;
            using Bandwidth.Standard.Client;
            using Bandwidth.Standard.Model;

            namespace Example
            {
                public class ListAccountCallRecordingsExample
                {
                    public static void Main()
                    {
                        Configuration config = new Configuration();
                        config.BasePath = "http://localhost";
                        // Configure HTTP basic authorization: Basic
                        config.Username = "YOUR_USERNAME";
                        config.Password = "YOUR_PASSWORD";

                        var apiInstance = new RecordingsApi(config);
                        var accountId = 9900000;  // string | Your Bandwidth Account ID.
                        var to = %2b19195551234;  // string | Filter results by the `to` field. (optional) 
                        var from = %2b19195554321;  // string | Filter results by the `from` field. (optional) 
                        var minStartTime = 2022-06-21T19:13:21Z;  // string | Filter results to recordings which have a `startTime` after or including `minStartTime` (in ISO8601 format). (optional) 
                        var maxStartTime = 2022-06-21T19:13:21Z;  // string | Filter results to recordings which have a `startTime` before `maxStartTime` (in ISO8601 format). (optional) 

                        try
                        {
                            // Get Call Recordings
                            List<CallRecordingMetadata> result = apiInstance.ListAccountCallRecordings(accountId, to, from, minStartTime, maxStartTime);
                            Debug.WriteLine(result);
                        }
                        catch (ApiException  e)
                        {
                            Debug.Print("Exception when calling RecordingsApi.ListAccountCallRecordings: " + e.Message);
                            Debug.Print("Status Code: " + e.ErrorCode);
                            Debug.Print(e.StackTrace);
                        }
                    }
                }
            }
        - lang: Java
          source: |
            // Import classes:
            import com.bandwidth.sdk.ApiClient;
            import com.bandwidth.sdk.ApiException;
            import com.bandwidth.sdk.Configuration;
            import com.bandwidth.sdk.auth.*;
            import com.bandwidth.sdk.models.*;
            import com.bandwidth.sdk.api.RecordingsApi;

            public class Example {
              public static void main(String[] args) {
                ApiClient defaultClient = Configuration.getDefaultApiClient();
                defaultClient.setBasePath("http://localhost");
                
                // Configure HTTP basic authorization: Basic
                HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
                Basic.setUsername("YOUR USERNAME");
                Basic.setPassword("YOUR PASSWORD");

                RecordingsApi apiInstance = new RecordingsApi(defaultClient);
                String accountId = "9900000"; // String | Your Bandwidth Account ID.
                String to = "%2b19195551234"; // String | Filter results by the `to` field.
                String from = "%2b19195554321"; // String | Filter results by the `from` field.
                String minStartTime = "2022-06-21T19:13:21Z"; // String | Filter results to recordings which have a `startTime` after or including `minStartTime` (in ISO8601 format).
                String maxStartTime = "2022-06-21T19:13:21Z"; // String | Filter results to recordings which have a `startTime` before `maxStartTime` (in ISO8601 format).
                try {
                  List<CallRecordingMetadata> result = apiInstance.listAccountCallRecordings(accountId, to, from, minStartTime, maxStartTime);
                  System.out.println(result);
                } catch (ApiException e) {
                  System.err.println("Exception when calling RecordingsApi#listAccountCallRecordings");
                  System.err.println("Status code: " + e.getCode());
                  System.err.println("Reason: " + e.getResponseBody());
                  System.err.println("Response headers: " + e.getResponseHeaders());
                  e.printStackTrace();
                }
              }
            }
        - lang: PHP
          source: |
            <?php
              
            require "vendor/autoload.php";

            api-username = "api-username";
            api-password = "api-pasword";
            12345 = "12345";

            $config = new BandwidthLib\Configuration(
                array(
                    'voiceBasicAuthUserName' => $BW_USERNAME,
                    'voiceBasicAuthPassword' => $BW_PASSWORD,
                )
            );
            $client = new BandwidthLib\BandwidthClient($config);

            $voiceClient = $client->getVoice()->getClient();

            try {
                $response = $voiceClient->getQueryCallRecordings($BW_ACCOUNT_ID);
                if (count($response->getResult()) > 0) {
                    print_r($response->getResult()[0]->recordingId);
                }
            } catch (BandwidthLib\APIException $e) {
                print_r($e->getResponseCode());
            }
        - lang: Python
          source: >
            import bandwidth

            from bandwidth.models.call_recording_metadata import
            CallRecordingMetadata

            from bandwidth.rest import ApiException

            from pprint import pprint


            # Defining the host is optional and defaults to http://localhost

            # See configuration.py for a list of all supported configuration
            parameters.

            configuration = bandwidth.Configuration(
                host = "http://localhost"
            )


            # The client must configure the authentication and authorization
            parameters

            # in accordance with the API server security policy.

            # Examples for each auth method are provided below, use the example
            that

            # satisfies your auth use case.


            # Configure HTTP basic authorization: Basic

            configuration = bandwidth.Configuration(
                username = os.environ["USERNAME"],
                password = os.environ["PASSWORD"]
            )


            # Enter a context with an instance of the API client

            with bandwidth.ApiClient(configuration) as api_client:
                # Create an instance of the API class
                api_instance = bandwidth.RecordingsApi(api_client)
                account_id = '9900000' # str | Your Bandwidth Account ID.
                to = '%2b19195551234' # str | Filter results by the `to` field. (optional)
                var_from = '%2b19195554321' # str | Filter results by the `from` field. (optional)
                min_start_time = '2022-06-21T19:13:21Z' # str | Filter results to recordings which have a `startTime` after or including `minStartTime` (in ISO8601 format). (optional)
                max_start_time = '2022-06-21T19:13:21Z' # str | Filter results to recordings which have a `startTime` before `maxStartTime` (in ISO8601 format). (optional)

                try:
                    # Get Call Recordings
                    api_response = api_instance.list_account_call_recordings(account_id, to=to, var_from=var_from, min_start_time=min_start_time, max_start_time=max_start_time)
                    print("The response of RecordingsApi->list_account_call_recordings:\n")
                    pprint(api_response)
                except Exception as e:
                    print("Exception when calling RecordingsApi->list_account_call_recordings: %s\n" % e)
        - lang: Ruby
          source: |
            require 'time'
            require 'bandwidth-sdk'
            # setup authorization
            Bandwidth.configure do |config|
              # Configure HTTP basic authorization: Basic
              config.username = 'YOUR USERNAME'
              config.password = 'YOUR PASSWORD'
            end

            api_instance = Bandwidth::RecordingsApi.new
            account_id = '9900000' # String | Your Bandwidth Account ID.
            opts = {
              to: '%2b19195551234', # String | Filter results by the `to` field.
              from: '%2b19195554321', # String | Filter results by the `from` field.
              min_start_time: '2022-06-21T19:13:21Z', # String | Filter results to recordings which have a `startTime` after or including `minStartTime` (in ISO8601 format).
              max_start_time: '2022-06-21T19:13:21Z' # String | Filter results to recordings which have a `startTime` before `maxStartTime` (in ISO8601 format).
            }

            begin
              # Get Call Recordings
              result = api_instance.list_account_call_recordings(account_id, opts)
              p result
            rescue Bandwidth::ApiError => e
              puts "Error when calling RecordingsApi->list_account_call_recordings: #{e}"
            end
        - lang: TypeScript
          source: >
            import {
                RecordingsApi,
                Configuration
            } from 'bandwidth-sdk';


            const configuration = new Configuration();

            const apiInstance = new RecordingsApi(configuration);


            let accountId: string; //Your Bandwidth Account ID. (default to
            undefined)

            let to: string; //Filter results by the `to` field. (optional)
            (default to undefined)

            let from: string; //Filter results by the `from` field. (optional)
            (default to undefined)

            let minStartTime: string; //Filter results to recordings which have
            a `startTime` after or including `minStartTime` (in ISO8601 format).
            (optional) (default to undefined)

            let maxStartTime: string; //Filter results to recordings which have
            a `startTime` before `maxStartTime` (in ISO8601 format). (optional)
            (default to undefined)


            const { status, data } = await
            apiInstance.listAccountCallRecordings(
                accountId,
                to,
                from,
                minStartTime,
                maxStartTime
            );
  /accounts/{accountId}/calls/{callId}/recording:
    put:
      tags:
        - Recordings
      summary: Update Recording
      description: Pause or resume a recording on an active phone call.
      operationId: updateCallRecordingState
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/callId'
      requestBody:
        $ref: '#/components/requestBodies/updateCallRecordingRequest'
      responses:
        '200':
          $ref: '#/components/responses/updateRecordingResponse'
        '400':
          $ref: '#/components/responses/voiceBadRequestError'
        '401':
          $ref: '#/components/responses/voiceUnauthorizedError'
        '403':
          $ref: '#/components/responses/voiceForbiddenError'
        '404':
          $ref: '#/components/responses/voiceNotFoundError'
        '405':
          $ref: '#/components/responses/voiceNotAllowedError'
        '415':
          $ref: '#/components/responses/voiceUnsupportedMediaTypeError'
        '429':
          $ref: '#/components/responses/voiceTooManyRequestsError'
        '500':
          $ref: '#/components/responses/voiceInternalServerError'
      x-codeSamples:
        - lang: cURL
          source: >-
            curl -X PUT
            'https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85/recording'
            \
              -H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
              -H 'Content-Type: application/json' \
              -H 'Accept: application/json' \
              -d '{
                "state": "paused"
              }'
        - lang: C#
          source: |
            using System.Collections.Generic;
            using System.Diagnostics;
            using Bandwidth.Standard.Api;
            using Bandwidth.Standard.Client;
            using Bandwidth.Standard.Model;

            namespace Example
            {
                public class UpdateCallRecordingStateExample
                {
                    public static void Main()
                    {
                        Configuration config = new Configuration();
                        config.BasePath = "http://localhost";
                        // Configure HTTP basic authorization: Basic
                        config.Username = "YOUR_USERNAME";
                        config.Password = "YOUR_PASSWORD";

                        var apiInstance = new RecordingsApi(config);
                        var accountId = 9900000;  // string | Your Bandwidth Account ID.
                        var callId = c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85;  // string | Programmable Voice API Call ID.
                        var updateCallRecording = new UpdateCallRecording(); // UpdateCallRecording | 

                        try
                        {
                            // Update Recording
                            apiInstance.UpdateCallRecordingState(accountId, callId, updateCallRecording);
                        }
                        catch (ApiException  e)
                        {
                            Debug.Print("Exception when calling RecordingsApi.UpdateCallRecordingState: " + e.Message);
                            Debug.Print("Status Code: " + e.ErrorCode);
                            Debug.Print(e.StackTrace);
                        }
                    }
                }
            }
        - lang: Java
          source: |
            // Import classes:
            import com.bandwidth.sdk.ApiClient;
            import com.bandwidth.sdk.ApiException;
            import com.bandwidth.sdk.Configuration;
            import com.bandwidth.sdk.auth.*;
            import com.bandwidth.sdk.models.*;
            import com.bandwidth.sdk.api.RecordingsApi;

            public class Example {
              public static void main(String[] args) {
                ApiClient defaultClient = Configuration.getDefaultApiClient();
                defaultClient.setBasePath("http://localhost");
                
                // Configure HTTP basic authorization: Basic
                HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
                Basic.setUsername("YOUR USERNAME");
                Basic.setPassword("YOUR PASSWORD");

                RecordingsApi apiInstance = new RecordingsApi(defaultClient);
                String accountId = "9900000"; // String | Your Bandwidth Account ID.
                String callId = "c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Call ID.
                UpdateCallRecording updateCallRecording = new UpdateCallRecording(); // UpdateCallRecording | 
                try {
                  apiInstance.updateCallRecordingState(accountId, callId, updateCallRecording);
                } catch (ApiException e) {
                  System.err.println("Exception when calling RecordingsApi#updateCallRecordingState");
                  System.err.println("Status code: " + e.getCode());
                  System.err.println("Reason: " + e.getResponseBody());
                  System.err.println("Response headers: " + e.getResponseHeaders());
                  e.printStackTrace();
                }
              }
            }
        - lang: PHP
          source: |
            <?php
              
            require "vendor/autoload.php";

            api-username = "api-username";
            api-password = "api-pasword";
            12345 = "12345";

            $config = new BandwidthLib\Configuration(
                array(
                    'voiceBasicAuthUserName' => $BW_USERNAME,
                    'voiceBasicAuthPassword' => $BW_PASSWORD,
                )
            );
            $client = new BandwidthLib\BandwidthClient($config);

            $voiceClient = $client->getVoice()->getClient();

            $callId = "c-1234";

            $body = new BandwidthLib\Voice\Models\ModifyCallRecordingRequest();
            $body->redirectUrl = "http://www.myapp.com/new";
            $body->state = "paused";

            try {
                $voiceClient->modifyCallRecordingState($BW_ACCOUNT_ID, $callId, $body);
            } catch (BandwidthLib\APIException $e) {
                print_r($e->getResponseCode());
            }
        - lang: Python
          source: >
            import bandwidth

            from bandwidth.models.update_call_recording import
            UpdateCallRecording

            from bandwidth.rest import ApiException

            from pprint import pprint


            # Defining the host is optional and defaults to http://localhost

            # See configuration.py for a list of all supported configuration
            parameters.

            configuration = bandwidth.Configuration(
                host = "http://localhost"
            )


            # The client must configure the authentication and authorization
            parameters

            # in accordance with the API server security policy.

            # Examples for each auth method are provided below, use the example
            that

            # satisfies your auth use case.


            # Configure HTTP basic authorization: Basic

            configuration = bandwidth.Configuration(
                username = os.environ["USERNAME"],
                password = os.environ["PASSWORD"]
            )


            # Enter a context with an instance of the API client

            with bandwidth.ApiClient(configuration) as api_client:
                # Create an instance of the API class
                api_instance = bandwidth.RecordingsApi(api_client)
                account_id = '9900000' # str | Your Bandwidth Account ID.
                call_id = 'c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # str | Programmable Voice API Call ID.
                update_call_recording = bandwidth.UpdateCallRecording() # UpdateCallRecording | 

                try:
                    # Update Recording
                    api_instance.update_call_recording_state(account_id, call_id, update_call_recording)
                except Exception as e:
                    print("Exception when calling RecordingsApi->update_call_recording_state: %s\n" % e)
        - lang: Ruby
          source: >
            require 'time'

            require 'bandwidth-sdk'

            # setup authorization

            Bandwidth.configure do |config|
              # Configure HTTP basic authorization: Basic
              config.username = 'YOUR USERNAME'
              config.password = 'YOUR PASSWORD'
            end


            api_instance = Bandwidth::RecordingsApi.new

            account_id = '9900000' # String | Your Bandwidth Account ID.

            call_id = 'c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # String
            | Programmable Voice API Call ID.

            update_call_recording = Bandwidth::UpdateCallRecording.new({state:
            Bandwidth::RecordingStateEnum::PAUSED}) # UpdateCallRecording | 


            begin
              # Update Recording
              api_instance.update_call_recording_state(account_id, call_id, update_call_recording)
            rescue Bandwidth::ApiError => e
              puts "Error when calling RecordingsApi->update_call_recording_state: #{e}"
            end
        - lang: TypeScript
          source: >
            import {
                RecordingsApi,
                Configuration,
                UpdateCallRecording
            } from 'bandwidth-sdk';


            const configuration = new Configuration();

            const apiInstance = new RecordingsApi(configuration);


            let accountId: string; //Your Bandwidth Account ID. (default to
            undefined)

            let callId: string; //Programmable Voice API Call ID. (default to
            undefined)

            let updateCallRecording: UpdateCallRecording; //


            const { status, data } = await apiInstance.updateCallRecordingState(
                accountId,
                callId,
                updateCallRecording
            );
  /accounts/{accountId}/calls/{callId}/recordings:
    get:
      tags:
        - Recordings
      summary: List Call Recordings
      description: |-
        Returns a (potentially empty) list of metadata for the recordings
        that took place during the specified call.
      operationId: listCallRecordings
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/callId'
      responses:
        '200':
          $ref: '#/components/responses/listCallRecordingsResponse'
        '400':
          $ref: '#/components/responses/voiceBadRequestError'
        '401':
          $ref: '#/components/responses/voiceUnauthorizedError'
        '403':
          $ref: '#/components/responses/voiceForbiddenError'
        '404':
          $ref: '#/components/responses/voiceNotFoundError'
        '405':
          $ref: '#/components/responses/voiceNotAllowedError'
        '415':
          $ref: '#/components/responses/voiceUnsupportedMediaTypeError'
        '429':
          $ref: '#/components/responses/voiceTooManyRequestsError'
        '500':
          $ref: '#/components/responses/voiceInternalServerError'
      x-codeSamples:
        - lang: cURL
          source: >-
            curl
            'https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85/recordings'
            \
              -H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
              -H 'Accept: application/json'
        - lang: C#
          source: |
            using System.Collections.Generic;
            using System.Diagnostics;
            using Bandwidth.Standard.Api;
            using Bandwidth.Standard.Client;
            using Bandwidth.Standard.Model;

            namespace Example
            {
                public class ListCallRecordingsExample
                {
                    public static void Main()
                    {
                        Configuration config = new Configuration();
                        config.BasePath = "http://localhost";
                        // Configure HTTP basic authorization: Basic
                        config.Username = "YOUR_USERNAME";
                        config.Password = "YOUR_PASSWORD";

                        var apiInstance = new RecordingsApi(config);
                        var accountId = 9900000;  // string | Your Bandwidth Account ID.
                        var callId = c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85;  // string | Programmable Voice API Call ID.

                        try
                        {
                            // List Call Recordings
                            List<CallRecordingMetadata> result = apiInstance.ListCallRecordings(accountId, callId);
                            Debug.WriteLine(result);
                        }
                        catch (ApiException  e)
                        {
                            Debug.Print("Exception when calling RecordingsApi.ListCallRecordings: " + e.Message);
                            Debug.Print("Status Code: " + e.ErrorCode);
                            Debug.Print(e.StackTrace);
                        }
                    }
                }
            }
        - lang: Java
          source: |
            // Import classes:
            import com.bandwidth.sdk.ApiClient;
            import com.bandwidth.sdk.ApiException;
            import com.bandwidth.sdk.Configuration;
            import com.bandwidth.sdk.auth.*;
            import com.bandwidth.sdk.models.*;
            import com.bandwidth.sdk.api.RecordingsApi;

            public class Example {
              public static void main(String[] args) {
                ApiClient defaultClient = Configuration.getDefaultApiClient();
                defaultClient.setBasePath("http://localhost");
                
                // Configure HTTP basic authorization: Basic
                HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
                Basic.setUsername("YOUR USERNAME");
                Basic.setPassword("YOUR PASSWORD");

                RecordingsApi apiInstance = new RecordingsApi(defaultClient);
                String accountId = "9900000"; // String | Your Bandwidth Account ID.
                String callId = "c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Call ID.
                try {
                  List<CallRecordingMetadata> result = apiInstance.listCallRecordings(accountId, callId);
                  System.out.println(result);
                } catch (ApiException e) {
                  System.err.println("Exception when calling RecordingsApi#listCallRecordings");
                  System.err.println("Status code: " + e.getCode());
                  System.err.println("Reason: " + e.getResponseBody());
                  System.err.println("Response headers: " + e.getResponseHeaders());
                  e.printStackTrace();
                }
              }
            }
        - lang: PHP
          source: |
            <?php

            require "vendor/autoload.php";

            api-username = "api-username";
            api-password = "api-pasword";
            12345 = "12345";

            $config = new BandwidthLib\Configuration(
                array(
                    'voiceBasicAuthUserName' => $BW_USERNAME,
                    'voiceBasicAuthPassword' => $BW_PASSWORD,
                )
            );
            $client = new BandwidthLib\BandwidthClient($config);

            $voiceClient = $client->getVoice()->getClient();

            $callId = "c-1234";

            try {
                $response = $voiceClient->getCallRecordings($BW_ACCOUNT_ID, $callId);
                if (count($response->getResult()) > 0) {
                    print_r($response->getResult()[0]->recordingId);
                }
            } catch (BandwidthLib\APIException $e) {
                print_r($e->getResponseCode());
            }
        - lang: Python
          source: >
            import bandwidth

            from bandwidth.models.call_recording_metadata import
            CallRecordingMetadata

            from bandwidth.rest import ApiException

            from pprint import pprint


            # Defining the host is optional and defaults to http://localhost

            # See configuration.py for a list of all supported configuration
            parameters.

            configuration = bandwidth.Configuration(
                host = "http://localhost"
            )


            # The client must configure the authentication and authorization
            parameters

            # in accordance with the API server security policy.

            # Examples for each auth method are provided below, use the example
            that

            # satisfies your auth use case.


            # Configure HTTP basic authorization: Basic

            configuration = bandwidth.Configuration(
                username = os.environ["USERNAME"],
                password = os.environ["PASSWORD"]
            )


            # Enter a context with an instance of the API client

            with bandwidth.ApiClient(configuration) as api_client:
                # Create an instance of the API class
                api_instance = bandwidth.RecordingsApi(api_client)
                account_id = '9900000' # str | Your Bandwidth Account ID.
                call_id = 'c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # str | Programmable Voice API Call ID.

                try:
                    # List Call Recordings
                    api_response = api_instance.list_call_recordings(account_id, call_id)
                    print("The response of RecordingsApi->list_call_recordings:\n")
                    pprint(api_response)
                except Exception as e:
                    print("Exception when calling RecordingsApi->list_call_recordings: %s\n" % e)
        - lang: Ruby
          source: >
            require 'time'

            require 'bandwidth-sdk'

            # setup authorization

            Bandwidth.configure do |config|
              # Configure HTTP basic authorization: Basic
              config.username = 'YOUR USERNAME'
              config.password = 'YOUR PASSWORD'
            end


            api_instance = Bandwidth::RecordingsApi.new

            account_id = '9900000' # String | Your Bandwidth Account ID.

            call_id = 'c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # String
            | Programmable Voice API Call ID.


            begin
              # List Call Recordings
              result = api_instance.list_call_recordings(account_id, call_id)
              p result
            rescue Bandwidth::ApiError => e
              puts "Error when calling RecordingsApi->list_call_recordings: #{e}"
            end
        - lang: TypeScript
          source: >
            import {
                RecordingsApi,
                Configuration
            } from 'bandwidth-sdk';


            const configuration = new Configuration();

            const apiInstance = new RecordingsApi(configuration);


            let accountId: string; //Your Bandwidth Account ID. (default to
            undefined)

            let callId: string; //Programmable Voice API Call ID. (default to
            undefined)


            const { status, data } = await apiInstance.listCallRecordings(
                accountId,
                callId
            );
  /accounts/{accountId}/calls/{callId}/recordings/{recordingId}:
    get:
      tags:
        - Recordings
      summary: Get Call Recording
      description: Returns metadata for the specified recording.
      operationId: getCallRecording
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/callId'
        - $ref: '#/components/parameters/recordingId'
      responses:
        '200':
          $ref: '#/components/responses/getCallRecordingResponse'
        '400':
          $ref: '#/components/responses/voiceBadRequestError'
        '401':
          $ref: '#/components/responses/voiceUnauthorizedError'
        '403':
          $ref: '#/components/responses/voiceForbiddenError'
        '404':
          $ref: '#/components/responses/voiceNotFoundError'
        '405':
          $ref: '#/components/responses/voiceNotAllowedError'
        '415':
          $ref: '#/components/responses/voiceUnsupportedMediaTypeError'
        '429':
          $ref: '#/components/responses/voiceTooManyRequestsError'
        '500':
          $ref: '#/components/responses/voiceInternalServerError'
      x-codeSamples:
        - lang: cURL
          source: >-
            curl
            'https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85/recordings/r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85'
            \
              -H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
              -H 'Accept: application/json'
        - lang: C#
          source: |
            using System.Collections.Generic;
            using System.Diagnostics;
            using Bandwidth.Standard.Api;
            using Bandwidth.Standard.Client;
            using Bandwidth.Standard.Model;

            namespace Example
            {
                public class GetCallRecordingExample
                {
                    public static void Main()
                    {
                        Configuration config = new Configuration();
                        config.BasePath = "http://localhost";
                        // Configure HTTP basic authorization: Basic
                        config.Username = "YOUR_USERNAME";
                        config.Password = "YOUR_PASSWORD";

                        var apiInstance = new RecordingsApi(config);
                        var accountId = 9900000;  // string | Your Bandwidth Account ID.
                        var callId = c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85;  // string | Programmable Voice API Call ID.
                        var recordingId = r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85;  // string | Programmable Voice API Recording ID.

                        try
                        {
                            // Get Call Recording
                            CallRecordingMetadata result = apiInstance.GetCallRecording(accountId, callId, recordingId);
                            Debug.WriteLine(result);
                        }
                        catch (ApiException  e)
                        {
                            Debug.Print("Exception when calling RecordingsApi.GetCallRecording: " + e.Message);
                            Debug.Print("Status Code: " + e.ErrorCode);
                            Debug.Print(e.StackTrace);
                        }
                    }
                }
            }
        - lang: Java
          source: |
            // Import classes:
            import com.bandwidth.sdk.ApiClient;
            import com.bandwidth.sdk.ApiException;
            import com.bandwidth.sdk.Configuration;
            import com.bandwidth.sdk.auth.*;
            import com.bandwidth.sdk.models.*;
            import com.bandwidth.sdk.api.RecordingsApi;

            public class Example {
              public static void main(String[] args) {
                ApiClient defaultClient = Configuration.getDefaultApiClient();
                defaultClient.setBasePath("http://localhost");
                
                // Configure HTTP basic authorization: Basic
                HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
                Basic.setUsername("YOUR USERNAME");
                Basic.setPassword("YOUR PASSWORD");

                RecordingsApi apiInstance = new RecordingsApi(defaultClient);
                String accountId = "9900000"; // String | Your Bandwidth Account ID.
                String callId = "c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Call ID.
                String recordingId = "r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Recording ID.
                try {
                  CallRecordingMetadata result = apiInstance.getCallRecording(accountId, callId, recordingId);
                  System.out.println(result);
                } catch (ApiException e) {
                  System.err.println("Exception when calling RecordingsApi#getCallRecording");
                  System.err.println("Status code: " + e.getCode());
                  System.err.println("Reason: " + e.getResponseBody());
                  System.err.println("Response headers: " + e.getResponseHeaders());
                  e.printStackTrace();
                }
              }
            }
        - lang: PHP
          source: |
            <?php

            require "vendor/autoload.php";

            api-username = "api-username";
            api-password = "api-pasword";
            12345 = "12345";

            $config = new BandwidthLib\Configuration(
                array(
                    'voiceBasicAuthUserName' => $BW_USERNAME,
                    'voiceBasicAuthPassword' => $BW_PASSWORD,
                )
            );
            $client = new BandwidthLib\BandwidthClient($config);

            $voiceClient = $client->getVoice()->getClient();

            $callId = "c-1234";
            $recordingId = "r-1234";

            try {
                $response = $voiceClient->getCallRecording($BW_ACCOUNT_ID, $callId, $recordingId);
                print_r($response->getResult()->applicationId);
            } catch (BandwidthLib\APIException $e) {
                print_r($e->getResponseCode());
            }
        - lang: Python
          source: >
            import bandwidth

            from bandwidth.models.call_recording_metadata import
            CallRecordingMetadata

            from bandwidth.rest import ApiException

            from pprint import pprint


            # Defining the host is optional and defaults to http://localhost

            # See configuration.py for a list of all supported configuration
            parameters.

            configuration = bandwidth.Configuration(
                host = "http://localhost"
            )


            # The client must configure the authentication and authorization
            parameters

            # in accordance with the API server security policy.

            # Examples for each auth method are provided below, use the example
            that

            # satisfies your auth use case.


            # Configure HTTP basic authorization: Basic

            configuration = bandwidth.Configuration(
                username = os.environ["USERNAME"],
                password = os.environ["PASSWORD"]
            )


            # Enter a context with an instance of the API client

            with bandwidth.ApiClient(configuration) as api_client:
                # Create an instance of the API class
                api_instance = bandwidth.RecordingsApi(api_client)
                account_id = '9900000' # str | Your Bandwidth Account ID.
                call_id = 'c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # str | Programmable Voice API Call ID.
                recording_id = 'r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # str | Programmable Voice API Recording ID.

                try:
                    # Get Call Recording
                    api_response = api_instance.get_call_recording(account_id, call_id, recording_id)
                    print("The response of RecordingsApi->get_call_recording:\n")
                    pprint(api_response)
                except Exception as e:
                    print("Exception when calling RecordingsApi->get_call_recording: %s\n" % e)
        - lang: Ruby
          source: >
            require 'time'

            require 'bandwidth-sdk'

            # setup authorization

            Bandwidth.configure do |config|
              # Configure HTTP basic authorization: Basic
              config.username = 'YOUR USERNAME'
              config.password = 'YOUR PASSWORD'
            end


            api_instance = Bandwidth::RecordingsApi.new

            account_id = '9900000' # String | Your Bandwidth Account ID.

            call_id = 'c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # String
            | Programmable Voice API Call ID.

            recording_id = 'r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' #
            String | Programmable Voice API Recording ID.


            begin
              # Get Call Recording
              result = api_instance.get_call_recording(account_id, call_id, recording_id)
              p result
            rescue Bandwidth::ApiError => e
              puts "Error when calling RecordingsApi->get_call_recording: #{e}"
            end
        - lang: TypeScript
          source: >
            import {
                RecordingsApi,
                Configuration
            } from 'bandwidth-sdk';


            const configuration = new Configuration();

            const apiInstance = new RecordingsApi(configuration);


            let accountId: string; //Your Bandwidth Account ID. (default to
            undefined)

            let callId: string; //Programmable Voice API Call ID. (default to
            undefined)

            let recordingId: string; //Programmable Voice API Recording ID.
            (default to undefined)


            const { status, data } = await apiInstance.getCallRecording(
                accountId,
                callId,
                recordingId
            );
    delete:
      tags:
        - Recordings
      summary: Delete Recording
      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:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/callId'
        - $ref: '#/components/parameters/recordingId'
      responses:
        '204':
          description: Recording was deleted.
        '400':
          $ref: '#/components/responses/voiceBadRequestError'
        '401':
          $ref: '#/components/responses/voiceUnauthorizedError'
        '403':
          $ref: '#/components/responses/voiceForbiddenError'
        '404':
          $ref: '#/components/responses/voiceNotFoundError'
        '405':
          $ref: '#/components/responses/voiceNotAllowedError'
        '415':
          $ref: '#/components/responses/voiceUnsupportedMediaTypeError'
        '429':
          $ref: '#/components/responses/voiceTooManyRequestsError'
        '500':
          $ref: '#/components/responses/voiceInternalServerError'
      x-codeSamples:
        - lang: cURL
          source: >-
            curl -X DELETE
            'https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85/recordings/r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85'
            \
              -H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
              -H 'Accept: application/json'
        - lang: C#
          source: |
            using System.Collections.Generic;
            using System.Diagnostics;
            using Bandwidth.Standard.Api;
            using Bandwidth.Standard.Client;
            using Bandwidth.Standard.Model;

            namespace Example
            {
                public class DeleteRecordingExample
                {
                    public static void Main()
                    {
                        Configuration config = new Configuration();
                        config.BasePath = "http://localhost";
                        // Configure HTTP basic authorization: Basic
                        config.Username = "YOUR_USERNAME";
                        config.Password = "YOUR_PASSWORD";

                        var apiInstance = new RecordingsApi(config);
                        var accountId = 9900000;  // string | Your Bandwidth Account ID.
                        var callId = c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85;  // string | Programmable Voice API Call ID.
                        var recordingId = r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85;  // string | Programmable Voice API Recording ID.

                        try
                        {
                            // Delete Recording
                            apiInstance.DeleteRecording(accountId, callId, recordingId);
                        }
                        catch (ApiException  e)
                        {
                            Debug.Print("Exception when calling RecordingsApi.DeleteRecording: " + e.Message);
                            Debug.Print("Status Code: " + e.ErrorCode);
                            Debug.Print(e.StackTrace);
                        }
                    }
                }
            }
        - lang: Java
          source: |
            // Import classes:
            import com.bandwidth.sdk.ApiClient;
            import com.bandwidth.sdk.ApiException;
            import com.bandwidth.sdk.Configuration;
            import com.bandwidth.sdk.auth.*;
            import com.bandwidth.sdk.models.*;
            import com.bandwidth.sdk.api.RecordingsApi;

            public class Example {
              public static void main(String[] args) {
                ApiClient defaultClient = Configuration.getDefaultApiClient();
                defaultClient.setBasePath("http://localhost");
                
                // Configure HTTP basic authorization: Basic
                HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
                Basic.setUsername("YOUR USERNAME");
                Basic.setPassword("YOUR PASSWORD");

                RecordingsApi apiInstance = new RecordingsApi(defaultClient);
                String accountId = "9900000"; // String | Your Bandwidth Account ID.
                String callId = "c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Call ID.
                String recordingId = "r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Recording ID.
                try {
                  apiInstance.deleteRecording(accountId, callId, recordingId);
                } catch (ApiException e) {
                  System.err.println("Exception when calling RecordingsApi#deleteRecording");
                  System.err.println("Status code: " + e.getCode());
                  System.err.println("Reason: " + e.getResponseBody());
                  System.err.println("Response headers: " + e.getResponseHeaders());
                  e.printStackTrace();
                }
              }
            }
        - lang: PHP
          source: |
            <?php

            require "vendor/autoload.php";

            api-username = "api-username";
            api-password = "api-pasword";
            12345 = "12345";

            $config = new BandwidthLib\Configuration(
                array(
                    'voiceBasicAuthUserName' => $BW_USERNAME,
                    'voiceBasicAuthPassword' => $BW_PASSWORD,
                )
            );
            $client = new BandwidthLib\BandwidthClient($config);

            $voiceClient = $client->getVoice()->getClient();

            $callId = "c-1234";
            $recordingId = "r-1234";

            try {
                $voiceClient->deleteRecording($BW_ACCOUNT_ID, $callId, $recordingId);
            } catch (BandwidthLib\APIException $e) {
                print_r($e->getResponseCode());
            }
        - lang: Python
          source: >
            import bandwidth

            from bandwidth.rest import ApiException

            from pprint import pprint


            # Defining the host is optional and defaults to http://localhost

            # See configuration.py for a list of all supported configuration
            parameters.

            configuration = bandwidth.Configuration(
                host = "http://localhost"
            )


            # The client must configure the authentication and authorization
            parameters

            # in accordance with the API server security policy.

            # Examples for each auth method are provided below, use the example
            that

            # satisfies your auth use case.


            # Configure HTTP basic authorization: Basic

            configuration = bandwidth.Configuration(
                username = os.environ["USERNAME"],
                password = os.environ["PASSWORD"]
            )


            # Enter a context with an instance of the API client

            with bandwidth.ApiClient(configuration) as api_client:
                # Create an instance of the API class
                api_instance = bandwidth.RecordingsApi(api_client)
                account_id = '9900000' # str | Your Bandwidth Account ID.
                call_id = 'c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # str | Programmable Voice API Call ID.
                recording_id = 'r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # str | Programmable Voice API Recording ID.

                try:
                    # Delete Recording
                    api_instance.delete_recording(account_id, call_id, recording_id)
                except Exception as e:
                    print("Exception when calling RecordingsApi->delete_recording: %s\n" % e)
        - lang: Ruby
          source: >
            require 'time'

            require 'bandwidth-sdk'

            # setup authorization

            Bandwidth.configure do |config|
              # Configure HTTP basic authorization: Basic
              config.username = 'YOUR USERNAME'
              config.password = 'YOUR PASSWORD'
            end


            api_instance = Bandwidth::RecordingsApi.new

            account_id = '9900000' # String | Your Bandwidth Account ID.

            call_id = 'c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # String
            | Programmable Voice API Call ID.

            recording_id = 'r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' #
            String | Programmable Voice API Recording ID.


            begin
              # Delete Recording
              api_instance.delete_recording(account_id, call_id, recording_id)
            rescue Bandwidth::ApiError => e
              puts "Error when calling RecordingsApi->delete_recording: #{e}"
            end
        - lang: TypeScript
          source: >
            import {
                RecordingsApi,
                Configuration
            } from 'bandwidth-sdk';


            const configuration = new Configuration();

            const apiInstance = new RecordingsApi(configuration);


            let accountId: string; //Your Bandwidth Account ID. (default to
            undefined)

            let callId: string; //Programmable Voice API Call ID. (default to
            undefined)

            let recordingId: string; //Programmable Voice API Recording ID.
            (default to undefined)


            const { status, data } = await apiInstance.deleteRecording(
                accountId,
                callId,
                recordingId
            );
  /accounts/{accountId}/calls/{callId}/recordings/{recordingId}/media:
    get:
      tags:
        - Recordings
      summary: Download Recording
      description: Downloads the specified recording.
      operationId: downloadCallRecording
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/callId'
        - $ref: '#/components/parameters/recordingId'
      responses:
        '200':
          $ref: '#/components/responses/downloadRecordingMediaResponse'
        '400':
          $ref: '#/components/responses/voiceBadRequestError'
        '401':
          $ref: '#/components/responses/voiceUnauthorizedError'
        '403':
          $ref: '#/components/responses/voiceForbiddenError'
        '404':
          $ref: '#/components/responses/voiceNotFoundError'
        '405':
          $ref: '#/components/responses/voiceNotAllowedError'
        '415':
          $ref: '#/components/responses/voiceUnsupportedMediaTypeError'
        '429':
          $ref: '#/components/responses/voiceTooManyRequestsError'
        '500':
          $ref: '#/components/responses/voiceInternalServerError'
      x-codeSamples:
        - lang: cURL
          source: >-
            curl
            'https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85/recordings/r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85/media'
            \
              -H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
              -H 'Accept: audio/vnd.wave'
        - lang: C#
          source: |
            using System.Collections.Generic;
            using System.Diagnostics;
            using Bandwidth.Standard.Api;
            using Bandwidth.Standard.Client;
            using Bandwidth.Standard.Model;

            namespace Example
            {
                public class DownloadCallRecordingExample
                {
                    public static void Main()
                    {
                        Configuration config = new Configuration();
                        config.BasePath = "http://localhost";
                        // Configure HTTP basic authorization: Basic
                        config.Username = "YOUR_USERNAME";
                        config.Password = "YOUR_PASSWORD";

                        var apiInstance = new RecordingsApi(config);
                        var accountId = 9900000;  // string | Your Bandwidth Account ID.
                        var callId = c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85;  // string | Programmable Voice API Call ID.
                        var recordingId = r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85;  // string | Programmable Voice API Recording ID.

                        try
                        {
                            // Download Recording
                            System.IO.Stream result = apiInstance.DownloadCallRecording(accountId, callId, recordingId);
                            Debug.WriteLine(result);
                        }
                        catch (ApiException  e)
                        {
                            Debug.Print("Exception when calling RecordingsApi.DownloadCallRecording: " + e.Message);
                            Debug.Print("Status Code: " + e.ErrorCode);
                            Debug.Print(e.StackTrace);
                        }
                    }
                }
            }
        - lang: Java
          source: |
            // Import classes:
            import com.bandwidth.sdk.ApiClient;
            import com.bandwidth.sdk.ApiException;
            import com.bandwidth.sdk.Configuration;
            import com.bandwidth.sdk.auth.*;
            import com.bandwidth.sdk.models.*;
            import com.bandwidth.sdk.api.RecordingsApi;

            public class Example {
              public static void main(String[] args) {
                ApiClient defaultClient = Configuration.getDefaultApiClient();
                defaultClient.setBasePath("http://localhost");
                
                // Configure HTTP basic authorization: Basic
                HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
                Basic.setUsername("YOUR USERNAME");
                Basic.setPassword("YOUR PASSWORD");

                RecordingsApi apiInstance = new RecordingsApi(defaultClient);
                String accountId = "9900000"; // String | Your Bandwidth Account ID.
                String callId = "c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Call ID.
                String recordingId = "r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Recording ID.
                try {
                  File result = apiInstance.downloadCallRecording(accountId, callId, recordingId);
                  System.out.println(result);
                } catch (ApiException e) {
                  System.err.println("Exception when calling RecordingsApi#downloadCallRecording");
                  System.err.println("Status code: " + e.getCode());
                  System.err.println("Reason: " + e.getResponseBody());
                  System.err.println("Response headers: " + e.getResponseHeaders());
                  e.printStackTrace();
                }
              }
            }
        - lang: PHP
          source: |
            <?php
              
            require "vendor/autoload.php";

            api-username = "api-username";
            api-password = "api-pasword";
            12345 = "12345";

            $config = new BandwidthLib\Configuration(
                array(
                    'voiceBasicAuthUserName' => $BW_USERNAME,
                    'voiceBasicAuthPassword' => $BW_PASSWORD,
                )
            );
            $client = new BandwidthLib\BandwidthClient($config);

            $voiceClient = $client->getVoice()->getClient();

            $callId = "c-1234";
            $recordingId = "r-1234";

            try {
                $response = $voiceClient->getDownloadCallRecording($BW_ACCOUNT_ID, $callId, $recordingId);
                $downloaded_recording = $response->getResult();
            } catch (BandwidthLib\APIException $e) {
                print_r($e->getResponseCode());
            }
        - lang: Python
          source: >
            import bandwidth

            from bandwidth.rest import ApiException

            from pprint import pprint


            # Defining the host is optional and defaults to http://localhost

            # See configuration.py for a list of all supported configuration
            parameters.

            configuration = bandwidth.Configuration(
                host = "http://localhost"
            )


            # The client must configure the authentication and authorization
            parameters

            # in accordance with the API server security policy.

            # Examples for each auth method are provided below, use the example
            that

            # satisfies your auth use case.


            # Configure HTTP basic authorization: Basic

            configuration = bandwidth.Configuration(
                username = os.environ["USERNAME"],
                password = os.environ["PASSWORD"]
            )


            # Enter a context with an instance of the API client

            with bandwidth.ApiClient(configuration) as api_client:
                # Create an instance of the API class
                api_instance = bandwidth.RecordingsApi(api_client)
                account_id = '9900000' # str | Your Bandwidth Account ID.
                call_id = 'c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # str | Programmable Voice API Call ID.
                recording_id = 'r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # str | Programmable Voice API Recording ID.

                try:
                    # Download Recording
                    api_response = api_instance.download_call_recording(account_id, call_id, recording_id)
                    print("The response of RecordingsApi->download_call_recording:\n")
                    pprint(api_response)
                except Exception as e:
                    print("Exception when calling RecordingsApi->download_call_recording: %s\n" % e)
        - lang: Ruby
          source: >
            require 'time'

            require 'bandwidth-sdk'

            # setup authorization

            Bandwidth.configure do |config|
              # Configure HTTP basic authorization: Basic
              config.username = 'YOUR USERNAME'
              config.password = 'YOUR PASSWORD'
            end


            api_instance = Bandwidth::RecordingsApi.new

            account_id = '9900000' # String | Your Bandwidth Account ID.

            call_id = 'c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # String
            | Programmable Voice API Call ID.

            recording_id = 'r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' #
            String | Programmable Voice API Recording ID.


            begin
              # Download Recording
              result = api_instance.download_call_recording(account_id, call_id, recording_id)
              p result
            rescue Bandwidth::ApiError => e
              puts "Error when calling RecordingsApi->download_call_recording: #{e}"
            end
        - lang: TypeScript
          source: >
            import {
                RecordingsApi,
                Configuration
            } from 'bandwidth-sdk';


            const configuration = new Configuration();

            const apiInstance = new RecordingsApi(configuration);


            let accountId: string; //Your Bandwidth Account ID. (default to
            undefined)

            let callId: string; //Programmable Voice API Call ID. (default to
            undefined)

            let recordingId: string; //Programmable Voice API Recording ID.
            (default to undefined)


            const { status, data } = await apiInstance.downloadCallRecording(
                accountId,
                callId,
                recordingId
            );
    delete:
      tags:
        - Recordings
      summary: Delete Recording Media
      description: Deletes the specified recording's media.
      operationId: deleteRecordingMedia
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/callId'
        - $ref: '#/components/parameters/recordingId'
      responses:
        '204':
          description: The recording media was successfully deleted.
        '400':
          $ref: '#/components/responses/voiceBadRequestError'
        '401':
          $ref: '#/components/responses/voiceUnauthorizedError'
        '403':
          $ref: '#/components/responses/voiceForbiddenError'
        '404':
          $ref: '#/components/responses/voiceNotFoundError'
        '405':
          $ref: '#/components/responses/voiceNotAllowedError'
        '415':
          $ref: '#/components/responses/voiceUnsupportedMediaTypeError'
        '429':
          $ref: '#/components/responses/voiceTooManyRequestsError'
        '500':
          $ref: '#/components/responses/voiceInternalServerError'
      x-codeSamples:
        - lang: cURL
          source: >-
            curl -X DELETE
            'https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85/recordings/r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85/media'
            \
              -H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
              -H 'Accept: application/json'
        - lang: C#
          source: |
            using System.Collections.Generic;
            using System.Diagnostics;
            using Bandwidth.Standard.Api;
            using Bandwidth.Standard.Client;
            using Bandwidth.Standard.Model;

            namespace Example
            {
                public class DeleteRecordingMediaExample
                {
                    public static void Main()
                    {
                        Configuration config = new Configuration();
                        config.BasePath = "http://localhost";
                        // Configure HTTP basic authorization: Basic
                        config.Username = "YOUR_USERNAME";
                        config.Password = "YOUR_PASSWORD";

                        var apiInstance = new RecordingsApi(config);
                        var accountId = 9900000;  // string | Your Bandwidth Account ID.
                        var callId = c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85;  // string | Programmable Voice API Call ID.
                        var recordingId = r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85;  // string | Programmable Voice API Recording ID.

                        try
                        {
                            // Delete Recording Media
                            apiInstance.DeleteRecordingMedia(accountId, callId, recordingId);
                        }
                        catch (ApiException  e)
                        {
                            Debug.Print("Exception when calling RecordingsApi.DeleteRecordingMedia: " + e.Message);
                            Debug.Print("Status Code: " + e.ErrorCode);
                            Debug.Print(e.StackTrace);
                        }
                    }
                }
            }
        - lang: Java
          source: |
            // Import classes:
            import com.bandwidth.sdk.ApiClient;
            import com.bandwidth.sdk.ApiException;
            import com.bandwidth.sdk.Configuration;
            import com.bandwidth.sdk.auth.*;
            import com.bandwidth.sdk.models.*;
            import com.bandwidth.sdk.api.RecordingsApi;

            public class Example {
              public static void main(String[] args) {
                ApiClient defaultClient = Configuration.getDefaultApiClient();
                defaultClient.setBasePath("http://localhost");
                
                // Configure HTTP basic authorization: Basic
                HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
                Basic.setUsername("YOUR USERNAME");
                Basic.setPassword("YOUR PASSWORD");

                RecordingsApi apiInstance = new RecordingsApi(defaultClient);
                String accountId = "9900000"; // String | Your Bandwidth Account ID.
                String callId = "c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Call ID.
                String recordingId = "r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Recording ID.
                try {
                  apiInstance.deleteRecordingMedia(accountId, callId, recordingId);
                } catch (ApiException e) {
                  System.err.println("Exception when calling RecordingsApi#deleteRecordingMedia");
                  System.err.println("Status code: " + e.getCode());
                  System.err.println("Reason: " + e.getResponseBody());
                  System.err.println("Response headers: " + e.getResponseHeaders());
                  e.printStackTrace();
                }
              }
            }
        - lang: PHP
          source: |
            <?php

            require "vendor/autoload.php";

            api-username = "api-username";
            api-password = "api-pasword";
            12345 = "12345";

            $config = new BandwidthLib\Configuration(
                array(
                    'voiceBasicAuthUserName' => $BW_USERNAME,
                    'voiceBasicAuthPassword' => $BW_PASSWORD,
                )
            );
            $client = new BandwidthLib\BandwidthClient($config);

            $voiceClient = $client->getVoice()->getClient();

            $callId = "c-1234";
            $recordingId = "r-1234";

            try {
                $voiceClient->deleteRecordingMedia($BW_ACCOUNT_ID, $callId, $recordingId);
            } catch (BandwidthLib\APIException $e) {
                print_r($e->getResponseCode());
            }
        - lang: Python
          source: >
            import bandwidth

            from bandwidth.rest import ApiException

            from pprint import pprint


            # Defining the host is optional and defaults to http://localhost

            # See configuration.py for a list of all supported configuration
            parameters.

            configuration = bandwidth.Configuration(
                host = "http://localhost"
            )


            # The client must configure the authentication and authorization
            parameters

            # in accordance with the API server security policy.

            # Examples for each auth method are provided below, use the example
            that

            # satisfies your auth use case.


            # Configure HTTP basic authorization: Basic

            configuration = bandwidth.Configuration(
                username = os.environ["USERNAME"],
                password = os.environ["PASSWORD"]
            )


            # Enter a context with an instance of the API client

            with bandwidth.ApiClient(configuration) as api_client:
                # Create an instance of the API class
                api_instance = bandwidth.RecordingsApi(api_client)
                account_id = '9900000' # str | Your Bandwidth Account ID.
                call_id = 'c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # str | Programmable Voice API Call ID.
                recording_id = 'r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # str | Programmable Voice API Recording ID.

                try:
                    # Delete Recording Media
                    api_instance.delete_recording_media(account_id, call_id, recording_id)
                except Exception as e:
                    print("Exception when calling RecordingsApi->delete_recording_media: %s\n" % e)
        - lang: Ruby
          source: >
            require 'time'

            require 'bandwidth-sdk'

            # setup authorization

            Bandwidth.configure do |config|
              # Configure HTTP basic authorization: Basic
              config.username = 'YOUR USERNAME'
              config.password = 'YOUR PASSWORD'
            end


            api_instance = Bandwidth::RecordingsApi.new

            account_id = '9900000' # String | Your Bandwidth Account ID.

            call_id = 'c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # String
            | Programmable Voice API Call ID.

            recording_id = 'r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' #
            String | Programmable Voice API Recording ID.


            begin
              # Delete Recording Media
              api_instance.delete_recording_media(account_id, call_id, recording_id)
            rescue Bandwidth::ApiError => e
              puts "Error when calling RecordingsApi->delete_recording_media: #{e}"
            end
        - lang: TypeScript
          source: >
            import {
                RecordingsApi,
                Configuration
            } from 'bandwidth-sdk';


            const configuration = new Configuration();

            const apiInstance = new RecordingsApi(configuration);


            let accountId: string; //Your Bandwidth Account ID. (default to
            undefined)

            let callId: string; //Programmable Voice API Call ID. (default to
            undefined)

            let recordingId: string; //Programmable Voice API Recording ID.
            (default to undefined)


            const { status, data } = await apiInstance.deleteRecordingMedia(
                accountId,
                callId,
                recordingId
            );
  /accounts/{accountId}/calls/{callId}/recordings/{recordingId}/transcription:
    get:
      tags:
        - Recordings
      summary: Get Transcription
      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:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/callId'
        - $ref: '#/components/parameters/recordingId'
      responses:
        '200':
          $ref: '#/components/responses/getRecordingTranscriptionResponse'
        '400':
          $ref: '#/components/responses/voiceBadRequestError'
        '401':
          $ref: '#/components/responses/voiceUnauthorizedError'
        '403':
          $ref: '#/components/responses/voiceForbiddenError'
        '404':
          $ref: '#/components/responses/voiceNotFoundError'
        '405':
          $ref: '#/components/responses/voiceNotAllowedError'
        '415':
          $ref: '#/components/responses/voiceUnsupportedMediaTypeError'
        '429':
          $ref: '#/components/responses/voiceTooManyRequestsError'
        '500':
          $ref: '#/components/responses/voiceInternalServerError'
      x-codeSamples:
        - lang: cURL
          source: >-
            curl
            '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'
            \
              -H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
              -H 'Accept: application/json'
        - lang: C#
          source: |
            using System.Collections.Generic;
            using System.Diagnostics;
            using Bandwidth.Standard.Api;
            using Bandwidth.Standard.Client;
            using Bandwidth.Standard.Model;

            namespace Example
            {
                public class GetRecordingTranscriptionExample
                {
                    public static void Main()
                    {
                        Configuration config = new Configuration();
                        config.BasePath = "http://localhost";
                        // Configure HTTP basic authorization: Basic
                        config.Username = "YOUR_USERNAME";
                        config.Password = "YOUR_PASSWORD";

                        var apiInstance = new RecordingsApi(config);
                        var accountId = 9900000;  // string | Your Bandwidth Account ID.
                        var callId = c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85;  // string | Programmable Voice API Call ID.
                        var recordingId = r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85;  // string | Programmable Voice API Recording ID.

                        try
                        {
                            // Get Transcription
                            RecordingTranscriptions result = apiInstance.GetRecordingTranscription(accountId, callId, recordingId);
                            Debug.WriteLine(result);
                        }
                        catch (ApiException  e)
                        {
                            Debug.Print("Exception when calling RecordingsApi.GetRecordingTranscription: " + e.Message);
                            Debug.Print("Status Code: " + e.ErrorCode);
                            Debug.Print(e.StackTrace);
                        }
                    }
                }
            }
        - lang: Java
          source: |
            // Import classes:
            import com.bandwidth.sdk.ApiClient;
            import com.bandwidth.sdk.ApiException;
            import com.bandwidth.sdk.Configuration;
            import com.bandwidth.sdk.auth.*;
            import com.bandwidth.sdk.models.*;
            import com.bandwidth.sdk.api.RecordingsApi;

            public class Example {
              public static void main(String[] args) {
                ApiClient defaultClient = Configuration.getDefaultApiClient();
                defaultClient.setBasePath("http://localhost");
                
                // Configure HTTP basic authorization: Basic
                HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
                Basic.setUsername("YOUR USERNAME");
                Basic.setPassword("YOUR PASSWORD");

                RecordingsApi apiInstance = new RecordingsApi(defaultClient);
                String accountId = "9900000"; // String | Your Bandwidth Account ID.
                String callId = "c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Call ID.
                String recordingId = "r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Recording ID.
                try {
                  RecordingTranscriptions result = apiInstance.getRecordingTranscription(accountId, callId, recordingId);
                  System.out.println(result);
                } catch (ApiException e) {
                  System.err.println("Exception when calling RecordingsApi#getRecordingTranscription");
                  System.err.println("Status code: " + e.getCode());
                  System.err.println("Reason: " + e.getResponseBody());
                  System.err.println("Response headers: " + e.getResponseHeaders());
                  e.printStackTrace();
                }
              }
            }
        - lang: Python
          source: >
            import bandwidth

            from bandwidth.models.recording_transcriptions import
            RecordingTranscriptions

            from bandwidth.rest import ApiException

            from pprint import pprint


            # Defining the host is optional and defaults to http://localhost

            # See configuration.py for a list of all supported configuration
            parameters.

            configuration = bandwidth.Configuration(
                host = "http://localhost"
            )


            # The client must configure the authentication and authorization
            parameters

            # in accordance with the API server security policy.

            # Examples for each auth method are provided below, use the example
            that

            # satisfies your auth use case.


            # Configure HTTP basic authorization: Basic

            configuration = bandwidth.Configuration(
                username = os.environ["USERNAME"],
                password = os.environ["PASSWORD"]
            )


            # Enter a context with an instance of the API client

            with bandwidth.ApiClient(configuration) as api_client:
                # Create an instance of the API class
                api_instance = bandwidth.RecordingsApi(api_client)
                account_id = '9900000' # str | Your Bandwidth Account ID.
                call_id = 'c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # str | Programmable Voice API Call ID.
                recording_id = 'r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # str | Programmable Voice API Recording ID.

                try:
                    # Get Transcription
                    api_response = api_instance.get_recording_transcription(account_id, call_id, recording_id)
                    print("The response of RecordingsApi->get_recording_transcription:\n")
                    pprint(api_response)
                except Exception as e:
                    print("Exception when calling RecordingsApi->get_recording_transcription: %s\n" % e)
        - lang: Ruby
          source: >
            require 'time'

            require 'bandwidth-sdk'

            # setup authorization

            Bandwidth.configure do |config|
              # Configure HTTP basic authorization: Basic
              config.username = 'YOUR USERNAME'
              config.password = 'YOUR PASSWORD'
            end


            api_instance = Bandwidth::RecordingsApi.new

            account_id = '9900000' # String | Your Bandwidth Account ID.

            call_id = 'c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # String
            | Programmable Voice API Call ID.

            recording_id = 'r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' #
            String | Programmable Voice API Recording ID.


            begin
              # Get Transcription
              result = api_instance.get_recording_transcription(account_id, call_id, recording_id)
              p result
            rescue Bandwidth::ApiError => e
              puts "Error when calling RecordingsApi->get_recording_transcription: #{e}"
            end
        - lang: TypeScript
          source: >
            import {
                RecordingsApi,
                Configuration
            } from 'bandwidth-sdk';


            const configuration = new Configuration();

            const apiInstance = new RecordingsApi(configuration);


            let accountId: string; //Your Bandwidth Account ID. (default to
            undefined)

            let callId: string; //Programmable Voice API Call ID. (default to
            undefined)

            let recordingId: string; //Programmable Voice API Recording ID.
            (default to undefined)


            const { status, data } = await
            apiInstance.getRecordingTranscription(
                accountId,
                callId,
                recordingId
            );
    post:
      tags:
        - Recordings
      summary: Create Transcription Request
      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:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/callId'
        - $ref: '#/components/parameters/recordingId'
      requestBody:
        $ref: '#/components/requestBodies/transcribeRecordingRequest'
      responses:
        '204':
          description: Transcription was successfully requested.
        '400':
          $ref: '#/components/responses/voiceBadRequestError'
        '401':
          $ref: '#/components/responses/voiceUnauthorizedError'
        '403':
          $ref: '#/components/responses/voiceForbiddenError'
        '404':
          $ref: '#/components/responses/voiceNotFoundError'
        '405':
          $ref: '#/components/responses/voiceNotAllowedError'
        '415':
          $ref: '#/components/responses/voiceUnsupportedMediaTypeError'
        '429':
          $ref: '#/components/responses/voiceTooManyRequestsError'
        '500':
          $ref: '#/components/responses/voiceInternalServerError'
      x-codeSamples:
        - lang: cURL
          source: >-
            curl
            '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'
            \
              -H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
              -H 'Content-Type: application/json' \
              -H 'Accept: application/json' \
              -d '{
                "callbackUrl": "https://myServer.example/bandwidth/webhooks/transcriptionAvailable",
                "callbackMethod": "POST",
                "username": "mySecretUsername",
                "password": "mySecretPassword1!",
                "tag": "exampleTag",
                "callbackTimeout": 5.5,
                "detectLanguage": true
              }'
        - lang: C#
          source: |
            using System.Collections.Generic;
            using System.Diagnostics;
            using Bandwidth.Standard.Api;
            using Bandwidth.Standard.Client;
            using Bandwidth.Standard.Model;

            namespace Example
            {
                public class TranscribeCallRecordingExample
                {
                    public static void Main()
                    {
                        Configuration config = new Configuration();
                        config.BasePath = "http://localhost";
                        // Configure HTTP basic authorization: Basic
                        config.Username = "YOUR_USERNAME";
                        config.Password = "YOUR_PASSWORD";

                        var apiInstance = new RecordingsApi(config);
                        var accountId = 9900000;  // string | Your Bandwidth Account ID.
                        var callId = c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85;  // string | Programmable Voice API Call ID.
                        var recordingId = r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85;  // string | Programmable Voice API Recording ID.
                        var transcribeRecording = new TranscribeRecording(); // TranscribeRecording | 

                        try
                        {
                            // Create Transcription Request
                            apiInstance.TranscribeCallRecording(accountId, callId, recordingId, transcribeRecording);
                        }
                        catch (ApiException  e)
                        {
                            Debug.Print("Exception when calling RecordingsApi.TranscribeCallRecording: " + e.Message);
                            Debug.Print("Status Code: " + e.ErrorCode);
                            Debug.Print(e.StackTrace);
                        }
                    }
                }
            }
        - lang: Java
          source: |
            // Import classes:
            import com.bandwidth.sdk.ApiClient;
            import com.bandwidth.sdk.ApiException;
            import com.bandwidth.sdk.Configuration;
            import com.bandwidth.sdk.auth.*;
            import com.bandwidth.sdk.models.*;
            import com.bandwidth.sdk.api.RecordingsApi;

            public class Example {
              public static void main(String[] args) {
                ApiClient defaultClient = Configuration.getDefaultApiClient();
                defaultClient.setBasePath("http://localhost");
                
                // Configure HTTP basic authorization: Basic
                HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
                Basic.setUsername("YOUR USERNAME");
                Basic.setPassword("YOUR PASSWORD");

                RecordingsApi apiInstance = new RecordingsApi(defaultClient);
                String accountId = "9900000"; // String | Your Bandwidth Account ID.
                String callId = "c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Call ID.
                String recordingId = "r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Recording ID.
                TranscribeRecording transcribeRecording = new TranscribeRecording(); // TranscribeRecording | 
                try {
                  apiInstance.transcribeCallRecording(accountId, callId, recordingId, transcribeRecording);
                } catch (ApiException e) {
                  System.err.println("Exception when calling RecordingsApi#transcribeCallRecording");
                  System.err.println("Status code: " + e.getCode());
                  System.err.println("Reason: " + e.getResponseBody());
                  System.err.println("Response headers: " + e.getResponseHeaders());
                  e.printStackTrace();
                }
              }
            }
        - lang: PHP
          source: |
            <?php
              
            require "vendor/autoload.php";

            api-username = "api-username";
            api-password = "api-pasword";
            12345 = "12345";

            $config = new BandwidthLib\Configuration(
                array(
                    'voiceBasicAuthUserName' => $BW_USERNAME,
                    'voiceBasicAuthPassword' => $BW_PASSWORD,
                )
            );
            $client = new BandwidthLib\BandwidthClient($config);

            $voiceClient = $client->getVoice()->getClient();

            $callId = "c-1234";
            $recordingId = "r-1234";

            $body = new BandwidthLib\Voice\Models\TranscribeRecordingRequest();
            $body->callbackUrl = "https://callback-url.com";

            try {
                $voiceClient->createTranscribeCallRecording($BW_ACCOUNT_ID, $callId, $recordingId, $body);
            } catch (BandwidthLib\APIException $e) {
                print_r($e->getResponseCode());
            }
        - lang: Python
          source: >
            import bandwidth

            from bandwidth.models.transcribe_recording import
            TranscribeRecording

            from bandwidth.rest import ApiException

            from pprint import pprint


            # Defining the host is optional and defaults to http://localhost

            # See configuration.py for a list of all supported configuration
            parameters.

            configuration = bandwidth.Configuration(
                host = "http://localhost"
            )


            # The client must configure the authentication and authorization
            parameters

            # in accordance with the API server security policy.

            # Examples for each auth method are provided below, use the example
            that

            # satisfies your auth use case.


            # Configure HTTP basic authorization: Basic

            configuration = bandwidth.Configuration(
                username = os.environ["USERNAME"],
                password = os.environ["PASSWORD"]
            )


            # Enter a context with an instance of the API client

            with bandwidth.ApiClient(configuration) as api_client:
                # Create an instance of the API class
                api_instance = bandwidth.RecordingsApi(api_client)
                account_id = '9900000' # str | Your Bandwidth Account ID.
                call_id = 'c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # str | Programmable Voice API Call ID.
                recording_id = 'r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # str | Programmable Voice API Recording ID.
                transcribe_recording = bandwidth.TranscribeRecording() # TranscribeRecording | 

                try:
                    # Create Transcription Request
                    api_instance.transcribe_call_recording(account_id, call_id, recording_id, transcribe_recording)
                except Exception as e:
                    print("Exception when calling RecordingsApi->transcribe_call_recording: %s\n" % e)
        - lang: Ruby
          source: >
            require 'time'

            require 'bandwidth-sdk'

            # setup authorization

            Bandwidth.configure do |config|
              # Configure HTTP basic authorization: Basic
              config.username = 'YOUR USERNAME'
              config.password = 'YOUR PASSWORD'
            end


            api_instance = Bandwidth::RecordingsApi.new

            account_id = '9900000' # String | Your Bandwidth Account ID.

            call_id = 'c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # String
            | Programmable Voice API Call ID.

            recording_id = 'r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' #
            String | Programmable Voice API Recording ID.

            transcribe_recording = Bandwidth::TranscribeRecording.new #
            TranscribeRecording | 


            begin
              # Create Transcription Request
              api_instance.transcribe_call_recording(account_id, call_id, recording_id, transcribe_recording)
            rescue Bandwidth::ApiError => e
              puts "Error when calling RecordingsApi->transcribe_call_recording: #{e}"
            end
        - lang: TypeScript
          source: >
            import {
                RecordingsApi,
                Configuration,
                TranscribeRecording
            } from 'bandwidth-sdk';


            const configuration = new Configuration();

            const apiInstance = new RecordingsApi(configuration);


            let accountId: string; //Your Bandwidth Account ID. (default to
            undefined)

            let callId: string; //Programmable Voice API Call ID. (default to
            undefined)

            let recordingId: string; //Programmable Voice API Recording ID.
            (default to undefined)

            let transcribeRecording: TranscribeRecording; //


            const { status, data } = await apiInstance.transcribeCallRecording(
                accountId,
                callId,
                recordingId,
                transcribeRecording
            );
    delete:
      tags:
        - Recordings
      summary: Delete Transcription
      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:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/callId'
        - $ref: '#/components/parameters/recordingId'
      responses:
        '204':
          description: The transcription was successfully deleted.
        '400':
          $ref: '#/components/responses/voiceBadRequestError'
        '401':
          $ref: '#/components/responses/voiceUnauthorizedError'
        '403':
          $ref: '#/components/responses/voiceForbiddenError'
        '404':
          $ref: '#/components/responses/voiceNotFoundError'
        '405':
          $ref: '#/components/responses/voiceNotAllowedError'
        '415':
          $ref: '#/components/responses/voiceUnsupportedMediaTypeError'
        '429':
          $ref: '#/components/responses/voiceTooManyRequestsError'
        '500':
          $ref: '#/components/responses/voiceInternalServerError'
      x-codeSamples:
        - lang: cURL
          source: >-
            curl -X DELETE
            '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'
            \
              -H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
              -H 'Accept: application/json'
        - lang: C#
          source: |
            using System.Collections.Generic;
            using System.Diagnostics;
            using Bandwidth.Standard.Api;
            using Bandwidth.Standard.Client;
            using Bandwidth.Standard.Model;

            namespace Example
            {
                public class DeleteRecordingTranscriptionExample
                {
                    public static void Main()
                    {
                        Configuration config = new Configuration();
                        config.BasePath = "http://localhost";
                        // Configure HTTP basic authorization: Basic
                        config.Username = "YOUR_USERNAME";
                        config.Password = "YOUR_PASSWORD";

                        var apiInstance = new RecordingsApi(config);
                        var accountId = 9900000;  // string | Your Bandwidth Account ID.
                        var callId = c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85;  // string | Programmable Voice API Call ID.
                        var recordingId = r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85;  // string | Programmable Voice API Recording ID.

                        try
                        {
                            // Delete Transcription
                            apiInstance.DeleteRecordingTranscription(accountId, callId, recordingId);
                        }
                        catch (ApiException  e)
                        {
                            Debug.Print("Exception when calling RecordingsApi.DeleteRecordingTranscription: " + e.Message);
                            Debug.Print("Status Code: " + e.ErrorCode);
                            Debug.Print(e.StackTrace);
                        }
                    }
                }
            }
        - lang: Java
          source: |
            // Import classes:
            import com.bandwidth.sdk.ApiClient;
            import com.bandwidth.sdk.ApiException;
            import com.bandwidth.sdk.Configuration;
            import com.bandwidth.sdk.auth.*;
            import com.bandwidth.sdk.models.*;
            import com.bandwidth.sdk.api.RecordingsApi;

            public class Example {
              public static void main(String[] args) {
                ApiClient defaultClient = Configuration.getDefaultApiClient();
                defaultClient.setBasePath("http://localhost");
                
                // Configure HTTP basic authorization: Basic
                HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
                Basic.setUsername("YOUR USERNAME");
                Basic.setPassword("YOUR PASSWORD");

                RecordingsApi apiInstance = new RecordingsApi(defaultClient);
                String accountId = "9900000"; // String | Your Bandwidth Account ID.
                String callId = "c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Call ID.
                String recordingId = "r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Recording ID.
                try {
                  apiInstance.deleteRecordingTranscription(accountId, callId, recordingId);
                } catch (ApiException e) {
                  System.err.println("Exception when calling RecordingsApi#deleteRecordingTranscription");
                  System.err.println("Status code: " + e.getCode());
                  System.err.println("Reason: " + e.getResponseBody());
                  System.err.println("Response headers: " + e.getResponseHeaders());
                  e.printStackTrace();
                }
              }
            }
        - lang: Python
          source: >
            import bandwidth

            from bandwidth.rest import ApiException

            from pprint import pprint


            # Defining the host is optional and defaults to http://localhost

            # See configuration.py for a list of all supported configuration
            parameters.

            configuration = bandwidth.Configuration(
                host = "http://localhost"
            )


            # The client must configure the authentication and authorization
            parameters

            # in accordance with the API server security policy.

            # Examples for each auth method are provided below, use the example
            that

            # satisfies your auth use case.


            # Configure HTTP basic authorization: Basic

            configuration = bandwidth.Configuration(
                username = os.environ["USERNAME"],
                password = os.environ["PASSWORD"]
            )


            # Enter a context with an instance of the API client

            with bandwidth.ApiClient(configuration) as api_client:
                # Create an instance of the API class
                api_instance = bandwidth.RecordingsApi(api_client)
                account_id = '9900000' # str | Your Bandwidth Account ID.
                call_id = 'c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # str | Programmable Voice API Call ID.
                recording_id = 'r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # str | Programmable Voice API Recording ID.

                try:
                    # Delete Transcription
                    api_instance.delete_recording_transcription(account_id, call_id, recording_id)
                except Exception as e:
                    print("Exception when calling RecordingsApi->delete_recording_transcription: %s\n" % e)
        - lang: Ruby
          source: >
            require 'time'

            require 'bandwidth-sdk'

            # setup authorization

            Bandwidth.configure do |config|
              # Configure HTTP basic authorization: Basic
              config.username = 'YOUR USERNAME'
              config.password = 'YOUR PASSWORD'
            end


            api_instance = Bandwidth::RecordingsApi.new

            account_id = '9900000' # String | Your Bandwidth Account ID.

            call_id = 'c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # String
            | Programmable Voice API Call ID.

            recording_id = 'r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' #
            String | Programmable Voice API Recording ID.


            begin
              # Delete Transcription
              api_instance.delete_recording_transcription(account_id, call_id, recording_id)
            rescue Bandwidth::ApiError => e
              puts "Error when calling RecordingsApi->delete_recording_transcription: #{e}"
            end
        - lang: TypeScript
          source: >
            import {
                RecordingsApi,
                Configuration
            } from 'bandwidth-sdk';


            const configuration = new Configuration();

            const apiInstance = new RecordingsApi(configuration);


            let accountId: string; //Your Bandwidth Account ID. (default to
            undefined)

            let callId: string; //Programmable Voice API Call ID. (default to
            undefined)

            let recordingId: string; //Programmable Voice API Recording ID.
            (default to undefined)


            const { status, data } = await
            apiInstance.deleteRecordingTranscription(
                accountId,
                callId,
                recordingId
            );
  /accounts/{accountId}/statistics:
    get:
      tags:
        - Statistics
      summary: Get Account Statistics
      description: Returns details about the current state of the account.
      operationId: getStatistics
      parameters:
        - $ref: '#/components/parameters/accountId'
      responses:
        '200':
          $ref: '#/components/responses/getStatisticsResponse'
        '400':
          $ref: '#/components/responses/voiceBadRequestError'
        '401':
          $ref: '#/components/responses/voiceUnauthorizedError'
        '403':
          $ref: '#/components/responses/voiceForbiddenError'
        '404':
          $ref: '#/components/responses/voiceNotFoundError'
        '405':
          $ref: '#/components/responses/voiceNotAllowedError'
        '415':
          $ref: '#/components/responses/voiceUnsupportedMediaTypeError'
        '429':
          $ref: '#/components/responses/voiceTooManyRequestsError'
        '500':
          $ref: '#/components/responses/voiceInternalServerError'
      x-codeSamples:
        - lang: cURL
          source: >-
            curl
            'https://voice.bandwidth.com/api/v2/accounts/9900000/statistics' \
              -H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
              -H 'Accept: application/json'
        - lang: C#
          source: |
            using System.Collections.Generic;
            using System.Diagnostics;
            using Bandwidth.Standard.Api;
            using Bandwidth.Standard.Client;
            using Bandwidth.Standard.Model;

            namespace Example
            {
                public class GetStatisticsExample
                {
                    public static void Main()
                    {
                        Configuration config = new Configuration();
                        config.BasePath = "http://localhost";
                        // Configure HTTP basic authorization: Basic
                        config.Username = "YOUR_USERNAME";
                        config.Password = "YOUR_PASSWORD";

                        var apiInstance = new StatisticsApi(config);
                        var accountId = 9900000;  // string | Your Bandwidth Account ID.

                        try
                        {
                            // Get Account Statistics
                            AccountStatistics result = apiInstance.GetStatistics(accountId);
                            Debug.WriteLine(result);
                        }
                        catch (ApiException  e)
                        {
                            Debug.Print("Exception when calling StatisticsApi.GetStatistics: " + e.Message);
                            Debug.Print("Status Code: " + e.ErrorCode);
                            Debug.Print(e.StackTrace);
                        }
                    }
                }
            }
        - lang: Java
          source: |
            // Import classes:
            import com.bandwidth.sdk.ApiClient;
            import com.bandwidth.sdk.ApiException;
            import com.bandwidth.sdk.Configuration;
            import com.bandwidth.sdk.auth.*;
            import com.bandwidth.sdk.models.*;
            import com.bandwidth.sdk.api.StatisticsApi;

            public class Example {
              public static void main(String[] args) {
                ApiClient defaultClient = Configuration.getDefaultApiClient();
                defaultClient.setBasePath("http://localhost");
                
                // Configure HTTP basic authorization: Basic
                HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
                Basic.setUsername("YOUR USERNAME");
                Basic.setPassword("YOUR PASSWORD");

                StatisticsApi apiInstance = new StatisticsApi(defaultClient);
                String accountId = "9900000"; // String | Your Bandwidth Account ID.
                try {
                  AccountStatistics result = apiInstance.getStatistics(accountId);
                  System.out.println(result);
                } catch (ApiException e) {
                  System.err.println("Exception when calling StatisticsApi#getStatistics");
                  System.err.println("Status code: " + e.getCode());
                  System.err.println("Reason: " + e.getResponseBody());
                  System.err.println("Response headers: " + e.getResponseHeaders());
                  e.printStackTrace();
                }
              }
            }
        - lang: Python
          source: >
            import bandwidth

            from bandwidth.models.account_statistics import AccountStatistics

            from bandwidth.rest import ApiException

            from pprint import pprint


            # Defining the host is optional and defaults to http://localhost

            # See configuration.py for a list of all supported configuration
            parameters.

            configuration = bandwidth.Configuration(
                host = "http://localhost"
            )


            # The client must configure the authentication and authorization
            parameters

            # in accordance with the API server security policy.

            # Examples for each auth method are provided below, use the example
            that

            # satisfies your auth use case.


            # Configure HTTP basic authorization: Basic

            configuration = bandwidth.Configuration(
                username = os.environ["USERNAME"],
                password = os.environ["PASSWORD"]
            )


            # Enter a context with an instance of the API client

            with bandwidth.ApiClient(configuration) as api_client:
                # Create an instance of the API class
                api_instance = bandwidth.StatisticsApi(api_client)
                account_id = '9900000' # str | Your Bandwidth Account ID.

                try:
                    # Get Account Statistics
                    api_response = api_instance.get_statistics(account_id)
                    print("The response of StatisticsApi->get_statistics:\n")
                    pprint(api_response)
                except Exception as e:
                    print("Exception when calling StatisticsApi->get_statistics: %s\n" % e)
        - lang: Ruby
          source: |
            require 'time'
            require 'bandwidth-sdk'
            # setup authorization
            Bandwidth.configure do |config|
              # Configure HTTP basic authorization: Basic
              config.username = 'YOUR USERNAME'
              config.password = 'YOUR PASSWORD'
            end

            api_instance = Bandwidth::StatisticsApi.new
            account_id = '9900000' # String | Your Bandwidth Account ID.

            begin
              # Get Account Statistics
              result = api_instance.get_statistics(account_id)
              p result
            rescue Bandwidth::ApiError => e
              puts "Error when calling StatisticsApi->get_statistics: #{e}"
            end
        - lang: TypeScript
          source: >
            import {
                StatisticsApi,
                Configuration
            } from 'bandwidth-sdk';


            const configuration = new Configuration();

            const apiInstance = new StatisticsApi(configuration);


            let accountId: string; //Your Bandwidth Account ID. (default to
            undefined)


            const { status, data } = await apiInstance.getStatistics(
                accountId
            );
  /accounts/{accountId}/calls/{callId}/transcriptions:
    get:
      tags:
        - Transcriptions
      summary: List Real-time Transcriptions
      description: >-
        List the transcriptions created on this call via
        [startTranscription](/docs/voice/bxml/startTranscription).
      operationId: listRealTimeTranscriptions
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/callId'
      responses:
        '200':
          $ref: '#/components/responses/listTranscriptionsResponse'
        '400':
          $ref: '#/components/responses/voiceBadRequestError'
        '401':
          $ref: '#/components/responses/voiceUnauthorizedError'
        '403':
          $ref: '#/components/responses/voiceForbiddenError'
        '404':
          $ref: '#/components/responses/voiceNotFoundError'
        '405':
          $ref: '#/components/responses/voiceNotAllowedError'
        '415':
          $ref: '#/components/responses/voiceUnsupportedMediaTypeError'
        '429':
          $ref: '#/components/responses/voiceTooManyRequestsError'
        '500':
          $ref: '#/components/responses/voiceInternalServerError'
      x-codeSamples:
        - lang: cURL
          source: >-
            curl
            'https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85/transcriptions'
            \
              -H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
              -H 'Accept: application/json'
        - lang: C#
          source: |
            using System.Collections.Generic;
            using System.Diagnostics;
            using Bandwidth.Standard.Api;
            using Bandwidth.Standard.Client;
            using Bandwidth.Standard.Model;

            namespace Example
            {
                public class ListRealTimeTranscriptionsExample
                {
                    public static void Main()
                    {
                        Configuration config = new Configuration();
                        config.BasePath = "http://localhost";
                        // Configure HTTP basic authorization: Basic
                        config.Username = "YOUR_USERNAME";
                        config.Password = "YOUR_PASSWORD";

                        var apiInstance = new TranscriptionsApi(config);
                        var accountId = 9900000;  // string | Your Bandwidth Account ID.
                        var callId = c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85;  // string | Programmable Voice API Call ID.

                        try
                        {
                            // Enumerate transcriptions made with StartTranscription
                            List<CallTranscriptionMetadata> result = apiInstance.ListRealTimeTranscriptions(accountId, callId);
                            Debug.WriteLine(result);
                        }
                        catch (ApiException  e)
                        {
                            Debug.Print("Exception when calling TranscriptionsApi.ListRealTimeTranscriptions: " + e.Message);
                            Debug.Print("Status Code: " + e.ErrorCode);
                            Debug.Print(e.StackTrace);
                        }
                    }
                }
            }
        - lang: Java
          source: |
            // Import classes:
            import com.bandwidth.sdk.ApiClient;
            import com.bandwidth.sdk.ApiException;
            import com.bandwidth.sdk.Configuration;
            import com.bandwidth.sdk.auth.*;
            import com.bandwidth.sdk.models.*;
            import com.bandwidth.sdk.api.TranscriptionsApi;

            public class Example {
              public static void main(String[] args) {
                ApiClient defaultClient = Configuration.getDefaultApiClient();
                defaultClient.setBasePath("http://localhost");
                
                // Configure HTTP basic authorization: Basic
                HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
                Basic.setUsername("YOUR USERNAME");
                Basic.setPassword("YOUR PASSWORD");

                TranscriptionsApi apiInstance = new TranscriptionsApi(defaultClient);
                String accountId = "9900000"; // String | Your Bandwidth Account ID.
                String callId = "c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Call ID.
                try {
                  List<CallTranscriptionMetadata> result = apiInstance.listRealTimeTranscriptions(accountId, callId);
                  System.out.println(result);
                } catch (ApiException e) {
                  System.err.println("Exception when calling TranscriptionsApi#listRealTimeTranscriptions");
                  System.err.println("Status code: " + e.getCode());
                  System.err.println("Reason: " + e.getResponseBody());
                  System.err.println("Response headers: " + e.getResponseHeaders());
                  e.printStackTrace();
                }
              }
            }
        - lang: Python
          source: >
            import bandwidth

            from bandwidth.models.call_transcription_metadata import
            CallTranscriptionMetadata

            from bandwidth.rest import ApiException

            from pprint import pprint


            # Defining the host is optional and defaults to http://localhost

            # See configuration.py for a list of all supported configuration
            parameters.

            configuration = bandwidth.Configuration(
                host = "http://localhost"
            )


            # The client must configure the authentication and authorization
            parameters

            # in accordance with the API server security policy.

            # Examples for each auth method are provided below, use the example
            that

            # satisfies your auth use case.


            # Configure HTTP basic authorization: Basic

            configuration = bandwidth.Configuration(
                username = os.environ["USERNAME"],
                password = os.environ["PASSWORD"]
            )


            # Enter a context with an instance of the API client

            with bandwidth.ApiClient(configuration) as api_client:
                # Create an instance of the API class
                api_instance = bandwidth.TranscriptionsApi(api_client)
                account_id = '9900000' # str | Your Bandwidth Account ID.
                call_id = 'c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # str | Programmable Voice API Call ID.

                try:
                    # Enumerate transcriptions made with StartTranscription
                    api_response = api_instance.list_real_time_transcriptions(account_id, call_id)
                    print("The response of TranscriptionsApi->list_real_time_transcriptions:\n")
                    pprint(api_response)
                except Exception as e:
                    print("Exception when calling TranscriptionsApi->list_real_time_transcriptions: %s\n" % e)
        - lang: Ruby
          source: >
            require 'time'

            require 'bandwidth-sdk'

            # setup authorization

            Bandwidth.configure do |config|
              # Configure HTTP basic authorization: Basic
              config.username = 'YOUR USERNAME'
              config.password = 'YOUR PASSWORD'
            end


            api_instance = Bandwidth::TranscriptionsApi.new

            account_id = '9900000' # String | Your Bandwidth Account ID.

            call_id = 'c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # String
            | Programmable Voice API Call ID.


            begin
              # Enumerate transcriptions made with StartTranscription
              result = api_instance.list_real_time_transcriptions(account_id, call_id)
              p result
            rescue Bandwidth::ApiError => e
              puts "Error when calling TranscriptionsApi->list_real_time_transcriptions: #{e}"
            end
        - lang: TypeScript
          source: >
            import {
                TranscriptionsApi,
                Configuration
            } from 'bandwidth-sdk';


            const configuration = new Configuration();

            const apiInstance = new TranscriptionsApi(configuration);


            let accountId: string; //Your Bandwidth Account ID. (default to
            undefined)

            let callId: string; //Programmable Voice API Call ID. (default to
            undefined)


            const { status, data } = await
            apiInstance.listRealTimeTranscriptions(
                accountId,
                callId
            );
  /accounts/{accountId}/calls/{callId}/transcriptions/{transcriptionId}:
    get:
      tags:
        - Transcriptions
      summary: Get Real-time Transcription
      description: >-
        Retrieve the specified transcription that was created on this call via
        [startTranscription](/docs/voice/bxml/startTranscription).
      operationId: getRealTimeTranscription
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/callId'
        - $ref: '#/components/parameters/transcriptionId'
      responses:
        '200':
          $ref: '#/components/responses/getCallTranscriptionResponse'
        '400':
          $ref: '#/components/responses/voiceBadRequestError'
        '401':
          $ref: '#/components/responses/voiceUnauthorizedError'
        '403':
          $ref: '#/components/responses/voiceForbiddenError'
        '404':
          $ref: '#/components/responses/voiceNotFoundError'
        '405':
          $ref: '#/components/responses/voiceNotAllowedError'
        '415':
          $ref: '#/components/responses/voiceUnsupportedMediaTypeError'
        '429':
          $ref: '#/components/responses/voiceTooManyRequestsError'
        '500':
          $ref: '#/components/responses/voiceInternalServerError'
      x-codeSamples:
        - lang: cURL
          source: >-
            curl
            'https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85/transcriptions/t-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85'
            \
              -H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
              -H 'Accept: application/json'
        - lang: C#
          source: |
            using System.Collections.Generic;
            using System.Diagnostics;
            using Bandwidth.Standard.Api;
            using Bandwidth.Standard.Client;
            using Bandwidth.Standard.Model;

            namespace Example
            {
                public class GetRealTimeTranscriptionExample
                {
                    public static void Main()
                    {
                        Configuration config = new Configuration();
                        config.BasePath = "http://localhost";
                        // Configure HTTP basic authorization: Basic
                        config.Username = "YOUR_USERNAME";
                        config.Password = "YOUR_PASSWORD";

                        var apiInstance = new TranscriptionsApi(config);
                        var accountId = 9900000;  // string | Your Bandwidth Account ID.
                        var callId = c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85;  // string | Programmable Voice API Call ID.
                        var transcriptionId = t-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85;  // string | Programmable Voice API Transcription ID.

                        try
                        {
                            // Retrieve a specific transcription
                            CallTranscriptionResponse result = apiInstance.GetRealTimeTranscription(accountId, callId, transcriptionId);
                            Debug.WriteLine(result);
                        }
                        catch (ApiException  e)
                        {
                            Debug.Print("Exception when calling TranscriptionsApi.GetRealTimeTranscription: " + e.Message);
                            Debug.Print("Status Code: " + e.ErrorCode);
                            Debug.Print(e.StackTrace);
                        }
                    }
                }
            }
        - lang: Java
          source: |
            // Import classes:
            import com.bandwidth.sdk.ApiClient;
            import com.bandwidth.sdk.ApiException;
            import com.bandwidth.sdk.Configuration;
            import com.bandwidth.sdk.auth.*;
            import com.bandwidth.sdk.models.*;
            import com.bandwidth.sdk.api.TranscriptionsApi;

            public class Example {
              public static void main(String[] args) {
                ApiClient defaultClient = Configuration.getDefaultApiClient();
                defaultClient.setBasePath("http://localhost");
                
                // Configure HTTP basic authorization: Basic
                HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
                Basic.setUsername("YOUR USERNAME");
                Basic.setPassword("YOUR PASSWORD");

                TranscriptionsApi apiInstance = new TranscriptionsApi(defaultClient);
                String accountId = "9900000"; // String | Your Bandwidth Account ID.
                String callId = "c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Call ID.
                String transcriptionId = "t-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Transcription ID.
                try {
                  CallTranscriptionResponse result = apiInstance.getRealTimeTranscription(accountId, callId, transcriptionId);
                  System.out.println(result);
                } catch (ApiException e) {
                  System.err.println("Exception when calling TranscriptionsApi#getRealTimeTranscription");
                  System.err.println("Status code: " + e.getCode());
                  System.err.println("Reason: " + e.getResponseBody());
                  System.err.println("Response headers: " + e.getResponseHeaders());
                  e.printStackTrace();
                }
              }
            }
        - lang: Python
          source: >
            import bandwidth

            from bandwidth.models.call_transcription_response import
            CallTranscriptionResponse

            from bandwidth.rest import ApiException

            from pprint import pprint


            # Defining the host is optional and defaults to http://localhost

            # See configuration.py for a list of all supported configuration
            parameters.

            configuration = bandwidth.Configuration(
                host = "http://localhost"
            )


            # The client must configure the authentication and authorization
            parameters

            # in accordance with the API server security policy.

            # Examples for each auth method are provided below, use the example
            that

            # satisfies your auth use case.


            # Configure HTTP basic authorization: Basic

            configuration = bandwidth.Configuration(
                username = os.environ["USERNAME"],
                password = os.environ["PASSWORD"]
            )


            # Enter a context with an instance of the API client

            with bandwidth.ApiClient(configuration) as api_client:
                # Create an instance of the API class
                api_instance = bandwidth.TranscriptionsApi(api_client)
                account_id = '9900000' # str | Your Bandwidth Account ID.
                call_id = 'c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # str | Programmable Voice API Call ID.
                transcription_id = 't-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # str | Programmable Voice API Transcription ID.

                try:
                    # Retrieve a specific transcription
                    api_response = api_instance.get_real_time_transcription(account_id, call_id, transcription_id)
                    print("The response of TranscriptionsApi->get_real_time_transcription:\n")
                    pprint(api_response)
                except Exception as e:
                    print("Exception when calling TranscriptionsApi->get_real_time_transcription: %s\n" % e)
        - lang: Ruby
          source: >
            require 'time'

            require 'bandwidth-sdk'

            # setup authorization

            Bandwidth.configure do |config|
              # Configure HTTP basic authorization: Basic
              config.username = 'YOUR USERNAME'
              config.password = 'YOUR PASSWORD'
            end


            api_instance = Bandwidth::TranscriptionsApi.new

            account_id = '9900000' # String | Your Bandwidth Account ID.

            call_id = 'c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # String
            | Programmable Voice API Call ID.

            transcription_id = 't-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85'
            # String | Programmable Voice API Transcription ID.


            begin
              # Retrieve a specific transcription
              result = api_instance.get_real_time_transcription(account_id, call_id, transcription_id)
              p result
            rescue Bandwidth::ApiError => e
              puts "Error when calling TranscriptionsApi->get_real_time_transcription: #{e}"
            end
        - lang: TypeScript
          source: >
            import {
                TranscriptionsApi,
                Configuration
            } from 'bandwidth-sdk';


            const configuration = new Configuration();

            const apiInstance = new TranscriptionsApi(configuration);


            let accountId: string; //Your Bandwidth Account ID. (default to
            undefined)

            let callId: string; //Programmable Voice API Call ID. (default to
            undefined)

            let transcriptionId: string; //Programmable Voice API Transcription
            ID. (default to undefined)


            const { status, data } = await apiInstance.getRealTimeTranscription(
                accountId,
                callId,
                transcriptionId
            );
    delete:
      tags:
        - Transcriptions
      summary: Delete Real-time Transcription
      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:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/callId'
        - $ref: '#/components/parameters/transcriptionId'
      responses:
        '200':
          $ref: '#/components/responses/deleteCallTranscriptionResponse'
        '400':
          $ref: '#/components/responses/voiceBadRequestError'
        '401':
          $ref: '#/components/responses/voiceUnauthorizedError'
        '403':
          $ref: '#/components/responses/voiceForbiddenError'
        '404':
          $ref: '#/components/responses/voiceNotFoundError'
        '405':
          $ref: '#/components/responses/voiceNotAllowedError'
        '415':
          $ref: '#/components/responses/voiceUnsupportedMediaTypeError'
        '429':
          $ref: '#/components/responses/voiceTooManyRequestsError'
        '500':
          $ref: '#/components/responses/voiceInternalServerError'
      x-codeSamples:
        - lang: cURL
          source: >-
            curl -X DELETE
            'https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85/transcriptions/t-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85'
            \
              -H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
              -H 'Accept: application/json'
        - lang: C#
          source: |
            using System.Collections.Generic;
            using System.Diagnostics;
            using Bandwidth.Standard.Api;
            using Bandwidth.Standard.Client;
            using Bandwidth.Standard.Model;

            namespace Example
            {
                public class DeleteRealTimeTranscriptionExample
                {
                    public static void Main()
                    {
                        Configuration config = new Configuration();
                        config.BasePath = "http://localhost";
                        // Configure HTTP basic authorization: Basic
                        config.Username = "YOUR_USERNAME";
                        config.Password = "YOUR_PASSWORD";

                        var apiInstance = new TranscriptionsApi(config);
                        var accountId = 9900000;  // string | Your Bandwidth Account ID.
                        var callId = c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85;  // string | Programmable Voice API Call ID.
                        var transcriptionId = t-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85;  // string | Programmable Voice API Transcription ID.

                        try
                        {
                            // Delete a specific transcription
                            apiInstance.DeleteRealTimeTranscription(accountId, callId, transcriptionId);
                        }
                        catch (ApiException  e)
                        {
                            Debug.Print("Exception when calling TranscriptionsApi.DeleteRealTimeTranscription: " + e.Message);
                            Debug.Print("Status Code: " + e.ErrorCode);
                            Debug.Print(e.StackTrace);
                        }
                    }
                }
            }
        - lang: Java
          source: |
            // Import classes:
            import com.bandwidth.sdk.ApiClient;
            import com.bandwidth.sdk.ApiException;
            import com.bandwidth.sdk.Configuration;
            import com.bandwidth.sdk.auth.*;
            import com.bandwidth.sdk.models.*;
            import com.bandwidth.sdk.api.TranscriptionsApi;

            public class Example {
              public static void main(String[] args) {
                ApiClient defaultClient = Configuration.getDefaultApiClient();
                defaultClient.setBasePath("http://localhost");
                
                // Configure HTTP basic authorization: Basic
                HttpBasicAuth Basic = (HttpBasicAuth) defaultClient.getAuthentication("Basic");
                Basic.setUsername("YOUR USERNAME");
                Basic.setPassword("YOUR PASSWORD");

                TranscriptionsApi apiInstance = new TranscriptionsApi(defaultClient);
                String accountId = "9900000"; // String | Your Bandwidth Account ID.
                String callId = "c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Call ID.
                String transcriptionId = "t-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85"; // String | Programmable Voice API Transcription ID.
                try {
                  apiInstance.deleteRealTimeTranscription(accountId, callId, transcriptionId);
                } catch (ApiException e) {
                  System.err.println("Exception when calling TranscriptionsApi#deleteRealTimeTranscription");
                  System.err.println("Status code: " + e.getCode());
                  System.err.println("Reason: " + e.getResponseBody());
                  System.err.println("Response headers: " + e.getResponseHeaders());
                  e.printStackTrace();
                }
              }
            }
        - lang: Python
          source: >
            import bandwidth

            from bandwidth.rest import ApiException

            from pprint import pprint


            # Defining the host is optional and defaults to http://localhost

            # See configuration.py for a list of all supported configuration
            parameters.

            configuration = bandwidth.Configuration(
                host = "http://localhost"
            )


            # The client must configure the authentication and authorization
            parameters

            # in accordance with the API server security policy.

            # Examples for each auth method are provided below, use the example
            that

            # satisfies your auth use case.


            # Configure HTTP basic authorization: Basic

            configuration = bandwidth.Configuration(
                username = os.environ["USERNAME"],
                password = os.environ["PASSWORD"]
            )


            # Enter a context with an instance of the API client

            with bandwidth.ApiClient(configuration) as api_client:
                # Create an instance of the API class
                api_instance = bandwidth.TranscriptionsApi(api_client)
                account_id = '9900000' # str | Your Bandwidth Account ID.
                call_id = 'c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # str | Programmable Voice API Call ID.
                transcription_id = 't-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # str | Programmable Voice API Transcription ID.

                try:
                    # Delete a specific transcription
                    api_instance.delete_real_time_transcription(account_id, call_id, transcription_id)
                except Exception as e:
                    print("Exception when calling TranscriptionsApi->delete_real_time_transcription: %s\n" % e)
        - lang: Ruby
          source: >
            require 'time'

            require 'bandwidth-sdk'

            # setup authorization

            Bandwidth.configure do |config|
              # Configure HTTP basic authorization: Basic
              config.username = 'YOUR USERNAME'
              config.password = 'YOUR PASSWORD'
            end


            api_instance = Bandwidth::TranscriptionsApi.new

            account_id = '9900000' # String | Your Bandwidth Account ID.

            call_id = 'c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85' # String
            | Programmable Voice API Call ID.

            transcription_id = 't-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85'
            # String | Programmable Voice API Transcription ID.


            begin
              # Delete a specific transcription
              api_instance.delete_real_time_transcription(account_id, call_id, transcription_id)
            rescue Bandwidth::ApiError => e
              puts "Error when calling TranscriptionsApi->delete_real_time_transcription: #{e}"
            end
        - lang: TypeScript
          source: >
            import {
                TranscriptionsApi,
                Configuration
            } from 'bandwidth-sdk';


            const configuration = new Configuration();

            const apiInstance = new TranscriptionsApi(configuration);


            let accountId: string; //Your Bandwidth Account ID. (default to
            undefined)

            let callId: string; //Programmable Voice API Call ID. (default to
            undefined)

            let transcriptionId: string; //Programmable Voice API Transcription
            ID. (default to undefined)


            const { status, data } = await
            apiInstance.deleteRealTimeTranscription(
                accountId,
                callId,
                transcriptionId
            );
components:
  schemas:
    callbackMethodEnum:
      type: string
      nullable: true
      default: POST
      enum:
        - GET
        - POST
      description: >-
        The HTTP method to use to deliver the callback. GET or POST. Default
        value is POST.
      example: POST
    redirectMethodEnum:
      type: string
      nullable: true
      default: POST
      enum:
        - GET
        - 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`.
      example: POST
    recordingStateEnum:
      type: string
      enum:
        - paused
        - recording
      description: |-
        The recording state. Possible values:

        `paused` to pause an active recording

        `recording` to resume a paused recording
      example: paused
    callDirectionEnum:
      type: string
      enum:
        - inbound
        - outbound
      description: The direction of the call.
      example: inbound
    fileFormatEnum:
      type: string
      enum:
        - mp3
        - wav
      description: The format that the recording is stored in.
      example: wav
    callStateEnum:
      nullable: true
      type: string
      default: active
      enum:
        - active
        - completed
      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
      example: completed
    conferenceStateEnum:
      nullable: true
      type: string
      default: active
      enum:
        - active
        - completed
      description: >-
        Setting the conference state to `completed` ends the conference and
        ejects all members.
      example: completed
    machineDetectionModeEnum:
      type: string
      default: async
      enum:
        - sync
        - 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.
      example: async
    callTranscriptionDetectedLanguageEnum:
      type: string
      enum:
        - en-US
        - es-US
        - fr-FR
      description: The detected language for this transcription.
      example: en-US
    callTranscriptionTrackEnum:
      type: string
      enum:
        - inbound
        - outbound
      description: Which `track` this transcription is derived from.
      example: inbound
    createCall:
      type: object
      required:
        - answerUrl
        - applicationId
        - from
        - to
      properties:
        to:
          type: string
          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'
        from:
          type: string
          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'
        privacy:
          nullable: true
          type: boolean
          description: >-
            Hide the calling number. The `displayName` field can be used to
            customize the displayed name.
          example: false
        displayName:
          nullable: true
          type: string
          description: >-
            The caller display name to use when the call is created.

            May not exceed 256 characters nor contain control characters such as
            new lines.

            If `privacy` is true, only the following values are valid:
            `Restricted`, `Anonymous`, `Private`, or `Unavailable`.
          maxLength: 256
          example: John Doe
        uui:
          nullable: true
          type: string
          example: >-
            eyJhbGciOiJIUzI1NiJ9.WyJoaSJd.-znkjYyCkgz4djmHUPSXl9YrJ6Nix_XvmlwKGFh5ERM;encoding=jwt,aGVsbG8gd29ybGQ;encoding=base64
          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.
        applicationId:
          type: string
          description: The id of the application associated with the `from` number.
          example: 1234-qwer-5679-tyui
        answerUrl:
          type: string
          format: uri
          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`.
          maxLength: 2048
          example: https://www.myCallbackServer.example/webhooks/answer
        answerMethod:
          $ref: '#/components/schemas/callbackMethodEnum'
        username:
          type: string
          nullable: true
          description: Basic auth username.
          maxLength: 1024
          example: mySecretUsername
        password:
          type: string
          nullable: true
          description: Basic auth password.
          maxLength: 1024
          example: mySecretPassword1!
        answerFallbackUrl:
          nullable: true
          type: string
          format: uri
          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`.
          maxLength: 2048
          example: https://www.myFallbackServer.example/webhooks/answer
        answerFallbackMethod:
          $ref: '#/components/schemas/callbackMethodEnum'
        fallbackUsername:
          type: string
          nullable: true
          description: Basic auth username.
          maxLength: 1024
          example: mySecretUsername
        fallbackPassword:
          type: string
          nullable: true
          description: Basic auth password.
          maxLength: 1024
          example: mySecretPassword1!
        disconnectUrl:
          nullable: true
          type: string
          format: uri
          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.
          maxLength: 2048
          example: https://www.myCallbackServer.example/webhooks/disconnect
        disconnectMethod:
          $ref: '#/components/schemas/callbackMethodEnum'
        callTimeout:
          nullable: true
          type: number
          format: double
          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.
          minimum: 1
          maximum: 300
          default: 30
          example: 30
        callbackTimeout:
          nullable: true
          type: number
          format: double
          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.
          minimum: 1
          maximum: 25
          default: 15
          example: 15
        machineDetection:
          $ref: '#/components/schemas/machineDetectionConfiguration'
        priority:
          nullable: true
          type: integer
          minimum: 1
          maximum: 5
          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
        tag:
          nullable: true
          type: string
          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 4096 characters.
          maxLength: 4096
          example: arbitrary text here
    createCallResponse:
      type: object
      required:
        - accountId
        - answerMethod
        - answerUrl
        - applicationId
        - callId
        - callUrl
        - disconnectMethod
        - from
        - to
      properties:
        applicationId:
          type: string
          example: 04e88489-df02-4e34-a0ee-27a91849555f
          description: The id of the application associated with the `from` number.
        accountId:
          type: string
          example: '9900000'
          description: The bandwidth account ID associated with the call.
        callId:
          type: string
          example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          description: Programmable Voice API Call ID.
        to:
          type: string
          example: '+19195551234'
          description: Recipient of the outgoing call.
        from:
          type: string
          example: '+19195554321'
          description: Phone number that created the outbound call.
        enqueuedTime:
          nullable: true
          type: string
          format: date-time
          description: The time at which the call was accepted into the queue.
          example: '2022-06-16T13:15:07.160Z'
        callUrl:
          type: string
          format: uri
          example: >-
            https://voice.bandwidth.com/api/v2/accounts/9900000/calls/c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          description: The URL to update this call's state.
        callTimeout:
          type: number
          format: double
          example: 30
          description: >-
            The timeout (in seconds) for the callee to answer the call after it
            starts ringing.
        callbackTimeout:
          type: number
          format: double
          example: 15
          description: >-
            This is the timeout (in seconds) to use when delivering webhooks for
            the call.
        tag:
          nullable: true
          type: string
          example: My custom tag value
          description: Custom tag value.
        answerMethod:
          $ref: '#/components/schemas/callbackMethodEnum'
        answerUrl:
          type: string
          format: uri
          example: https://myServer.example/bandwidth/webhooks/answer
          description: URL to deliver the `answer` event webhook.
        answerFallbackMethod:
          $ref: '#/components/schemas/callbackMethodEnum'
        answerFallbackUrl:
          nullable: true
          type: string
          format: uri
          example: https://myFallbackServer.example/bandwidth/webhooks/answer
          description: Fallback URL to deliver the `answer` event webhook.
        disconnectMethod:
          $ref: '#/components/schemas/callbackMethodEnum'
        disconnectUrl:
          nullable: true
          type: string
          format: uri
          example: https://myServer.example/bandwidth/webhooks/disconnect
          description: URL to deliver the `disconnect` event webhook.
        username:
          type: string
          nullable: true
          description: Basic auth username.
          maxLength: 1024
          example: mySecretUsername
        password:
          type: string
          nullable: true
          description: Basic auth password.
          maxLength: 1024
          example: mySecretPassword1!
        fallbackUsername:
          type: string
          nullable: true
          description: Basic auth username.
          maxLength: 1024
          example: mySecretUsername
        fallbackPassword:
          type: string
          nullable: true
          description: Basic auth password.
          maxLength: 1024
          example: mySecretPassword1!
        priority:
          nullable: true
          type: integer
          example: 5
          description: The priority of this call over other calls from your account.
    callState:
      type: object
      properties:
        applicationId:
          type: string
          description: The application id associated with the call.
          example: 04e88489-df02-4e34-a0ee-27a91849555f
        accountId:
          type: string
          description: The account id associated with the call.
          example: '9900000'
        callId:
          type: string
          description: The programmable voice API call ID.
          example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        parentCallId:
          nullable: true
          type: string
          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
        to:
          type: string
          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'
        from:
          type: string
          description: >-
            The phone number that made the call, in E.164 format (e.g.
            +15555555555).
          example: '+19195554321'
        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.
          type: string
          example: disconnected
        stirShaken:
          nullable: true
          type: object
          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).
          additionalProperties:
            type: string
          example:
            verstat: TN-Validation-Passed
            attestationIndicator: A
            originatingId: abc123
        identity:
          nullable: true
          type: string
          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
        enqueuedTime:
          nullable: true
          type: string
          format: date-time
          description: The time this call was placed in queue.
          example: '2022-06-16T13:15:07.160Z'
        startTime:
          nullable: true
          type: string
          format: date-time
          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.160Z'
        answerTime:
          nullable: true
          type: string
          format: date-time
          description: >-
            Populated once the call has been answered, with the time in ISO 8601
            format.
          example: '2022-06-16T13:15:18.126Z'
        endTime:
          nullable: true
          type: string
          format: date-time
          description: Populated once the call has ended, with the time in ISO 8601 format.
          example: '2022-06-16T13:15:18.314Z'
        disconnectCause:
          nullable: true
          type: string
          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.
        errorMessage:
          nullable: true
          type: string
          description: >-
            Populated only if the call ended with an error, with text explaining
            the reason.
          example: null
        errorId:
          nullable: true
          type: string
          description: >-
            Populated only if the call ended with an error, with a Bandwidth
            internal id that references the error event.
          example: null
        lastUpdate:
          type: string
          format: date-time
          description: The last time the call had a state update, in ISO 8601 format.
          example: '2022-06-16T13:15:18.314Z'
    updateCall:
      type: object
      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`.
          nullable: true
          type: string
          format: uri
          example: https://myServer.example/bandwidth/webhooks/redirect
        redirectMethod:
          $ref: '#/components/schemas/redirectMethodEnum'
        username:
          type: string
          nullable: true
          description: Basic auth username.
          maxLength: 1024
          example: mySecretUsername
        password:
          type: string
          nullable: true
          description: Basic auth password.
          maxLength: 1024
          example: mySecretPassword1!
        redirectFallbackUrl:
          nullable: true
          type: string
          format: uri
          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
        redirectFallbackMethod:
          $ref: '#/components/schemas/redirectMethodEnum'
        fallbackUsername:
          type: string
          nullable: true
          description: Basic auth username.
          maxLength: 1024
          example: mySecretUsername
        fallbackPassword:
          type: string
          nullable: true
          description: Basic auth password.
          maxLength: 1024
          example: mySecretPassword1!
        tag:
          nullable: true
          type: string
          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 4096 characters.


            Not allowed if `state` is `completed`.
          maxLength: 4096
          example: My Custom Tag
    updateCallRecording:
      type: object
      required:
        - state
      properties:
        state:
          $ref: '#/components/schemas/recordingStateEnum'
    accountStatistics:
      type: object
      properties:
        currentCallQueueSize:
          type: integer
          description: The number of calls currently enqueued.
          example: 0
        maxCallQueueSize:
          type: integer
          description: >-
            The maximum size of the queue before outgoing calls start being
            rejected.
          example: 900
    callRecordingMetadata:
      type: object
      properties:
        applicationId:
          $ref: '#/components/schemas/applicationId'
        accountId:
          $ref: '#/components/schemas/accountId'
        callId:
          $ref: '#/components/schemas/callId'
        parentCallId:
          $ref: '#/components/schemas/parentCallId'
        recordingId:
          $ref: '#/components/schemas/recordingId'
        to:
          $ref: '#/components/schemas/to'
        from:
          $ref: '#/components/schemas/from'
        transferCallerId:
          $ref: '#/components/schemas/transferCallerId'
        transferTo:
          $ref: '#/components/schemas/transferTo'
        duration:
          $ref: '#/components/schemas/duration'
        direction:
          $ref: '#/components/schemas/callDirectionEnum'
        channels:
          $ref: '#/components/schemas/channels'
        startTime:
          $ref: '#/components/schemas/startTime'
        endTime:
          $ref: '#/components/schemas/endTime'
        fileFormat:
          $ref: '#/components/schemas/fileFormatEnum'
        status:
          $ref: '#/components/schemas/status'
        mediaUrl:
          $ref: '#/components/schemas/mediaUrl'
        transcription:
          $ref: '#/components/schemas/recordingTranscriptionMetadata'
        recordingName:
          $ref: '#/components/schemas/recordingName'
    conference:
      type: object
      properties:
        id:
          type: string
          description: The Bandwidth-generated conference ID.
          example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
        name:
          type: string
          description: The name of the conference, as specified by your application.
          example: my-conference-name
        createdTime:
          type: string
          format: date-time
          description: The time the conference was initiated, in ISO 8601 format.
          example: '2022-06-17T22:19:40.375Z'
        completedTime:
          nullable: true
          type: string
          format: date-time
          description: The time the conference was terminated, in ISO 8601 format.
          example: '2022-06-17T22:20:00.000Z'
        conferenceEventUrl:
          nullable: true
          type: string
          format: uri
          description: The URL to send the conference-related events.
          example: https://myServer.example/bandwidth/webhooks/conferenceEvent
        conferenceEventMethod:
          $ref: '#/components/schemas/callbackMethodEnum'
        tag:
          nullable: true
          type: string
          description: >-
            The custom string attached to the conference that will be sent with
            callbacks.
          example: my custom tag
        activeMembers:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/conferenceMember'
          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).
    updateConference:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/conferenceStateEnum'
        redirectUrl:
          nullable: true
          type: string
          format: uri
          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
        redirectMethod:
          $ref: '#/components/schemas/redirectMethodEnum'
        username:
          type: string
          nullable: true
          description: Basic auth username.
          maxLength: 1024
          example: mySecretUsername
        password:
          type: string
          nullable: true
          description: Basic auth password.
          maxLength: 1024
          example: mySecretPassword1!
        redirectFallbackUrl:
          nullable: true
          type: string
          format: uri
          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
        redirectFallbackMethod:
          $ref: '#/components/schemas/redirectMethodEnum'
        fallbackUsername:
          type: string
          nullable: true
          description: Basic auth username.
          maxLength: 1024
          example: mySecretUsername
        fallbackPassword:
          type: string
          nullable: true
          description: Basic auth password.
          maxLength: 1024
          example: mySecretPassword1!
    conferenceMember:
      type: object
      properties:
        callId:
          $ref: '#/components/schemas/callId'
        conferenceId:
          $ref: '#/components/schemas/conferenceId'
        memberUrl:
          type: string
          format: uri
          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
        mute:
          type: boolean
          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
        hold:
          type: boolean
          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
        callIdsToCoach:
          nullable: true
          type: array
          items:
            type: string
          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
    updateConferenceMember:
      type: object
      properties:
        mute:
          type: boolean
          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
        hold:
          type: boolean
          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
        callIdsToCoach:
          nullable: true
          type: array
          items:
            type: string
          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
    conferenceRecordingMetadata:
      type: object
      properties:
        accountId:
          $ref: '#/components/schemas/accountId'
        conferenceId:
          $ref: '#/components/schemas/conferenceId'
        name:
          $ref: '#/components/schemas/name'
        recordingId:
          $ref: '#/components/schemas/recordingId'
        duration:
          $ref: '#/components/schemas/duration'
        channels:
          $ref: '#/components/schemas/channels'
        startTime:
          $ref: '#/components/schemas/startTime'
        endTime:
          $ref: '#/components/schemas/endTime'
        fileFormat:
          $ref: '#/components/schemas/fileFormatEnum'
        status:
          $ref: '#/components/schemas/status'
        mediaUrl:
          $ref: '#/components/schemas/mediaUrl'
        recordingName:
          $ref: '#/components/schemas/recordingName'
    machineDetectionConfiguration:
      type: object
      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:
          nullable: true
          type: number
          format: double
          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.
          default: 15
          example: 15
        silenceTimeout:
          nullable: true
          type: number
          format: double
          description: >-
            If no speech is detected in this period, a callback with a 'silence'
            result is sent.
          default: 10
          example: 10
        speechThreshold:
          nullable: true
          type: number
          format: double
          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'.
          default: 10
          example: 10
        speechEndThreshold:
          nullable: true
          type: number
          format: double
          description: >-
            Amount of silence (in seconds) before assuming the callee has
            finished speaking.
          default: 5
          example: 5
        machineSpeechEndThreshold:
          nullable: true
          type: number
          format: double
          description: >-
            When an answering machine is detected, the amount of silence (in
            seconds) before assuming the message has finished playing.

            If not provided it will default to the speechEndThreshold value.
          example: 5
        delayResult:
          nullable: true
          type: boolean
          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.
          default: false
          example: false
        callbackUrl:
          nullable: true
          description: >-
            The URL to send the 'machineDetectionComplete' webhook when the
            detection is completed. Only for 'async' mode.
          type: string
          format: uri
          maxLength: 2048
          example: https://myServer.example/bandwidth/webhooks/machineDetectionComplete
        callbackMethod:
          $ref: '#/components/schemas/callbackMethodEnum'
        username:
          type: string
          nullable: true
          description: Basic auth username.
          maxLength: 1024
          example: mySecretUsername
        password:
          type: string
          nullable: true
          description: Basic auth password.
          maxLength: 1024
          example: mySecretPassword1!
        fallbackUrl:
          nullable: true
          type: string
          format: uri
          description: >-
            A fallback URL which, if provided, will be used to retry the

            machine detection complete webhook delivery in case `callbackUrl`
            fails

            to respond
          maxLength: 2048
          example: >-
            https://myFallbackServer.example/bandwidth/webhooks/machineDetectionComplete
        fallbackMethod:
          $ref: '#/components/schemas/callbackMethodEnum'
        fallbackUsername:
          type: string
          nullable: true
          description: Basic auth username.
          maxLength: 1024
          example: mySecretUsername
        fallbackPassword:
          type: string
          nullable: true
          description: Basic auth password.
          maxLength: 1024
          example: mySecretPassword1!
    transcribeRecording:
      type: object
      properties:
        callbackUrl:
          type: string
          format: uri
          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
        callbackMethod:
          $ref: '#/components/schemas/callbackMethodEnum'
        username:
          type: string
          nullable: true
          description: Basic auth username.
          maxLength: 1024
          example: mySecretUsername
        password:
          type: string
          nullable: true
          description: Basic auth password.
          maxLength: 1024
          example: mySecretPassword1!
        tag:
          $ref: '#/components/schemas/tag'
        callbackTimeout:
          nullable: true
          type: number
          format: double
          minimum: 1
          maximum: 25
          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
        detectLanguage:
          type: boolean
          nullable: true
          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.
          default: false
          example: true
    recordingTranscriptions:
      type: object
      properties:
        transcripts:
          type: array
          items:
            $ref: '#/components/schemas/transcription'
    callTranscriptionMetadataList:
      type: array
      items:
        $ref: '#/components/schemas/callTranscriptionMetadata'
      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
    callTranscriptionMetadata:
      type: object
      properties:
        transcriptionId:
          type: string
          description: The programmable voice API transcription ID.
          example: t-3f758f24-c7a2fc78-7c91-401a-8b2e-e542f9c40d6b
        transcriptionName:
          type: string
          description: >-
            The programmable voice API transcription name. This name could be
            provided by the user when creating the transcription.
          example: live_transcription
        transcriptionUrl:
          type: string
          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
    callTranscriptionResponse:
      type: object
      properties:
        accountId:
          type: string
          description: The user account associated with the call.
          example: '9900000'
        callId:
          type: string
          description: The call id associated with the event.
          example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        transcriptionId:
          type: string
          description: The programmable voice API transcription ID.
          example: t-3f758f24-c7a2fc78-7c91-401a-8b2e-e542f9c40d6b
        tracks:
          type: array
          items:
            $ref: '#/components/schemas/callTranscription'
          example:
            - detectedLanguage: en-US
              track: inbound
              transcript: Hello World! This is an example.
              confidence: 0.9
    callTranscription:
      type: object
      properties:
        detectedLanguage:
          $ref: '#/components/schemas/callTranscriptionDetectedLanguageEnum'
        track:
          $ref: '#/components/schemas/callTranscriptionTrackEnum'
        transcript:
          type: string
          description: The transcription itself.
          example: Hello World! This is an example.
        confidence:
          type: number
          format: double
          minimum: 0
          maximum: 1
          description: >-
            How confident the transcription engine was in transcribing the
            associated audio (from `0` to `1`).
          example: 0.9
    recordingTranscriptionMetadata:
      nullable: true
      type: object
      description: If the recording was transcribed, metadata about the transcription
      properties:
        id:
          type: string
          description: The unique transcription ID
          example: t-387bd648-18f3-4823-9d16-746bca0003c9
        status:
          $ref: '#/components/schemas/status'
        completedTime:
          type: string
          format: date-time
          description: The time that the transcription was completed
          example: '2022-06-13T18:46:29.715Z'
        url:
          type: string
          format: uri
          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
    voiceApiError:
      type: object
      properties:
        type:
          type: string
        description:
          type: string
        id:
          nullable: true
          type: string
    answerCallback:
      type: object
      description: >-
        The Answer event is sent to the answerUrl specified in the createCall
        request when an outbound call is answered.
      properties:
        eventType:
          $ref: '#/components/schemas/eventType'
        eventTime:
          $ref: '#/components/schemas/eventTime'
        accountId:
          $ref: '#/components/schemas/accountId'
        applicationId:
          $ref: '#/components/schemas/applicationId'
        from:
          $ref: '#/components/schemas/from'
        to:
          $ref: '#/components/schemas/to'
        direction:
          $ref: '#/components/schemas/callDirectionEnum'
        callId:
          $ref: '#/components/schemas/callId'
        callUrl:
          $ref: '#/components/schemas/callUrl'
        enqueuedTime:
          $ref: '#/components/schemas/enqueuedTime'
        startTime:
          $ref: '#/components/schemas/startTime'
        answerTime:
          $ref: '#/components/schemas/answerTime'
        tag:
          $ref: '#/components/schemas/tag'
        machineDetectionResult:
          $ref: '#/components/schemas/machineDetectionResult'
    bridgeCompleteCallback:
      type: object
      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:
          $ref: '#/components/schemas/eventType'
        eventTime:
          $ref: '#/components/schemas/eventTime'
        accountId:
          $ref: '#/components/schemas/accountId'
        applicationId:
          $ref: '#/components/schemas/applicationId'
        from:
          $ref: '#/components/schemas/from'
        to:
          $ref: '#/components/schemas/to'
        direction:
          $ref: '#/components/schemas/callDirectionEnum'
        callId:
          $ref: '#/components/schemas/callId'
        callUrl:
          $ref: '#/components/schemas/callUrl'
        enqueuedTime:
          $ref: '#/components/schemas/enqueuedTime'
        startTime:
          $ref: '#/components/schemas/startTime'
        answerTime:
          $ref: '#/components/schemas/answerTime'
        tag:
          $ref: '#/components/schemas/tag'
        cause:
          $ref: '#/components/schemas/cause'
        errorMessage:
          $ref: '#/components/schemas/errorMessage'
        errorId:
          $ref: '#/components/schemas/errorId'
    bridgeTargetCompleteCallback:
      type: object
      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:
          $ref: '#/components/schemas/eventType'
        eventTime:
          $ref: '#/components/schemas/eventTime'
        accountId:
          $ref: '#/components/schemas/accountId'
        applicationId:
          $ref: '#/components/schemas/applicationId'
        from:
          $ref: '#/components/schemas/from'
        to:
          $ref: '#/components/schemas/to'
        direction:
          $ref: '#/components/schemas/callDirectionEnum'
        callId:
          $ref: '#/components/schemas/callId'
        callUrl:
          $ref: '#/components/schemas/callUrl'
        enqueuedTime:
          $ref: '#/components/schemas/enqueuedTime'
        startTime:
          $ref: '#/components/schemas/startTime'
        answerTime:
          $ref: '#/components/schemas/answerTime'
        tag:
          $ref: '#/components/schemas/tag'
    conferenceCreatedCallback:
      type: object
      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:
          $ref: '#/components/schemas/eventType'
        eventTime:
          $ref: '#/components/schemas/eventTime'
        conferenceId:
          $ref: '#/components/schemas/conferenceId'
        name:
          $ref: '#/components/schemas/name'
        tag:
          $ref: '#/components/schemas/tag'
    conferenceRedirectCallback:
      type: object
      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:
          $ref: '#/components/schemas/eventType'
        eventTime:
          $ref: '#/components/schemas/eventTime'
        conferenceId:
          $ref: '#/components/schemas/conferenceId'
        name:
          $ref: '#/components/schemas/name'
        tag:
          $ref: '#/components/schemas/tag'
    conferenceMemberJoinCallback:
      type: object
      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:
          $ref: '#/components/schemas/eventType'
        eventTime:
          $ref: '#/components/schemas/eventTime'
        conferenceId:
          $ref: '#/components/schemas/conferenceId'
        name:
          $ref: '#/components/schemas/name'
        from:
          $ref: '#/components/schemas/from'
        to:
          $ref: '#/components/schemas/to'
        callId:
          $ref: '#/components/schemas/callId'
        tag:
          $ref: '#/components/schemas/tag'
    conferenceMemberExitCallback:
      type: object
      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:
          $ref: '#/components/schemas/eventType'
        eventTime:
          $ref: '#/components/schemas/eventTime'
        conferenceId:
          $ref: '#/components/schemas/conferenceId'
        name:
          $ref: '#/components/schemas/name'
        from:
          $ref: '#/components/schemas/from'
        to:
          $ref: '#/components/schemas/to'
        callId:
          $ref: '#/components/schemas/callId'
        tag:
          $ref: '#/components/schemas/tag'
    conferenceCompletedCallback:
      type: object
      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:
          $ref: '#/components/schemas/eventType'
        eventTime:
          $ref: '#/components/schemas/eventTime'
        conferenceId:
          $ref: '#/components/schemas/conferenceId'
        name:
          $ref: '#/components/schemas/name'
        tag:
          $ref: '#/components/schemas/tag'
    conferenceRecordingAvailableCallback:
      type: object
      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:
          $ref: '#/components/schemas/eventType'
        eventTime:
          $ref: '#/components/schemas/eventTime'
        conferenceId:
          $ref: '#/components/schemas/conferenceId'
        name:
          $ref: '#/components/schemas/name'
        accountId:
          $ref: '#/components/schemas/accountId'
        recordingId:
          $ref: '#/components/schemas/recordingId'
        channels:
          $ref: '#/components/schemas/channels'
        startTime:
          $ref: '#/components/schemas/startTime'
        endTime:
          $ref: '#/components/schemas/endTime'
        duration:
          $ref: '#/components/schemas/duration'
        fileFormat:
          $ref: '#/components/schemas/fileFormatEnum'
        mediaUrl:
          $ref: '#/components/schemas/mediaUrl'
        tag:
          $ref: '#/components/schemas/tag'
        status:
          $ref: '#/components/schemas/status'
    disconnectCallback:
      type: object
      description: The Disconnect event is fired when a call ends, for any reason.
      properties:
        eventType:
          $ref: '#/components/schemas/eventType'
        eventTime:
          $ref: '#/components/schemas/eventTime'
        accountId:
          $ref: '#/components/schemas/accountId'
        applicationId:
          $ref: '#/components/schemas/applicationId'
        from:
          $ref: '#/components/schemas/from'
        to:
          $ref: '#/components/schemas/to'
        callId:
          $ref: '#/components/schemas/callId'
        direction:
          $ref: '#/components/schemas/callDirectionEnum'
        callUrl:
          $ref: '#/components/schemas/callUrl'
        enqueuedTime:
          $ref: '#/components/schemas/enqueuedTime'
        startTime:
          $ref: '#/components/schemas/startTime'
        answerTime:
          $ref: '#/components/schemas/answerTime'
        endTime:
          $ref: '#/components/schemas/endTime'
        cause:
          $ref: '#/components/schemas/cause'
        errorMessage:
          $ref: '#/components/schemas/errorMessage'
        errorId:
          $ref: '#/components/schemas/errorId'
        tag:
          $ref: '#/components/schemas/tag'
    dtmfCallback:
      type: object
      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:
          $ref: '#/components/schemas/eventType'
        eventTime:
          $ref: '#/components/schemas/eventTime'
        accountId:
          $ref: '#/components/schemas/accountId'
        applicationId:
          $ref: '#/components/schemas/applicationId'
        from:
          $ref: '#/components/schemas/from'
        to:
          $ref: '#/components/schemas/to'
        callId:
          $ref: '#/components/schemas/callId'
        direction:
          $ref: '#/components/schemas/callDirectionEnum'
        digit:
          $ref: '#/components/schemas/digit'
        callUrl:
          $ref: '#/components/schemas/callUrl'
        enqueuedTime:
          $ref: '#/components/schemas/enqueuedTime'
        startTime:
          $ref: '#/components/schemas/startTime'
        answerTime:
          $ref: '#/components/schemas/answerTime'
        parentCallId:
          $ref: '#/components/schemas/parentCallId'
        transferCallerId:
          $ref: '#/components/schemas/transferCallerId'
        transferTo:
          $ref: '#/components/schemas/transferTo'
        tag:
          $ref: '#/components/schemas/tag'
    gatherCallback:
      type: object
      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:
          $ref: '#/components/schemas/eventType'
        eventTime:
          $ref: '#/components/schemas/eventTime'
        accountId:
          $ref: '#/components/schemas/accountId'
        applicationId:
          $ref: '#/components/schemas/applicationId'
        from:
          $ref: '#/components/schemas/from'
        to:
          $ref: '#/components/schemas/to'
        direction:
          $ref: '#/components/schemas/callDirectionEnum'
        callId:
          $ref: '#/components/schemas/callId'
        digits:
          $ref: '#/components/schemas/digits'
        callUrl:
          $ref: '#/components/schemas/callUrl'
        enqueuedTime:
          $ref: '#/components/schemas/enqueuedTime'
        startTime:
          $ref: '#/components/schemas/startTime'
        answerTime:
          $ref: '#/components/schemas/answerTime'
        parentCallId:
          $ref: '#/components/schemas/parentCallId'
        terminatingDigit:
          $ref: '#/components/schemas/terminatingDigit'
        transferCallerId:
          $ref: '#/components/schemas/transferCallerId'
        transferTo:
          $ref: '#/components/schemas/transferTo'
        tag:
          $ref: '#/components/schemas/tag'
    initiateCallback:
      type: object
      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:
          $ref: '#/components/schemas/eventType'
        eventTime:
          $ref: '#/components/schemas/eventTime'
        accountId:
          $ref: '#/components/schemas/accountId'
        applicationId:
          $ref: '#/components/schemas/applicationId'
        from:
          $ref: '#/components/schemas/from'
        to:
          $ref: '#/components/schemas/to'
        direction:
          $ref: '#/components/schemas/callDirectionEnum'
        callId:
          $ref: '#/components/schemas/callId'
        callUrl:
          $ref: '#/components/schemas/callUrl'
        startTime:
          $ref: '#/components/schemas/startTime'
        diversion:
          $ref: '#/components/schemas/diversion'
        stirShaken:
          $ref: '#/components/schemas/stirShaken'
        uui:
          $ref: '#/components/schemas/uui'
    machineDetectionCompleteCallback:
      type: object
      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:
          $ref: '#/components/schemas/eventType'
        eventTime:
          $ref: '#/components/schemas/eventTime'
        accountId:
          $ref: '#/components/schemas/accountId'
        applicationId:
          $ref: '#/components/schemas/applicationId'
        from:
          $ref: '#/components/schemas/from'
        to:
          $ref: '#/components/schemas/to'
        direction:
          $ref: '#/components/schemas/callDirectionEnum'
        callId:
          $ref: '#/components/schemas/callId'
        callUrl:
          $ref: '#/components/schemas/callUrl'
        enqueuedTime:
          $ref: '#/components/schemas/enqueuedTime'
        startTime:
          $ref: '#/components/schemas/startTime'
        answerTime:
          $ref: '#/components/schemas/answerTime'
        tag:
          $ref: '#/components/schemas/tag'
        machineDetectionResult:
          $ref: '#/components/schemas/machineDetectionResult'
    recordingCompleteCallback:
      type: object
      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:
          $ref: '#/components/schemas/eventType'
        eventTime:
          $ref: '#/components/schemas/eventTime'
        accountId:
          $ref: '#/components/schemas/accountId'
        applicationId:
          $ref: '#/components/schemas/applicationId'
        from:
          $ref: '#/components/schemas/from'
        to:
          $ref: '#/components/schemas/to'
        direction:
          $ref: '#/components/schemas/callDirectionEnum'
        callId:
          $ref: '#/components/schemas/callId'
        callUrl:
          $ref: '#/components/schemas/callUrl'
        parentCallId:
          $ref: '#/components/schemas/parentCallId'
        recordingId:
          $ref: '#/components/schemas/recordingId'
        mediaUrl:
          $ref: '#/components/schemas/mediaUrl'
        enqueuedTime:
          $ref: '#/components/schemas/enqueuedTime'
        startTime:
          $ref: '#/components/schemas/startTime'
        answerTime:
          $ref: '#/components/schemas/answerTime'
        endTime:
          $ref: '#/components/schemas/endTime'
        duration:
          $ref: '#/components/schemas/duration'
        fileFormat:
          $ref: '#/components/schemas/fileFormatEnum'
        channels:
          $ref: '#/components/schemas/channels'
        tag:
          $ref: '#/components/schemas/tag'
        transferCallerId:
          $ref: '#/components/schemas/transferCallerId'
        transferTo:
          $ref: '#/components/schemas/transferTo'
    recordingAvailableCallback:
      type: object
      description: >-
        The Recording Available event is sent after a recording has been
        processed. It indicates that the recording is available for download.
      properties:
        eventType:
          $ref: '#/components/schemas/eventType'
        eventTime:
          $ref: '#/components/schemas/eventTime'
        accountId:
          $ref: '#/components/schemas/accountId'
        applicationId:
          $ref: '#/components/schemas/applicationId'
        from:
          $ref: '#/components/schemas/from'
        to:
          $ref: '#/components/schemas/to'
        direction:
          $ref: '#/components/schemas/callDirectionEnum'
        callId:
          $ref: '#/components/schemas/callId'
        callUrl:
          $ref: '#/components/schemas/callUrl'
        parentCallId:
          $ref: '#/components/schemas/parentCallId'
        recordingId:
          $ref: '#/components/schemas/recordingId'
        mediaUrl:
          $ref: '#/components/schemas/mediaUrl'
        enqueuedTime:
          $ref: '#/components/schemas/enqueuedTime'
        startTime:
          $ref: '#/components/schemas/startTime'
        endTime:
          $ref: '#/components/schemas/endTime'
        duration:
          $ref: '#/components/schemas/duration'
        fileFormat:
          $ref: '#/components/schemas/fileFormatEnum'
        channels:
          $ref: '#/components/schemas/channels'
        tag:
          $ref: '#/components/schemas/tag'
        status:
          $ref: '#/components/schemas/status'
        transferCallerId:
          $ref: '#/components/schemas/transferCallerId'
        transferTo:
          $ref: '#/components/schemas/transferTo'
    redirectCallback:
      type: object
      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:
          $ref: '#/components/schemas/eventType'
        eventTime:
          $ref: '#/components/schemas/eventTime'
        accountId:
          $ref: '#/components/schemas/accountId'
        applicationId:
          $ref: '#/components/schemas/applicationId'
        from:
          $ref: '#/components/schemas/from'
        to:
          $ref: '#/components/schemas/to'
        direction:
          $ref: '#/components/schemas/callDirectionEnum'
        callId:
          $ref: '#/components/schemas/callId'
        callUrl:
          $ref: '#/components/schemas/callUrl'
        parentCallId:
          $ref: '#/components/schemas/parentCallId'
        enqueuedTime:
          $ref: '#/components/schemas/enqueuedTime'
        startTime:
          $ref: '#/components/schemas/startTime'
        answerTime:
          $ref: '#/components/schemas/answerTime'
        tag:
          $ref: '#/components/schemas/tag'
        transferCallerId:
          $ref: '#/components/schemas/transferCallerId'
        transferTo:
          $ref: '#/components/schemas/transferTo'
    transcriptionAvailableCallback:
      type: object
      description: >-
        The Transcription Available event is sent when the recording
        transcription is available to be downloaded.
      properties:
        eventType:
          $ref: '#/components/schemas/eventType'
        eventTime:
          $ref: '#/components/schemas/eventTime'
        accountId:
          $ref: '#/components/schemas/accountId'
        applicationId:
          $ref: '#/components/schemas/applicationId'
        from:
          $ref: '#/components/schemas/from'
        to:
          $ref: '#/components/schemas/to'
        direction:
          $ref: '#/components/schemas/callDirectionEnum'
        callId:
          $ref: '#/components/schemas/callId'
        callUrl:
          $ref: '#/components/schemas/callUrl'
        mediaUrl:
          $ref: '#/components/schemas/mediaUrl'
        parentCallId:
          $ref: '#/components/schemas/parentCallId'
        recordingId:
          $ref: '#/components/schemas/recordingId'
        enqueuedTime:
          $ref: '#/components/schemas/enqueuedTime'
        startTime:
          $ref: '#/components/schemas/startTime'
        endTime:
          $ref: '#/components/schemas/endTime'
        duration:
          $ref: '#/components/schemas/duration'
        fileFormat:
          $ref: '#/components/schemas/fileFormatEnum'
        tag:
          $ref: '#/components/schemas/tag'
        transcription:
          $ref: '#/components/schemas/transcription'
        transferCallerId:
          $ref: '#/components/schemas/transferCallerId'
        transferTo:
          $ref: '#/components/schemas/transferTo'
    transferAnswerCallback:
      type: object
      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:
          $ref: '#/components/schemas/eventType'
        eventTime:
          $ref: '#/components/schemas/eventTime'
        accountId:
          $ref: '#/components/schemas/accountId'
        applicationId:
          $ref: '#/components/schemas/applicationId'
        from:
          $ref: '#/components/schemas/from'
        to:
          $ref: '#/components/schemas/to'
        direction:
          $ref: '#/components/schemas/callDirectionEnum'
        callId:
          $ref: '#/components/schemas/callId'
        callUrl:
          $ref: '#/components/schemas/callUrl'
        enqueuedTime:
          $ref: '#/components/schemas/enqueuedTime'
        startTime:
          $ref: '#/components/schemas/startTime'
        answerTime:
          $ref: '#/components/schemas/answerTime'
        tag:
          $ref: '#/components/schemas/tag'
        transferCallerId:
          $ref: '#/components/schemas/transferCallerId'
        transferTo:
          $ref: '#/components/schemas/transferTo'
    transferCompleteCallback:
      type: object
      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:
          $ref: '#/components/schemas/eventType'
        eventTime:
          $ref: '#/components/schemas/eventTime'
        accountId:
          $ref: '#/components/schemas/accountId'
        applicationId:
          $ref: '#/components/schemas/applicationId'
        from:
          $ref: '#/components/schemas/from'
        to:
          $ref: '#/components/schemas/to'
        direction:
          $ref: '#/components/schemas/callDirectionEnum'
        callId:
          $ref: '#/components/schemas/callId'
        callUrl:
          $ref: '#/components/schemas/callUrl'
        enqueuedTime:
          $ref: '#/components/schemas/enqueuedTime'
        startTime:
          $ref: '#/components/schemas/startTime'
        answerTime:
          $ref: '#/components/schemas/answerTime'
        tag:
          $ref: '#/components/schemas/tag'
        transferCallerId:
          $ref: '#/components/schemas/transferCallerId'
        transferTo:
          $ref: '#/components/schemas/transferTo'
        cause:
          $ref: '#/components/schemas/cause'
        errorMessage:
          $ref: '#/components/schemas/errorMessage'
        errorId:
          $ref: '#/components/schemas/errorId'
    transferDisconnectCallback:
      type: object
      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:
          $ref: '#/components/schemas/eventType'
        eventTime:
          $ref: '#/components/schemas/eventTime'
        accountId:
          $ref: '#/components/schemas/accountId'
        applicationId:
          $ref: '#/components/schemas/applicationId'
        from:
          $ref: '#/components/schemas/from'
        to:
          $ref: '#/components/schemas/to'
        direction:
          $ref: '#/components/schemas/callDirectionEnum'
        callId:
          $ref: '#/components/schemas/callId'
        callUrl:
          $ref: '#/components/schemas/callUrl'
        parentCallId:
          $ref: '#/components/schemas/parentCallId'
        enqueuedTime:
          $ref: '#/components/schemas/enqueuedTime'
        startTime:
          $ref: '#/components/schemas/startTime'
        answerTime:
          $ref: '#/components/schemas/answerTime'
        endTime:
          $ref: '#/components/schemas/endTime'
        tag:
          $ref: '#/components/schemas/tag'
        transferCallerId:
          $ref: '#/components/schemas/transferCallerId'
        transferTo:
          $ref: '#/components/schemas/transferTo'
        cause:
          $ref: '#/components/schemas/cause'
        errorMessage:
          $ref: '#/components/schemas/errorMessage'
        errorId:
          $ref: '#/components/schemas/errorId'
    eventType:
      type: string
      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
    eventTime:
      type: string
      format: date-time
      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'
    accountId:
      type: string
      description: The user account associated with the call.
      example: '9900000'
    applicationId:
      type: string
      description: The id of the application associated with the call.
      example: 04e88489-df02-4e34-a0ee-27a91849555f
    to:
      type: string
      description: >-
        The phone number that received the call, in E.164 format (e.g.
        +15555555555).
      example: '+15555555555'
    from:
      type: string
      description: >-
        The provided identifier of the caller. Must be a phone number in E.164
        format (e.g. +15555555555).
      example: '+15555555555'
    conferenceId:
      type: string
      description: The unique, Bandwidth-generated ID of the conference that was recorded
      example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
    name:
      type: string
      description: The user-specified name of the conference that was recorded
      example: my-conference-name
    recordingId:
      type: string
      description: The unique ID of this recording
      example: r-fbe05094-9fd2afe9-bf5b-4c68-820a-41a01c1c5833
    duration:
      type: string
      description: The duration of the recording in ISO-8601 format
      example: PT13.67S
    channels:
      type: integer
      format: int32
      description: >-
        Always `1` for conference recordings; multi-channel recordings are not
        supported on conferences.
      example: 1
    digit:
      type: string
      description: The digit collected in the call.
      example: '2'
    digits:
      type: string
      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'
    terminatingDigit:
      type: string
      description: >-
        (optional) The digit the user pressed to end the gather. Empty string
        value if no terminating digit was pressed.
      example: '#'
    startTime:
      type: string
      format: date-time
      description: Time the call was started, in ISO 8601 format.
      example: '2022-06-17T22:19:40.375Z'
    enqueuedTime:
      type: string
      format: date-time
      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:00.000Z'
      nullable: true
    answerTime:
      type: string
      format: date-time
      description: Time the call was answered, in ISO 8601 format.
      example: '2022-06-17T22:20:00.000Z'
      nullable: true
    endTime:
      type: string
      format: date-time
      description: The time that the recording ended in ISO-8601 format
      example: '2022-06-17T22:20:00.000Z'
    status:
      type: string
      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
    transferCallerId:
      type: string
      description: >-
        The phone number used as the from field of the B-leg call, in E.164
        format (e.g. +15555555555).
      example: '+15555555555'
    transferTo:
      type: string
      description: >-
        The phone number used as the to field of the B-leg call, in E.164 format
        (e.g. +15555555555).
      example: '+15555555555'
    mediaUrl:
      nullable: true
      type: string
      format: uri
      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
    callId:
      type: string
      description: The call id associated with the event.
      example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
    recordingName:
      type: string
      description: A name to identify this recording.
      example: my-recording-name
    callUrl:
      type: string
      format: uri
      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
    parentCallId:
      type: string
      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
    tag:
      type: string
      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
    cause:
      type: string
      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
    errorMessage:
      type: string
      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
    errorId:
      type: string
      description: Bandwidth's internal id that references the error event.
      example: 4642074b-7b58-478b-96e4-3a60955c6765
      nullable: true
    machineDetectionResult:
      type: object
      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
      properties:
        value:
          type: string
          description: >-
            Possible values are answering-machine, human, silence, timeout, or
            error.
          example: answering-machine
        duration:
          type: string
          description: The amount of time it took to determine the result.
          example: PT4.9891287S
      nullable: true
    diversion:
      type: object
      properties:
        reason:
          type: string
          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
        privacy:
          type: string
          description: off or full
          example: 'off'
        screen:
          type: string
          description: >-
            No if the number was provided by the user, yes if the number was
            provided by the network
          example: 'no'
        counter:
          type: string
          description: The number of diversions that have occurred
          example: '2'
        limit:
          type: string
          description: The maximum number of diversions allowed for this session
          example: '3'
        unknown:
          type: string
          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
        origTo:
          type: string
          description: >-
            Always present. Indicates the last telephone number that the call
            was diverted from.
          example: '+15558884444'
    transcription:
      type: object
      properties:
        text:
          type: string
          description: The transcribed text
          example: Nice talking to you, friend!
        confidence:
          type: number
          format: double
          description: >-
            The confidence on the recognized content, ranging from `0.0` to
            `1.0` with `1.0` being the highest confidence.
          example: 0.9
    stirShaken:
      type: object
      properties:
        verstat:
          type: string
          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
        attestationIndicator:
          type: string
          description: >-
            (optional) The attestation level verified by Bandwidth. Possible
            values are A (full), B (partial) or C (gateway).
          example: A
        originatingId:
          type: string
          description: (optional) A unique origination identifier.
          example: 99759086-1335-11ed-9bcf-5f7d464e91af
    uui:
      type: string
      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
  parameters:
    accountId:
      name: accountId
      in: path
      required: true
      schema:
        type: string
      description: Your Bandwidth Account ID.
      example: '9900000'
    callId:
      name: callId
      in: path
      required: true
      schema:
        type: string
      description: Programmable Voice API Call ID.
      example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
    recordingId:
      name: recordingId
      in: path
      required: true
      schema:
        type: string
      description: Programmable Voice API Recording ID.
      example: r-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
    conferenceId:
      name: conferenceId
      in: path
      required: true
      schema:
        type: string
      description: Programmable Voice API Conference ID.
      example: conf-fe23a767-a75a5b77-20c5-4cca-b581-cbbf0776eca9
    memberId:
      name: memberId
      in: path
      required: true
      schema:
        type: string
      description: Programmable Voice API Conference Member ID.
      example: c-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
    transcriptionId:
      name: transcriptionId
      in: path
      required: true
      schema:
        type: string
      description: Programmable Voice API Transcription ID.
      example: t-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
    to:
      name: to
      in: query
      required: false
      schema:
        type: string
      description: Filter results by the `to` field.
      example: '%2b19195551234'
    from:
      name: from
      in: query
      required: false
      schema:
        type: string
      description: Filter results by the `from` field.
      example: '%2b19195554321'
    name:
      name: name
      in: query
      required: false
      schema:
        type: string
      description: Filter results by the `name` field.
      example: my-custom-name
    minCreatedTime:
      name: minCreatedTime
      in: query
      required: false
      schema:
        type: string
      description: >-
        Filter results to conferences which have a `createdTime` after or at
        `minCreatedTime` (in ISO8601 format).
      example: '2022-06-21T19:13:21Z'
    maxCreatedTime:
      name: maxCreatedTime
      in: query
      required: false
      schema:
        type: string
      description: >-
        Filter results to conferences which have a `createdTime` before or at
        `maxCreatedTime` (in ISO8601 format).
      example: '2022-06-21T19:13:21Z'
    minStartTime:
      name: minStartTime
      in: query
      required: false
      schema:
        type: string
      description: >-
        Filter results to recordings which have a `startTime` after or including
        `minStartTime` (in ISO8601 format).
      example: '2022-06-21T19:13:21Z'
    maxStartTime:
      name: maxStartTime
      in: query
      required: false
      schema:
        type: string
      description: >-
        Filter results to recordings which have a `startTime` before
        `maxStartTime` (in ISO8601 format).
      example: '2022-06-21T19:13:21Z'
    pageSize:
      name: pageSize
      in: query
      required: false
      schema:
        type: integer
        format: int32
        minimum: 1
        maximum: 1000
        default: 1000
      description: Specifies the max number of conferences that will be returned.
      example: 500
    minStartTimeCalls:
      name: minStartTime
      in: query
      required: false
      schema:
        type: string
      description: >-
        Filter results to calls which have a `startTime` after or including
        `minStartTime` (in ISO8601 format).
      example: '2022-06-21T19:13:21Z'
    maxStartTimeCalls:
      name: maxStartTime
      in: query
      required: false
      schema:
        type: string
      description: >-
        Filter results to calls which have a `startTime` before or including
        `maxStartTime` (in ISO8601 format).
      example: '2022-06-21T19:13:21Z'
    pageSizeCalls:
      name: pageSize
      in: query
      required: false
      schema:
        type: integer
        format: int32
        minimum: 1
        maximum: 10000
        default: 1000
      description: Specifies the max number of calls that will be returned.
      example: 500
    pageToken:
      name: pageToken
      in: query
      required: false
      schema:
        type: string
      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
    disconnectCause:
      name: disconnectCause
      in: query
      required: false
      schema:
        type: string
      description: Filter results to calls with specified call Disconnect Cause.
      example: hangup
  requestBodies:
    createCallRequest:
      description: JSON object containing information to create an outbound call
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/createCall'
    updateCallRequest:
      description: >-
        JSON object containing information to redirect an existing call to a new
        BXML document
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/updateCall'
    updateCallBxmlRequest:
      required: true
      content:
        application/xml:
          schema:
            type: string
            description: A valid BXML document to replace the call's current BXML.
          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>
    updateCallRecordingRequest:
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/updateCallRecording'
    transcribeRecordingRequest:
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/transcribeRecording'
    updateConferenceRequest:
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/updateConference'
    updateConferenceBxmlRequest:
      required: true
      content:
        application/xml:
          schema:
            type: string
            description: A valid BXML document to replace the call's current BXML.
          examples:
            stopRecording:
              summary: Stop Recording
              value: |-
                <?xml version="1.0" encoding="UTF-8"?>
                <Bxml>
                    <StopRecording/>
                </Bxml>
    updateConferenceMemberRequest:
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/updateConferenceMember'
  responses:
    createCallResponse:
      description: Created
      headers:
        Location:
          description: The URL for further interactions with this call
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/createCallResponse'
          examples:
            createCall Response:
              $ref: '#/components/examples/createCallResponseExample'
    getCallStateResponse:
      description: OK
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/callState'
    updateCallResponse:
      description: OK
    listCallsResponse:
      description: OK
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/callState'
    getStatisticsResponse:
      description: OK
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/accountStatistics'
    updateRecordingResponse:
      description: OK
    listCallRecordingsResponse:
      description: OK
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/callRecordingMetadata'
    getCallRecordingResponse:
      description: OK
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/callRecordingMetadata'
    downloadRecordingMediaResponse:
      description: OK
      content:
        audio/vnd.wave:
          schema:
            type: string
            format: binary
        audio/mpeg:
          schema:
            type: string
            format: binary
    getRecordingTranscriptionResponse:
      description: OK
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/recordingTranscriptions'
    listTranscriptionsResponse:
      description: OK
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/callTranscriptionMetadataList'
    getCallTranscriptionResponse:
      description: OK
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/callTranscriptionResponse'
    deleteCallTranscriptionResponse:
      description: No Content
    listConferencesResponse:
      description: OK
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/conference'
          examples:
            listConferences Response:
              $ref: '#/components/examples/listConferencesResponseExample'
    getConferenceResponse:
      description: OK
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/conference'
    getConferenceMemberResponse:
      description: OK
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/conferenceMember'
    listConferenceRecordingsResponse:
      description: OK
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/conferenceRecordingMetadata'
    getConferenceRecordingResponse:
      description: OK
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/conferenceRecordingMetadata'
    voiceBadRequestError:
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/voiceApiError'
          examples:
            badRequestErrorExample:
              $ref: '#/components/examples/voiceBadRequestErrorExample'
    voiceUnauthorizedError:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/voiceApiError'
          examples:
            unauthorizedErrorExample:
              $ref: '#/components/examples/voiceUnauthorizedErrorExample'
    voiceForbiddenError:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/voiceApiError'
          examples:
            forbiddenErrorExample:
              $ref: '#/components/examples/voiceForbiddenErrorExample'
    voiceNotFoundError:
      description: Not Found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/voiceApiError'
          examples:
            notFoundErrorExample:
              $ref: '#/components/examples/voiceNotFoundErrorExample'
    voiceNotAllowedError:
      description: Method Not Allowed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/voiceApiError'
          examples:
            notAllowedErrorExample:
              $ref: '#/components/examples/voiceNotAllowedErrorExample'
    voiceConflictError:
      description: Conflict
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/voiceApiError'
          examples:
            conflictErrorExample:
              $ref: '#/components/examples/voiceConflictErrorExample'
    voiceUnsupportedMediaTypeError:
      description: Unsupported Media Type
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/voiceApiError'
          examples:
            tooManyRequestsErrorExample:
              $ref: '#/components/examples/voiceUnsupportedMediaTypeErrorExample'
    voiceTooManyRequestsError:
      description: Too Many Requests
      headers:
        Retry-After:
          description: When you should try your request again.
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/voiceApiError'
          examples:
            tooManyRequestsErrorExample:
              $ref: '#/components/examples/voiceTooManyRequestsErrorExample'
    voiceInternalServerError:
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/voiceApiError'
          examples:
            internalServerErrorExample:
              $ref: '#/components/examples/voiceInternalServerErrorExample'
  examples:
    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.'
  securitySchemes:
    Basic:
      type: http
      scheme: basic
      description: >-
        Basic authentication is a simple authentication scheme built into the
        HTTP protocol. To use it, send your HTTP requests with an
        `Authorization` header that contains the word `Basic` followed by a
        space and a Base64-encoded string `username:password`.


        - Example: `Authorization: Basic ZGVtbZpwQDU1dzByZA==`
    OAuth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://api.bandwidth.com/api/v1/oauth2/token
          scopes: {}
    Bearer:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Bearer authentication (also called token authentication) is an HTTP
        authentication scheme that involves security tokens called bearer
        tokens. The name “Bearer authentication” can be understood as “give
        access to the bearer of this token.” The client must send this token in
        the `Authorization` header when making requests to protected resources.


        - Example: `Authorization: Bearer <token>`


        Where `<token>` should be replaced with the token string without angle
        brackets.


        For more information, see the following guide:
        [Credentials](https://dev.bandwidth.com/docs/account/credentials/management)
security:
  - Basic: []
  - OAuth2: []
  - Bearer: []
tags:
  - name: Calls
  - name: Conferences
  - name: Recordings
  - name: Statistics
  - name: Transcriptions
