fn describe_voices(
        &self,
        input: DescribeVoicesInput,
    ) -> RusotoFuture<DescribeVoicesOutput, DescribeVoicesError> {
        let request_uri = "/v1/voices";

        let mut request = SignedRequest::new("GET", "polly", &self.region, &request_uri);
        request.set_content_type("application/x-amz-json-1.1".to_owned());

        let mut params = Params::new();
        if let Some(ref x) = input.language_code {
            params.put("LanguageCode", x);
        }
        if let Some(ref x) = input.next_token {
            params.put("NextToken", x);
        }
        request.set_params(params);

        self.client.sign_and_dispatch(request, |response| {
            if response.status.as_u16() == 200 {
                Box::new(response.buffer().from_err().map(|response| {
                    let mut body = response.body;

                    if body == b"null" || body.is_empty() {
                        body = b"{}".to_vec();
                    }

                    debug!("Response body: {:?}", body);
                    debug!("Response status: {}", response.status);
                    let result = serde_json::from_slice::<DescribeVoicesOutput>(&body).unwrap();

                    result
                }))
            } else {
                Box::new(
                    response
                        .buffer()
                        .from_err()
                        .and_then(|response| Err(DescribeVoicesError::from_response(response))),
                )
            }
        })
    }
/// <p>Returns the list of voices that are available for use when requesting speech synthesis. Each voice speaks a specified language, is either male or female, and is identified by an ID, which is the ASCII version of the voice name. </p> <p>When synthesizing speech ( <code>SynthesizeSpeech</code> ), you provide the voice ID for the voice you want from the list of voices returned by <code>DescribeVoices</code>.</p> <p>For example, you want your news reader application to read news in a specific language, but giving a user the option to choose the voice. Using the <code>DescribeVoices</code> operation you can provide the user with a list of available voices to select from.</p> <p> You can optionally specify a language code to filter the available voices. For example, if you specify <code>en-US</code>, the operation returns a list of all available US English voices. </p> <p>This operation requires permissions to perform the <code>polly:DescribeVoices</code> action.</p>
Returns the list of voices that are available for use when requesting speech synthesis. Each voice speaks a specified language, is either male or female, and is identified by an ID, which is the ASCII version of the voice name.  When synthesizing speech ( SynthesizeSpeech ), you provide the voice ID for the voice you want from the list of voices returned by DescribeVoices. For example, you want your news reader application to read news in a specific language, but giving a user the option to choose the voice. Using the DescribeVoices operation you can provide the user with a list of available voices to select from.  You can optionally specify a language code to filter the available voices. For example, if you specify en-US, the operation returns a list of all available US English voices.  This operation requires permissions to perform the polly:DescribeVoices action.
Returns the list of voices that are available for use when requesting speech synthesis . Each voice speaks a specified language is either male or female and is identified by an ID which is the ASCII version of the voice name . When synthesizing speech ( SynthesizeSpeech ) you provide the voice ID for the voice you want from the list of voices returned by DescribeVoices . For example you want your news reader application to read news in a specific language but giving a user the option to choose the voice . Using the DescribeVoices operation you can provide the user with a list of available voices to select from . You can optionally specify a language code to filter the available voices . For example if you specify en - US the operation returns a list of all available US English voices . This operation requires permissions to perform the polly : DescribeVoices action .
fn describe_voices(
        &self,
        input: DescribeVoicesInput,
    ) -> RusotoFuture<DescribeVoicesOutput, DescribeVoicesError> {
        let request_uri = "/v1/voices";
        let mut request = SignedRequest::new("GET", "polly", &self.region, &request_uri);
        request.set_content_type("application/x-amz-json-1.1".to_owned());
        let mut params = Params::new();
        if let Some(ref x) = input.language_code {
            params.put("LanguageCode", x);
        }
        if let Some(ref x) = input.next_token {
            params.put("NextToken", x);
        }
        request.set_params(params);
        self.client.sign_and_dispatch(request, |response| {
            if response.status.as_u16() == 200 {
                Box::new(response.buffer().from_err().map(|response| {
                    let mut body = response.body;
                    if body == b"null" || body.is_empty() {
                        body = b"{}".to_vec();
                    }
                    debug!("Response body: {:?}", body);
                    debug!("Response status: {}", response.status);
                    let result = serde_json::from_slice::<DescribeVoicesOutput>(&body).unwrap();
                    result
                }))
            } else {
                Box::new(
                    response
                        .buffer()
                        .from_err()
                        .and_then(|response| Err(DescribeVoicesError::from_response(response))),
                )
            }
        })
    }
fn describe_voices ( & self , input : DescribeVoicesInput , ) -> RusotoFuture < DescribeVoicesOutput , DescribeVoicesError > { let request_uri = " " ; let mut request = SignedRequest :: new ( " " , " " , & self . region , & request_uri ) ; request . set_content_type ( " " . to_owned ( ) ) ; let mut params = Params :: new ( ) ; if let Some ( ref x ) = input . language_code { params . put ( " " , x ) ; } if let Some ( ref x ) = input . next_token { params . put ( " " , x ) ; } request . set_params ( params ) ; self . client . sign_and_dispatch ( request , | response | { if response . status . as_u16 ( ) == 200 { Box :: new ( response . buffer ( ) . from_err ( ) . map ( | response | { let mut body = response . body ; if body == b" " || body . is_empty ( ) { body = b" " . to_vec ( ) ; } debug ! ( " " body ) ; debug ! ( " " response status ) ; let result = serde_json :: from_slice :: < DescribeVoicesOutput > ( & body ) . unwrap ( ) ; result } ) ) } else { Box :: new ( response . buffer ( ) . from_err ( ) . and_then ( | response | Err ( DescribeVoicesError :: from_response ( response ) ) ) , ) } } ) }
<p>Returns the list of voices that are available for use when requesting speech synthesis.
<p > Returns the list of voices that are available for use when requesting speech synthesis .
&self
input
DescribeVoicesInput
&self
input
DescribeVoicesInput