// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
    /// Constructs a fluent builder for the [`DescribeVoices`](crate::operation::describe_voices::builders::DescribeVoicesFluentBuilder) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`engine(Engine)`](crate::operation::describe_voices::builders::DescribeVoicesFluentBuilder::engine) / [`set_engine(Option<Engine>)`](crate::operation::describe_voices::builders::DescribeVoicesFluentBuilder::set_engine):<br>required: **false**<br><p>Specifies the engine (<code>standard</code>, <code>neural</code>, <code>long-form</code> or <code>generative</code>) used by Amazon Polly when processing input text for speech synthesis.</p><br>
    ///   - [`language_code(LanguageCode)`](crate::operation::describe_voices::builders::DescribeVoicesFluentBuilder::language_code) / [`set_language_code(Option<LanguageCode>)`](crate::operation::describe_voices::builders::DescribeVoicesFluentBuilder::set_language_code):<br>required: **false**<br><p>The language identification tag (ISO 639 code for the language name-ISO 3166 country code) for filtering the list of voices returned. If you don't specify this optional parameter, all available voices are returned.</p><br>
    ///   - [`include_additional_language_codes(bool)`](crate::operation::describe_voices::builders::DescribeVoicesFluentBuilder::include_additional_language_codes) / [`set_include_additional_language_codes(Option<bool>)`](crate::operation::describe_voices::builders::DescribeVoicesFluentBuilder::set_include_additional_language_codes):<br>required: **false**<br><p>Boolean value indicating whether to return any bilingual voices that use the specified language as an additional language. For instance, if you request all languages that use US English (es-US), and there is an Italian voice that speaks both Italian (it-IT) and US English, that voice will be included if you specify <code>yes</code> but not if you specify <code>no</code>.</p><br>
    ///   - [`next_token(impl Into<String>)`](crate::operation::describe_voices::builders::DescribeVoicesFluentBuilder::next_token) / [`set_next_token(Option<String>)`](crate::operation::describe_voices::builders::DescribeVoicesFluentBuilder::set_next_token):<br>required: **false**<br><p>An opaque pagination token returned from the previous <code>DescribeVoices</code> operation. If present, this indicates where to continue the listing.</p><br>
    /// - On success, responds with [`DescribeVoicesOutput`](crate::operation::describe_voices::DescribeVoicesOutput) with field(s):
    ///   - [`voices(Option<Vec::<Voice>>)`](crate::operation::describe_voices::DescribeVoicesOutput::voices): <p>A list of voices with their properties.</p>
    ///   - [`next_token(Option<String>)`](crate::operation::describe_voices::DescribeVoicesOutput::next_token): <p>The pagination token to use in the next request to continue the listing of voices. <code>NextToken</code> is returned only if the response is truncated.</p>
    /// - On failure, responds with [`SdkError<DescribeVoicesError>`](crate::operation::describe_voices::DescribeVoicesError)
    pub fn describe_voices(&self) -> crate::operation::describe_voices::builders::DescribeVoicesFluentBuilder {
        crate::operation::describe_voices::builders::DescribeVoicesFluentBuilder::new(self.handle.clone())
    }
}
