aws-sdk-glue 0.24.0

AWS SDK for AWS Glue
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
#[derive(Debug)]
pub(crate) struct Handle {
    pub(crate) client: aws_smithy_client::Client<
        aws_smithy_client::erase::DynConnector,
        aws_smithy_client::erase::DynMiddleware<aws_smithy_client::erase::DynConnector>,
    >,
    pub(crate) conf: crate::Config,
}

/// Client for AWS Glue
///
/// Client for invoking operations on AWS Glue. Each operation on AWS Glue is a method on this
/// this struct. `.send()` MUST be invoked on the generated operations to dispatch the request to the service.
///
/// # Examples
/// **Constructing a client and invoking an operation**
/// ```rust,no_run
/// # async fn docs() {
///     // create a shared configuration. This can be used & shared between multiple service clients.
///     let shared_config = aws_config::load_from_env().await;
///     let client = aws_sdk_glue::Client::new(&shared_config);
///     // invoke an operation
///     /* let rsp = client
///         .<operation_name>().
///         .<param>("some value")
///         .send().await; */
/// # }
/// ```
/// **Constructing a client with custom configuration**
/// ```rust,no_run
/// use aws_config::retry::RetryConfig;
/// # async fn docs() {
/// let shared_config = aws_config::load_from_env().await;
/// let config = aws_sdk_glue::config::Builder::from(&shared_config)
///   .retry_config(RetryConfig::disabled())
///   .build();
/// let client = aws_sdk_glue::Client::from_conf(config);
/// # }
#[derive(std::fmt::Debug)]
pub struct Client {
    handle: std::sync::Arc<Handle>,
}

impl std::clone::Clone for Client {
    fn clone(&self) -> Self {
        Self {
            handle: self.handle.clone(),
        }
    }
}

#[doc(inline)]
pub use aws_smithy_client::Builder;

impl
    From<
        aws_smithy_client::Client<
            aws_smithy_client::erase::DynConnector,
            aws_smithy_client::erase::DynMiddleware<aws_smithy_client::erase::DynConnector>,
        >,
    > for Client
{
    fn from(
        client: aws_smithy_client::Client<
            aws_smithy_client::erase::DynConnector,
            aws_smithy_client::erase::DynMiddleware<aws_smithy_client::erase::DynConnector>,
        >,
    ) -> Self {
        Self::with_config(client, crate::Config::builder().build())
    }
}

impl Client {
    /// Creates a client with the given service configuration.
    pub fn with_config(
        client: aws_smithy_client::Client<
            aws_smithy_client::erase::DynConnector,
            aws_smithy_client::erase::DynMiddleware<aws_smithy_client::erase::DynConnector>,
        >,
        conf: crate::Config,
    ) -> Self {
        Self {
            handle: std::sync::Arc::new(Handle { client, conf }),
        }
    }

    /// Returns the client's configuration.
    pub fn conf(&self) -> &crate::Config {
        &self.handle.conf
    }
}
impl Client {
    /// Constructs a fluent builder for the [`BatchCreatePartition`](crate::client::fluent_builders::BatchCreatePartition) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::BatchCreatePartition::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::BatchCreatePartition::set_catalog_id): <p>The ID of the catalog in which the partition is to be created. Currently, this should be the Amazon Web Services account ID.</p>
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::BatchCreatePartition::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::BatchCreatePartition::set_database_name): <p>The name of the metadata database in which the partition is to be created.</p>
    ///   - [`table_name(impl Into<String>)`](crate::client::fluent_builders::BatchCreatePartition::table_name) / [`set_table_name(Option<String>)`](crate::client::fluent_builders::BatchCreatePartition::set_table_name): <p>The name of the metadata table in which the partition is to be created.</p>
    ///   - [`partition_input_list(Vec<PartitionInput>)`](crate::client::fluent_builders::BatchCreatePartition::partition_input_list) / [`set_partition_input_list(Option<Vec<PartitionInput>>)`](crate::client::fluent_builders::BatchCreatePartition::set_partition_input_list): <p>A list of <code>PartitionInput</code> structures that define the partitions to be created.</p>
    /// - On success, responds with [`BatchCreatePartitionOutput`](crate::output::BatchCreatePartitionOutput) with field(s):
    ///   - [`errors(Option<Vec<PartitionError>>)`](crate::output::BatchCreatePartitionOutput::errors): <p>The errors encountered when trying to create the requested partitions.</p>
    /// - On failure, responds with [`SdkError<BatchCreatePartitionError>`](crate::error::BatchCreatePartitionError)
    pub fn batch_create_partition(&self) -> fluent_builders::BatchCreatePartition {
        fluent_builders::BatchCreatePartition::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`BatchDeleteConnection`](crate::client::fluent_builders::BatchDeleteConnection) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::BatchDeleteConnection::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::BatchDeleteConnection::set_catalog_id): <p>The ID of the Data Catalog in which the connections reside. If none is provided, the Amazon Web Services account ID is used by default.</p>
    ///   - [`connection_name_list(Vec<String>)`](crate::client::fluent_builders::BatchDeleteConnection::connection_name_list) / [`set_connection_name_list(Option<Vec<String>>)`](crate::client::fluent_builders::BatchDeleteConnection::set_connection_name_list): <p>A list of names of the connections to delete.</p>
    /// - On success, responds with [`BatchDeleteConnectionOutput`](crate::output::BatchDeleteConnectionOutput) with field(s):
    ///   - [`succeeded(Option<Vec<String>>)`](crate::output::BatchDeleteConnectionOutput::succeeded): <p>A list of names of the connection definitions that were successfully deleted.</p>
    ///   - [`errors(Option<HashMap<String, ErrorDetail>>)`](crate::output::BatchDeleteConnectionOutput::errors): <p>A map of the names of connections that were not successfully deleted to error details.</p>
    /// - On failure, responds with [`SdkError<BatchDeleteConnectionError>`](crate::error::BatchDeleteConnectionError)
    pub fn batch_delete_connection(&self) -> fluent_builders::BatchDeleteConnection {
        fluent_builders::BatchDeleteConnection::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`BatchDeletePartition`](crate::client::fluent_builders::BatchDeletePartition) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::BatchDeletePartition::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::BatchDeletePartition::set_catalog_id): <p>The ID of the Data Catalog where the partition to be deleted resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::BatchDeletePartition::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::BatchDeletePartition::set_database_name): <p>The name of the catalog database in which the table in question resides.</p>
    ///   - [`table_name(impl Into<String>)`](crate::client::fluent_builders::BatchDeletePartition::table_name) / [`set_table_name(Option<String>)`](crate::client::fluent_builders::BatchDeletePartition::set_table_name): <p>The name of the table that contains the partitions to be deleted.</p>
    ///   - [`partitions_to_delete(Vec<PartitionValueList>)`](crate::client::fluent_builders::BatchDeletePartition::partitions_to_delete) / [`set_partitions_to_delete(Option<Vec<PartitionValueList>>)`](crate::client::fluent_builders::BatchDeletePartition::set_partitions_to_delete): <p>A list of <code>PartitionInput</code> structures that define the partitions to be deleted.</p>
    /// - On success, responds with [`BatchDeletePartitionOutput`](crate::output::BatchDeletePartitionOutput) with field(s):
    ///   - [`errors(Option<Vec<PartitionError>>)`](crate::output::BatchDeletePartitionOutput::errors): <p>The errors encountered when trying to delete the requested partitions.</p>
    /// - On failure, responds with [`SdkError<BatchDeletePartitionError>`](crate::error::BatchDeletePartitionError)
    pub fn batch_delete_partition(&self) -> fluent_builders::BatchDeletePartition {
        fluent_builders::BatchDeletePartition::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`BatchDeleteTable`](crate::client::fluent_builders::BatchDeleteTable) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::BatchDeleteTable::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::BatchDeleteTable::set_catalog_id): <p>The ID of the Data Catalog where the table resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::BatchDeleteTable::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::BatchDeleteTable::set_database_name): <p>The name of the catalog database in which the tables to delete reside. For Hive compatibility, this name is entirely lowercase.</p>
    ///   - [`tables_to_delete(Vec<String>)`](crate::client::fluent_builders::BatchDeleteTable::tables_to_delete) / [`set_tables_to_delete(Option<Vec<String>>)`](crate::client::fluent_builders::BatchDeleteTable::set_tables_to_delete): <p>A list of the table to delete.</p>
    ///   - [`transaction_id(impl Into<String>)`](crate::client::fluent_builders::BatchDeleteTable::transaction_id) / [`set_transaction_id(Option<String>)`](crate::client::fluent_builders::BatchDeleteTable::set_transaction_id): <p>The transaction ID at which to delete the table contents.</p>
    /// - On success, responds with [`BatchDeleteTableOutput`](crate::output::BatchDeleteTableOutput) with field(s):
    ///   - [`errors(Option<Vec<TableError>>)`](crate::output::BatchDeleteTableOutput::errors): <p>A list of errors encountered in attempting to delete the specified tables.</p>
    /// - On failure, responds with [`SdkError<BatchDeleteTableError>`](crate::error::BatchDeleteTableError)
    pub fn batch_delete_table(&self) -> fluent_builders::BatchDeleteTable {
        fluent_builders::BatchDeleteTable::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`BatchDeleteTableVersion`](crate::client::fluent_builders::BatchDeleteTableVersion) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::BatchDeleteTableVersion::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::BatchDeleteTableVersion::set_catalog_id): <p>The ID of the Data Catalog where the tables reside. If none is provided, the Amazon Web Services account ID is used by default.</p>
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::BatchDeleteTableVersion::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::BatchDeleteTableVersion::set_database_name): <p>The database in the catalog in which the table resides. For Hive compatibility, this name is entirely lowercase.</p>
    ///   - [`table_name(impl Into<String>)`](crate::client::fluent_builders::BatchDeleteTableVersion::table_name) / [`set_table_name(Option<String>)`](crate::client::fluent_builders::BatchDeleteTableVersion::set_table_name): <p>The name of the table. For Hive compatibility, this name is entirely lowercase.</p>
    ///   - [`version_ids(Vec<String>)`](crate::client::fluent_builders::BatchDeleteTableVersion::version_ids) / [`set_version_ids(Option<Vec<String>>)`](crate::client::fluent_builders::BatchDeleteTableVersion::set_version_ids): <p>A list of the IDs of versions to be deleted. A <code>VersionId</code> is a string representation of an integer. Each version is incremented by 1.</p>
    /// - On success, responds with [`BatchDeleteTableVersionOutput`](crate::output::BatchDeleteTableVersionOutput) with field(s):
    ///   - [`errors(Option<Vec<TableVersionError>>)`](crate::output::BatchDeleteTableVersionOutput::errors): <p>A list of errors encountered while trying to delete the specified table versions.</p>
    /// - On failure, responds with [`SdkError<BatchDeleteTableVersionError>`](crate::error::BatchDeleteTableVersionError)
    pub fn batch_delete_table_version(&self) -> fluent_builders::BatchDeleteTableVersion {
        fluent_builders::BatchDeleteTableVersion::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`BatchGetBlueprints`](crate::client::fluent_builders::BatchGetBlueprints) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`names(Vec<String>)`](crate::client::fluent_builders::BatchGetBlueprints::names) / [`set_names(Option<Vec<String>>)`](crate::client::fluent_builders::BatchGetBlueprints::set_names): <p>A list of blueprint names.</p>
    ///   - [`include_blueprint(bool)`](crate::client::fluent_builders::BatchGetBlueprints::include_blueprint) / [`set_include_blueprint(Option<bool>)`](crate::client::fluent_builders::BatchGetBlueprints::set_include_blueprint): <p>Specifies whether or not to include the blueprint in the response.</p>
    ///   - [`include_parameter_spec(bool)`](crate::client::fluent_builders::BatchGetBlueprints::include_parameter_spec) / [`set_include_parameter_spec(Option<bool>)`](crate::client::fluent_builders::BatchGetBlueprints::set_include_parameter_spec): <p>Specifies whether or not to include the parameters, as a JSON string, for the blueprint in the response.</p>
    /// - On success, responds with [`BatchGetBlueprintsOutput`](crate::output::BatchGetBlueprintsOutput) with field(s):
    ///   - [`blueprints(Option<Vec<Blueprint>>)`](crate::output::BatchGetBlueprintsOutput::blueprints): <p>Returns a list of blueprint as a <code>Blueprints</code> object.</p>
    ///   - [`missing_blueprints(Option<Vec<String>>)`](crate::output::BatchGetBlueprintsOutput::missing_blueprints): <p>Returns a list of <code>BlueprintNames</code> that were not found.</p>
    /// - On failure, responds with [`SdkError<BatchGetBlueprintsError>`](crate::error::BatchGetBlueprintsError)
    pub fn batch_get_blueprints(&self) -> fluent_builders::BatchGetBlueprints {
        fluent_builders::BatchGetBlueprints::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`BatchGetCrawlers`](crate::client::fluent_builders::BatchGetCrawlers) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`crawler_names(Vec<String>)`](crate::client::fluent_builders::BatchGetCrawlers::crawler_names) / [`set_crawler_names(Option<Vec<String>>)`](crate::client::fluent_builders::BatchGetCrawlers::set_crawler_names): <p>A list of crawler names, which might be the names returned from the <code>ListCrawlers</code> operation.</p>
    /// - On success, responds with [`BatchGetCrawlersOutput`](crate::output::BatchGetCrawlersOutput) with field(s):
    ///   - [`crawlers(Option<Vec<Crawler>>)`](crate::output::BatchGetCrawlersOutput::crawlers): <p>A list of crawler definitions.</p>
    ///   - [`crawlers_not_found(Option<Vec<String>>)`](crate::output::BatchGetCrawlersOutput::crawlers_not_found): <p>A list of names of crawlers that were not found.</p>
    /// - On failure, responds with [`SdkError<BatchGetCrawlersError>`](crate::error::BatchGetCrawlersError)
    pub fn batch_get_crawlers(&self) -> fluent_builders::BatchGetCrawlers {
        fluent_builders::BatchGetCrawlers::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`BatchGetCustomEntityTypes`](crate::client::fluent_builders::BatchGetCustomEntityTypes) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`names(Vec<String>)`](crate::client::fluent_builders::BatchGetCustomEntityTypes::names) / [`set_names(Option<Vec<String>>)`](crate::client::fluent_builders::BatchGetCustomEntityTypes::set_names): <p>A list of names of the custom patterns that you want to retrieve.</p>
    /// - On success, responds with [`BatchGetCustomEntityTypesOutput`](crate::output::BatchGetCustomEntityTypesOutput) with field(s):
    ///   - [`custom_entity_types(Option<Vec<CustomEntityType>>)`](crate::output::BatchGetCustomEntityTypesOutput::custom_entity_types): <p>A list of <code>CustomEntityType</code> objects representing the custom patterns that have been created.</p>
    ///   - [`custom_entity_types_not_found(Option<Vec<String>>)`](crate::output::BatchGetCustomEntityTypesOutput::custom_entity_types_not_found): <p>A list of the names of custom patterns that were not found.</p>
    /// - On failure, responds with [`SdkError<BatchGetCustomEntityTypesError>`](crate::error::BatchGetCustomEntityTypesError)
    pub fn batch_get_custom_entity_types(&self) -> fluent_builders::BatchGetCustomEntityTypes {
        fluent_builders::BatchGetCustomEntityTypes::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`BatchGetDataQualityResult`](crate::client::fluent_builders::BatchGetDataQualityResult) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`result_ids(Vec<String>)`](crate::client::fluent_builders::BatchGetDataQualityResult::result_ids) / [`set_result_ids(Option<Vec<String>>)`](crate::client::fluent_builders::BatchGetDataQualityResult::set_result_ids): <p>A list of unique result IDs for the data quality results.</p>
    /// - On success, responds with [`BatchGetDataQualityResultOutput`](crate::output::BatchGetDataQualityResultOutput) with field(s):
    ///   - [`results(Option<Vec<DataQualityResult>>)`](crate::output::BatchGetDataQualityResultOutput::results): <p>A list of <code>DataQualityResult</code> objects representing the data quality results.</p>
    ///   - [`results_not_found(Option<Vec<String>>)`](crate::output::BatchGetDataQualityResultOutput::results_not_found): <p>A list of result IDs for which results were not found.</p>
    /// - On failure, responds with [`SdkError<BatchGetDataQualityResultError>`](crate::error::BatchGetDataQualityResultError)
    pub fn batch_get_data_quality_result(&self) -> fluent_builders::BatchGetDataQualityResult {
        fluent_builders::BatchGetDataQualityResult::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`BatchGetDevEndpoints`](crate::client::fluent_builders::BatchGetDevEndpoints) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`dev_endpoint_names(Vec<String>)`](crate::client::fluent_builders::BatchGetDevEndpoints::dev_endpoint_names) / [`set_dev_endpoint_names(Option<Vec<String>>)`](crate::client::fluent_builders::BatchGetDevEndpoints::set_dev_endpoint_names): <p>The list of <code>DevEndpoint</code> names, which might be the names returned from the <code>ListDevEndpoint</code> operation.</p>
    /// - On success, responds with [`BatchGetDevEndpointsOutput`](crate::output::BatchGetDevEndpointsOutput) with field(s):
    ///   - [`dev_endpoints(Option<Vec<DevEndpoint>>)`](crate::output::BatchGetDevEndpointsOutput::dev_endpoints): <p>A list of <code>DevEndpoint</code> definitions.</p>
    ///   - [`dev_endpoints_not_found(Option<Vec<String>>)`](crate::output::BatchGetDevEndpointsOutput::dev_endpoints_not_found): <p>A list of <code>DevEndpoints</code> not found.</p>
    /// - On failure, responds with [`SdkError<BatchGetDevEndpointsError>`](crate::error::BatchGetDevEndpointsError)
    pub fn batch_get_dev_endpoints(&self) -> fluent_builders::BatchGetDevEndpoints {
        fluent_builders::BatchGetDevEndpoints::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`BatchGetJobs`](crate::client::fluent_builders::BatchGetJobs) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`job_names(Vec<String>)`](crate::client::fluent_builders::BatchGetJobs::job_names) / [`set_job_names(Option<Vec<String>>)`](crate::client::fluent_builders::BatchGetJobs::set_job_names): <p>A list of job names, which might be the names returned from the <code>ListJobs</code> operation.</p>
    /// - On success, responds with [`BatchGetJobsOutput`](crate::output::BatchGetJobsOutput) with field(s):
    ///   - [`jobs(Option<Vec<Job>>)`](crate::output::BatchGetJobsOutput::jobs): <p>A list of job definitions.</p>
    ///   - [`jobs_not_found(Option<Vec<String>>)`](crate::output::BatchGetJobsOutput::jobs_not_found): <p>A list of names of jobs not found.</p>
    /// - On failure, responds with [`SdkError<BatchGetJobsError>`](crate::error::BatchGetJobsError)
    pub fn batch_get_jobs(&self) -> fluent_builders::BatchGetJobs {
        fluent_builders::BatchGetJobs::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`BatchGetPartition`](crate::client::fluent_builders::BatchGetPartition) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::BatchGetPartition::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::BatchGetPartition::set_catalog_id): <p>The ID of the Data Catalog where the partitions in question reside. If none is supplied, the Amazon Web Services account ID is used by default.</p>
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::BatchGetPartition::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::BatchGetPartition::set_database_name): <p>The name of the catalog database where the partitions reside.</p>
    ///   - [`table_name(impl Into<String>)`](crate::client::fluent_builders::BatchGetPartition::table_name) / [`set_table_name(Option<String>)`](crate::client::fluent_builders::BatchGetPartition::set_table_name): <p>The name of the partitions' table.</p>
    ///   - [`partitions_to_get(Vec<PartitionValueList>)`](crate::client::fluent_builders::BatchGetPartition::partitions_to_get) / [`set_partitions_to_get(Option<Vec<PartitionValueList>>)`](crate::client::fluent_builders::BatchGetPartition::set_partitions_to_get): <p>A list of partition values identifying the partitions to retrieve.</p>
    /// - On success, responds with [`BatchGetPartitionOutput`](crate::output::BatchGetPartitionOutput) with field(s):
    ///   - [`partitions(Option<Vec<Partition>>)`](crate::output::BatchGetPartitionOutput::partitions): <p>A list of the requested partitions.</p>
    ///   - [`unprocessed_keys(Option<Vec<PartitionValueList>>)`](crate::output::BatchGetPartitionOutput::unprocessed_keys): <p>A list of the partition values in the request for which partitions were not returned.</p>
    /// - On failure, responds with [`SdkError<BatchGetPartitionError>`](crate::error::BatchGetPartitionError)
    pub fn batch_get_partition(&self) -> fluent_builders::BatchGetPartition {
        fluent_builders::BatchGetPartition::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`BatchGetTriggers`](crate::client::fluent_builders::BatchGetTriggers) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`trigger_names(Vec<String>)`](crate::client::fluent_builders::BatchGetTriggers::trigger_names) / [`set_trigger_names(Option<Vec<String>>)`](crate::client::fluent_builders::BatchGetTriggers::set_trigger_names): <p>A list of trigger names, which may be the names returned from the <code>ListTriggers</code> operation.</p>
    /// - On success, responds with [`BatchGetTriggersOutput`](crate::output::BatchGetTriggersOutput) with field(s):
    ///   - [`triggers(Option<Vec<Trigger>>)`](crate::output::BatchGetTriggersOutput::triggers): <p>A list of trigger definitions.</p>
    ///   - [`triggers_not_found(Option<Vec<String>>)`](crate::output::BatchGetTriggersOutput::triggers_not_found): <p>A list of names of triggers not found.</p>
    /// - On failure, responds with [`SdkError<BatchGetTriggersError>`](crate::error::BatchGetTriggersError)
    pub fn batch_get_triggers(&self) -> fluent_builders::BatchGetTriggers {
        fluent_builders::BatchGetTriggers::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`BatchGetWorkflows`](crate::client::fluent_builders::BatchGetWorkflows) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`names(Vec<String>)`](crate::client::fluent_builders::BatchGetWorkflows::names) / [`set_names(Option<Vec<String>>)`](crate::client::fluent_builders::BatchGetWorkflows::set_names): <p>A list of workflow names, which may be the names returned from the <code>ListWorkflows</code> operation.</p>
    ///   - [`include_graph(bool)`](crate::client::fluent_builders::BatchGetWorkflows::include_graph) / [`set_include_graph(Option<bool>)`](crate::client::fluent_builders::BatchGetWorkflows::set_include_graph): <p>Specifies whether to include a graph when returning the workflow resource metadata.</p>
    /// - On success, responds with [`BatchGetWorkflowsOutput`](crate::output::BatchGetWorkflowsOutput) with field(s):
    ///   - [`workflows(Option<Vec<Workflow>>)`](crate::output::BatchGetWorkflowsOutput::workflows): <p>A list of workflow resource metadata.</p>
    ///   - [`missing_workflows(Option<Vec<String>>)`](crate::output::BatchGetWorkflowsOutput::missing_workflows): <p>A list of names of workflows not found.</p>
    /// - On failure, responds with [`SdkError<BatchGetWorkflowsError>`](crate::error::BatchGetWorkflowsError)
    pub fn batch_get_workflows(&self) -> fluent_builders::BatchGetWorkflows {
        fluent_builders::BatchGetWorkflows::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`BatchStopJobRun`](crate::client::fluent_builders::BatchStopJobRun) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`job_name(impl Into<String>)`](crate::client::fluent_builders::BatchStopJobRun::job_name) / [`set_job_name(Option<String>)`](crate::client::fluent_builders::BatchStopJobRun::set_job_name): <p>The name of the job definition for which to stop job runs.</p>
    ///   - [`job_run_ids(Vec<String>)`](crate::client::fluent_builders::BatchStopJobRun::job_run_ids) / [`set_job_run_ids(Option<Vec<String>>)`](crate::client::fluent_builders::BatchStopJobRun::set_job_run_ids): <p>A list of the <code>JobRunIds</code> that should be stopped for that job definition.</p>
    /// - On success, responds with [`BatchStopJobRunOutput`](crate::output::BatchStopJobRunOutput) with field(s):
    ///   - [`successful_submissions(Option<Vec<BatchStopJobRunSuccessfulSubmission>>)`](crate::output::BatchStopJobRunOutput::successful_submissions): <p>A list of the JobRuns that were successfully submitted for stopping.</p>
    ///   - [`errors(Option<Vec<BatchStopJobRunError>>)`](crate::output::BatchStopJobRunOutput::errors): <p>A list of the errors that were encountered in trying to stop <code>JobRuns</code>, including the <code>JobRunId</code> for which each error was encountered and details about the error.</p>
    /// - On failure, responds with [`SdkError<BatchStopJobRunError>`](crate::error::BatchStopJobRunError)
    pub fn batch_stop_job_run(&self) -> fluent_builders::BatchStopJobRun {
        fluent_builders::BatchStopJobRun::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`BatchUpdatePartition`](crate::client::fluent_builders::BatchUpdatePartition) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::BatchUpdatePartition::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::BatchUpdatePartition::set_catalog_id): <p>The ID of the catalog in which the partition is to be updated. Currently, this should be the Amazon Web Services account ID.</p>
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::BatchUpdatePartition::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::BatchUpdatePartition::set_database_name): <p>The name of the metadata database in which the partition is to be updated.</p>
    ///   - [`table_name(impl Into<String>)`](crate::client::fluent_builders::BatchUpdatePartition::table_name) / [`set_table_name(Option<String>)`](crate::client::fluent_builders::BatchUpdatePartition::set_table_name): <p>The name of the metadata table in which the partition is to be updated.</p>
    ///   - [`entries(Vec<BatchUpdatePartitionRequestEntry>)`](crate::client::fluent_builders::BatchUpdatePartition::entries) / [`set_entries(Option<Vec<BatchUpdatePartitionRequestEntry>>)`](crate::client::fluent_builders::BatchUpdatePartition::set_entries): <p>A list of up to 100 <code>BatchUpdatePartitionRequestEntry</code> objects to update.</p>
    /// - On success, responds with [`BatchUpdatePartitionOutput`](crate::output::BatchUpdatePartitionOutput) with field(s):
    ///   - [`errors(Option<Vec<BatchUpdatePartitionFailureEntry>>)`](crate::output::BatchUpdatePartitionOutput::errors): <p>The errors encountered when trying to update the requested partitions. A list of <code>BatchUpdatePartitionFailureEntry</code> objects.</p>
    /// - On failure, responds with [`SdkError<BatchUpdatePartitionError>`](crate::error::BatchUpdatePartitionError)
    pub fn batch_update_partition(&self) -> fluent_builders::BatchUpdatePartition {
        fluent_builders::BatchUpdatePartition::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`CancelDataQualityRuleRecommendationRun`](crate::client::fluent_builders::CancelDataQualityRuleRecommendationRun) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`run_id(impl Into<String>)`](crate::client::fluent_builders::CancelDataQualityRuleRecommendationRun::run_id) / [`set_run_id(Option<String>)`](crate::client::fluent_builders::CancelDataQualityRuleRecommendationRun::set_run_id): <p>The unique run identifier associated with this run.</p>
    /// - On success, responds with [`CancelDataQualityRuleRecommendationRunOutput`](crate::output::CancelDataQualityRuleRecommendationRunOutput)

    /// - On failure, responds with [`SdkError<CancelDataQualityRuleRecommendationRunError>`](crate::error::CancelDataQualityRuleRecommendationRunError)
    pub fn cancel_data_quality_rule_recommendation_run(
        &self,
    ) -> fluent_builders::CancelDataQualityRuleRecommendationRun {
        fluent_builders::CancelDataQualityRuleRecommendationRun::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`CancelDataQualityRulesetEvaluationRun`](crate::client::fluent_builders::CancelDataQualityRulesetEvaluationRun) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`run_id(impl Into<String>)`](crate::client::fluent_builders::CancelDataQualityRulesetEvaluationRun::run_id) / [`set_run_id(Option<String>)`](crate::client::fluent_builders::CancelDataQualityRulesetEvaluationRun::set_run_id): <p>The unique run identifier associated with this run.</p>
    /// - On success, responds with [`CancelDataQualityRulesetEvaluationRunOutput`](crate::output::CancelDataQualityRulesetEvaluationRunOutput)

    /// - On failure, responds with [`SdkError<CancelDataQualityRulesetEvaluationRunError>`](crate::error::CancelDataQualityRulesetEvaluationRunError)
    pub fn cancel_data_quality_ruleset_evaluation_run(
        &self,
    ) -> fluent_builders::CancelDataQualityRulesetEvaluationRun {
        fluent_builders::CancelDataQualityRulesetEvaluationRun::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`CancelMLTaskRun`](crate::client::fluent_builders::CancelMLTaskRun) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`transform_id(impl Into<String>)`](crate::client::fluent_builders::CancelMLTaskRun::transform_id) / [`set_transform_id(Option<String>)`](crate::client::fluent_builders::CancelMLTaskRun::set_transform_id): <p>The unique identifier of the machine learning transform.</p>
    ///   - [`task_run_id(impl Into<String>)`](crate::client::fluent_builders::CancelMLTaskRun::task_run_id) / [`set_task_run_id(Option<String>)`](crate::client::fluent_builders::CancelMLTaskRun::set_task_run_id): <p>A unique identifier for the task run.</p>
    /// - On success, responds with [`CancelMlTaskRunOutput`](crate::output::CancelMlTaskRunOutput) with field(s):
    ///   - [`transform_id(Option<String>)`](crate::output::CancelMlTaskRunOutput::transform_id): <p>The unique identifier of the machine learning transform.</p>
    ///   - [`task_run_id(Option<String>)`](crate::output::CancelMlTaskRunOutput::task_run_id): <p>The unique identifier for the task run.</p>
    ///   - [`status(Option<TaskStatusType>)`](crate::output::CancelMlTaskRunOutput::status): <p>The status for this run.</p>
    /// - On failure, responds with [`SdkError<CancelMLTaskRunError>`](crate::error::CancelMLTaskRunError)
    pub fn cancel_ml_task_run(&self) -> fluent_builders::CancelMLTaskRun {
        fluent_builders::CancelMLTaskRun::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`CancelStatement`](crate::client::fluent_builders::CancelStatement) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`session_id(impl Into<String>)`](crate::client::fluent_builders::CancelStatement::session_id) / [`set_session_id(Option<String>)`](crate::client::fluent_builders::CancelStatement::set_session_id): <p>The Session ID of the statement to be cancelled.</p>
    ///   - [`id(i32)`](crate::client::fluent_builders::CancelStatement::id) / [`set_id(i32)`](crate::client::fluent_builders::CancelStatement::set_id): <p>The ID of the statement to be cancelled.</p>
    ///   - [`request_origin(impl Into<String>)`](crate::client::fluent_builders::CancelStatement::request_origin) / [`set_request_origin(Option<String>)`](crate::client::fluent_builders::CancelStatement::set_request_origin): <p>The origin of the request to cancel the statement.</p>
    /// - On success, responds with [`CancelStatementOutput`](crate::output::CancelStatementOutput)

    /// - On failure, responds with [`SdkError<CancelStatementError>`](crate::error::CancelStatementError)
    pub fn cancel_statement(&self) -> fluent_builders::CancelStatement {
        fluent_builders::CancelStatement::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`CheckSchemaVersionValidity`](crate::client::fluent_builders::CheckSchemaVersionValidity) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`data_format(DataFormat)`](crate::client::fluent_builders::CheckSchemaVersionValidity::data_format) / [`set_data_format(Option<DataFormat>)`](crate::client::fluent_builders::CheckSchemaVersionValidity::set_data_format): <p>The data format of the schema definition. Currently <code>AVRO</code>, <code>JSON</code> and <code>PROTOBUF</code> are supported.</p>
    ///   - [`schema_definition(impl Into<String>)`](crate::client::fluent_builders::CheckSchemaVersionValidity::schema_definition) / [`set_schema_definition(Option<String>)`](crate::client::fluent_builders::CheckSchemaVersionValidity::set_schema_definition): <p>The definition of the schema that has to be validated.</p>
    /// - On success, responds with [`CheckSchemaVersionValidityOutput`](crate::output::CheckSchemaVersionValidityOutput) with field(s):
    ///   - [`valid(bool)`](crate::output::CheckSchemaVersionValidityOutput::valid): <p>Return true, if the schema is valid and false otherwise.</p>
    ///   - [`error(Option<String>)`](crate::output::CheckSchemaVersionValidityOutput::error): <p>A validation failure error message.</p>
    /// - On failure, responds with [`SdkError<CheckSchemaVersionValidityError>`](crate::error::CheckSchemaVersionValidityError)
    pub fn check_schema_version_validity(&self) -> fluent_builders::CheckSchemaVersionValidity {
        fluent_builders::CheckSchemaVersionValidity::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`CreateBlueprint`](crate::client::fluent_builders::CreateBlueprint) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::CreateBlueprint::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::CreateBlueprint::set_name): <p>The name of the blueprint.</p>
    ///   - [`description(impl Into<String>)`](crate::client::fluent_builders::CreateBlueprint::description) / [`set_description(Option<String>)`](crate::client::fluent_builders::CreateBlueprint::set_description): <p>A description of the blueprint.</p>
    ///   - [`blueprint_location(impl Into<String>)`](crate::client::fluent_builders::CreateBlueprint::blueprint_location) / [`set_blueprint_location(Option<String>)`](crate::client::fluent_builders::CreateBlueprint::set_blueprint_location): <p>Specifies a path in Amazon S3 where the blueprint is published.</p>
    ///   - [`tags(HashMap<String, String>)`](crate::client::fluent_builders::CreateBlueprint::tags) / [`set_tags(Option<HashMap<String, String>>)`](crate::client::fluent_builders::CreateBlueprint::set_tags): <p>The tags to be applied to this blueprint.</p>
    /// - On success, responds with [`CreateBlueprintOutput`](crate::output::CreateBlueprintOutput) with field(s):
    ///   - [`name(Option<String>)`](crate::output::CreateBlueprintOutput::name): <p>Returns the name of the blueprint that was registered.</p>
    /// - On failure, responds with [`SdkError<CreateBlueprintError>`](crate::error::CreateBlueprintError)
    pub fn create_blueprint(&self) -> fluent_builders::CreateBlueprint {
        fluent_builders::CreateBlueprint::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`CreateClassifier`](crate::client::fluent_builders::CreateClassifier) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`grok_classifier(CreateGrokClassifierRequest)`](crate::client::fluent_builders::CreateClassifier::grok_classifier) / [`set_grok_classifier(Option<CreateGrokClassifierRequest>)`](crate::client::fluent_builders::CreateClassifier::set_grok_classifier): <p>A <code>GrokClassifier</code> object specifying the classifier to create.</p>
    ///   - [`xml_classifier(CreateXmlClassifierRequest)`](crate::client::fluent_builders::CreateClassifier::xml_classifier) / [`set_xml_classifier(Option<CreateXmlClassifierRequest>)`](crate::client::fluent_builders::CreateClassifier::set_xml_classifier): <p>An <code>XMLClassifier</code> object specifying the classifier to create.</p>
    ///   - [`json_classifier(CreateJsonClassifierRequest)`](crate::client::fluent_builders::CreateClassifier::json_classifier) / [`set_json_classifier(Option<CreateJsonClassifierRequest>)`](crate::client::fluent_builders::CreateClassifier::set_json_classifier): <p>A <code>JsonClassifier</code> object specifying the classifier to create.</p>
    ///   - [`csv_classifier(CreateCsvClassifierRequest)`](crate::client::fluent_builders::CreateClassifier::csv_classifier) / [`set_csv_classifier(Option<CreateCsvClassifierRequest>)`](crate::client::fluent_builders::CreateClassifier::set_csv_classifier): <p>A <code>CsvClassifier</code> object specifying the classifier to create.</p>
    /// - On success, responds with [`CreateClassifierOutput`](crate::output::CreateClassifierOutput)

    /// - On failure, responds with [`SdkError<CreateClassifierError>`](crate::error::CreateClassifierError)
    pub fn create_classifier(&self) -> fluent_builders::CreateClassifier {
        fluent_builders::CreateClassifier::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`CreateConnection`](crate::client::fluent_builders::CreateConnection) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::CreateConnection::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::CreateConnection::set_catalog_id): <p>The ID of the Data Catalog in which to create the connection. If none is provided, the Amazon Web Services account ID is used by default.</p>
    ///   - [`connection_input(ConnectionInput)`](crate::client::fluent_builders::CreateConnection::connection_input) / [`set_connection_input(Option<ConnectionInput>)`](crate::client::fluent_builders::CreateConnection::set_connection_input): <p>A <code>ConnectionInput</code> object defining the connection to create.</p>
    ///   - [`tags(HashMap<String, String>)`](crate::client::fluent_builders::CreateConnection::tags) / [`set_tags(Option<HashMap<String, String>>)`](crate::client::fluent_builders::CreateConnection::set_tags): <p>The tags you assign to the connection.</p>
    /// - On success, responds with [`CreateConnectionOutput`](crate::output::CreateConnectionOutput)

    /// - On failure, responds with [`SdkError<CreateConnectionError>`](crate::error::CreateConnectionError)
    pub fn create_connection(&self) -> fluent_builders::CreateConnection {
        fluent_builders::CreateConnection::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`CreateCrawler`](crate::client::fluent_builders::CreateCrawler) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::CreateCrawler::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::CreateCrawler::set_name): <p>Name of the new crawler.</p>
    ///   - [`role(impl Into<String>)`](crate::client::fluent_builders::CreateCrawler::role) / [`set_role(Option<String>)`](crate::client::fluent_builders::CreateCrawler::set_role): <p>The IAM role or Amazon Resource Name (ARN) of an IAM role used by the new crawler to access customer resources.</p>
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::CreateCrawler::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::CreateCrawler::set_database_name): <p>The Glue database where results are written, such as: <code>arn:aws:daylight:us-east-1::database/sometable/*</code>.</p>
    ///   - [`description(impl Into<String>)`](crate::client::fluent_builders::CreateCrawler::description) / [`set_description(Option<String>)`](crate::client::fluent_builders::CreateCrawler::set_description): <p>A description of the new crawler.</p>
    ///   - [`targets(CrawlerTargets)`](crate::client::fluent_builders::CreateCrawler::targets) / [`set_targets(Option<CrawlerTargets>)`](crate::client::fluent_builders::CreateCrawler::set_targets): <p>A list of collection of targets to crawl.</p>
    ///   - [`schedule(impl Into<String>)`](crate::client::fluent_builders::CreateCrawler::schedule) / [`set_schedule(Option<String>)`](crate::client::fluent_builders::CreateCrawler::set_schedule): <p>A <code>cron</code> expression used to specify the schedule (see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html">Time-Based Schedules for Jobs and Crawlers</a>. For example, to run something every day at 12:15 UTC, you would specify: <code>cron(15 12 * * ? *)</code>.</p>
    ///   - [`classifiers(Vec<String>)`](crate::client::fluent_builders::CreateCrawler::classifiers) / [`set_classifiers(Option<Vec<String>>)`](crate::client::fluent_builders::CreateCrawler::set_classifiers): <p>A list of custom classifiers that the user has registered. By default, all built-in classifiers are included in a crawl, but these custom classifiers always override the default classifiers for a given classification.</p>
    ///   - [`table_prefix(impl Into<String>)`](crate::client::fluent_builders::CreateCrawler::table_prefix) / [`set_table_prefix(Option<String>)`](crate::client::fluent_builders::CreateCrawler::set_table_prefix): <p>The table prefix used for catalog tables that are created.</p>
    ///   - [`schema_change_policy(SchemaChangePolicy)`](crate::client::fluent_builders::CreateCrawler::schema_change_policy) / [`set_schema_change_policy(Option<SchemaChangePolicy>)`](crate::client::fluent_builders::CreateCrawler::set_schema_change_policy): <p>The policy for the crawler's update and deletion behavior.</p>
    ///   - [`recrawl_policy(RecrawlPolicy)`](crate::client::fluent_builders::CreateCrawler::recrawl_policy) / [`set_recrawl_policy(Option<RecrawlPolicy>)`](crate::client::fluent_builders::CreateCrawler::set_recrawl_policy): <p>A policy that specifies whether to crawl the entire dataset again, or to crawl only folders that were added since the last crawler run.</p>
    ///   - [`lineage_configuration(LineageConfiguration)`](crate::client::fluent_builders::CreateCrawler::lineage_configuration) / [`set_lineage_configuration(Option<LineageConfiguration>)`](crate::client::fluent_builders::CreateCrawler::set_lineage_configuration): <p>Specifies data lineage configuration settings for the crawler.</p>
    ///   - [`lake_formation_configuration(LakeFormationConfiguration)`](crate::client::fluent_builders::CreateCrawler::lake_formation_configuration) / [`set_lake_formation_configuration(Option<LakeFormationConfiguration>)`](crate::client::fluent_builders::CreateCrawler::set_lake_formation_configuration): <p>Specifies Lake Formation configuration settings for the crawler.</p>
    ///   - [`configuration(impl Into<String>)`](crate::client::fluent_builders::CreateCrawler::configuration) / [`set_configuration(Option<String>)`](crate::client::fluent_builders::CreateCrawler::set_configuration): <p>Crawler configuration information. This versioned JSON string allows users to specify aspects of a crawler's behavior. For more information, see <a href="https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html">Setting crawler configuration options</a>.</p>
    ///   - [`crawler_security_configuration(impl Into<String>)`](crate::client::fluent_builders::CreateCrawler::crawler_security_configuration) / [`set_crawler_security_configuration(Option<String>)`](crate::client::fluent_builders::CreateCrawler::set_crawler_security_configuration): <p>The name of the <code>SecurityConfiguration</code> structure to be used by this crawler.</p>
    ///   - [`tags(HashMap<String, String>)`](crate::client::fluent_builders::CreateCrawler::tags) / [`set_tags(Option<HashMap<String, String>>)`](crate::client::fluent_builders::CreateCrawler::set_tags): <p>The tags to use with this crawler request. You may use tags to limit access to the crawler. For more information about tags in Glue, see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html">Amazon Web Services Tags in Glue</a> in the developer guide.</p>
    /// - On success, responds with [`CreateCrawlerOutput`](crate::output::CreateCrawlerOutput)

    /// - On failure, responds with [`SdkError<CreateCrawlerError>`](crate::error::CreateCrawlerError)
    pub fn create_crawler(&self) -> fluent_builders::CreateCrawler {
        fluent_builders::CreateCrawler::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`CreateCustomEntityType`](crate::client::fluent_builders::CreateCustomEntityType) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::CreateCustomEntityType::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::CreateCustomEntityType::set_name): <p>A name for the custom pattern that allows it to be retrieved or deleted later. This name must be unique per Amazon Web Services account.</p>
    ///   - [`regex_string(impl Into<String>)`](crate::client::fluent_builders::CreateCustomEntityType::regex_string) / [`set_regex_string(Option<String>)`](crate::client::fluent_builders::CreateCustomEntityType::set_regex_string): <p>A regular expression string that is used for detecting sensitive data in a custom pattern.</p>
    ///   - [`context_words(Vec<String>)`](crate::client::fluent_builders::CreateCustomEntityType::context_words) / [`set_context_words(Option<Vec<String>>)`](crate::client::fluent_builders::CreateCustomEntityType::set_context_words): <p>A list of context words. If none of these context words are found within the vicinity of the regular expression the data will not be detected as sensitive data.</p>  <p>If no context words are passed only a regular expression is checked.</p>
    /// - On success, responds with [`CreateCustomEntityTypeOutput`](crate::output::CreateCustomEntityTypeOutput) with field(s):
    ///   - [`name(Option<String>)`](crate::output::CreateCustomEntityTypeOutput::name): <p>The name of the custom pattern you created.</p>
    /// - On failure, responds with [`SdkError<CreateCustomEntityTypeError>`](crate::error::CreateCustomEntityTypeError)
    pub fn create_custom_entity_type(&self) -> fluent_builders::CreateCustomEntityType {
        fluent_builders::CreateCustomEntityType::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`CreateDatabase`](crate::client::fluent_builders::CreateDatabase) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::CreateDatabase::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::CreateDatabase::set_catalog_id): <p>The ID of the Data Catalog in which to create the database. If none is provided, the Amazon Web Services account ID is used by default.</p>
    ///   - [`database_input(DatabaseInput)`](crate::client::fluent_builders::CreateDatabase::database_input) / [`set_database_input(Option<DatabaseInput>)`](crate::client::fluent_builders::CreateDatabase::set_database_input): <p>The metadata for the database.</p>
    ///   - [`tags(HashMap<String, String>)`](crate::client::fluent_builders::CreateDatabase::tags) / [`set_tags(Option<HashMap<String, String>>)`](crate::client::fluent_builders::CreateDatabase::set_tags): <p>The tags you assign to the database.</p>
    /// - On success, responds with [`CreateDatabaseOutput`](crate::output::CreateDatabaseOutput)

    /// - On failure, responds with [`SdkError<CreateDatabaseError>`](crate::error::CreateDatabaseError)
    pub fn create_database(&self) -> fluent_builders::CreateDatabase {
        fluent_builders::CreateDatabase::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`CreateDataQualityRuleset`](crate::client::fluent_builders::CreateDataQualityRuleset) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::CreateDataQualityRuleset::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::CreateDataQualityRuleset::set_name): <p>A unique name for the data quality ruleset.</p>
    ///   - [`description(impl Into<String>)`](crate::client::fluent_builders::CreateDataQualityRuleset::description) / [`set_description(Option<String>)`](crate::client::fluent_builders::CreateDataQualityRuleset::set_description): <p>A description of the data quality ruleset.</p>
    ///   - [`ruleset(impl Into<String>)`](crate::client::fluent_builders::CreateDataQualityRuleset::ruleset) / [`set_ruleset(Option<String>)`](crate::client::fluent_builders::CreateDataQualityRuleset::set_ruleset): <p>A Data Quality Definition Language (DQDL) ruleset. For more information, see the Glue developer guide.</p>
    ///   - [`tags(HashMap<String, String>)`](crate::client::fluent_builders::CreateDataQualityRuleset::tags) / [`set_tags(Option<HashMap<String, String>>)`](crate::client::fluent_builders::CreateDataQualityRuleset::set_tags): <p>A list of tags applied to the data quality ruleset.</p>
    ///   - [`target_table(DataQualityTargetTable)`](crate::client::fluent_builders::CreateDataQualityRuleset::target_table) / [`set_target_table(Option<DataQualityTargetTable>)`](crate::client::fluent_builders::CreateDataQualityRuleset::set_target_table): <p>A target table associated with the data quality ruleset.</p>
    ///   - [`client_token(impl Into<String>)`](crate::client::fluent_builders::CreateDataQualityRuleset::client_token) / [`set_client_token(Option<String>)`](crate::client::fluent_builders::CreateDataQualityRuleset::set_client_token): <p>Used for idempotency and is recommended to be set to a random ID (such as a UUID) to avoid creating or starting multiple instances of the same resource.</p>
    /// - On success, responds with [`CreateDataQualityRulesetOutput`](crate::output::CreateDataQualityRulesetOutput) with field(s):
    ///   - [`name(Option<String>)`](crate::output::CreateDataQualityRulesetOutput::name): <p>A unique name for the data quality ruleset.</p>
    /// - On failure, responds with [`SdkError<CreateDataQualityRulesetError>`](crate::error::CreateDataQualityRulesetError)
    pub fn create_data_quality_ruleset(&self) -> fluent_builders::CreateDataQualityRuleset {
        fluent_builders::CreateDataQualityRuleset::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`CreateDevEndpoint`](crate::client::fluent_builders::CreateDevEndpoint) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`endpoint_name(impl Into<String>)`](crate::client::fluent_builders::CreateDevEndpoint::endpoint_name) / [`set_endpoint_name(Option<String>)`](crate::client::fluent_builders::CreateDevEndpoint::set_endpoint_name): <p>The name to be assigned to the new <code>DevEndpoint</code>.</p>
    ///   - [`role_arn(impl Into<String>)`](crate::client::fluent_builders::CreateDevEndpoint::role_arn) / [`set_role_arn(Option<String>)`](crate::client::fluent_builders::CreateDevEndpoint::set_role_arn): <p>The IAM role for the <code>DevEndpoint</code>.</p>
    ///   - [`security_group_ids(Vec<String>)`](crate::client::fluent_builders::CreateDevEndpoint::security_group_ids) / [`set_security_group_ids(Option<Vec<String>>)`](crate::client::fluent_builders::CreateDevEndpoint::set_security_group_ids): <p>Security group IDs for the security groups to be used by the new <code>DevEndpoint</code>.</p>
    ///   - [`subnet_id(impl Into<String>)`](crate::client::fluent_builders::CreateDevEndpoint::subnet_id) / [`set_subnet_id(Option<String>)`](crate::client::fluent_builders::CreateDevEndpoint::set_subnet_id): <p>The subnet ID for the new <code>DevEndpoint</code> to use.</p>
    ///   - [`public_key(impl Into<String>)`](crate::client::fluent_builders::CreateDevEndpoint::public_key) / [`set_public_key(Option<String>)`](crate::client::fluent_builders::CreateDevEndpoint::set_public_key): <p>The public key to be used by this <code>DevEndpoint</code> for authentication. This attribute is provided for backward compatibility because the recommended attribute to use is public keys.</p>
    ///   - [`public_keys(Vec<String>)`](crate::client::fluent_builders::CreateDevEndpoint::public_keys) / [`set_public_keys(Option<Vec<String>>)`](crate::client::fluent_builders::CreateDevEndpoint::set_public_keys): <p>A list of public keys to be used by the development endpoints for authentication. The use of this attribute is preferred over a single public key because the public keys allow you to have a different private key per client.</p> <note>   <p>If you previously created an endpoint with a public key, you must remove that key to be able to set a list of public keys. Call the <code>UpdateDevEndpoint</code> API with the public key content in the <code>deletePublicKeys</code> attribute, and the list of new keys in the <code>addPublicKeys</code> attribute.</p>  </note>
    ///   - [`number_of_nodes(i32)`](crate::client::fluent_builders::CreateDevEndpoint::number_of_nodes) / [`set_number_of_nodes(i32)`](crate::client::fluent_builders::CreateDevEndpoint::set_number_of_nodes): <p>The number of Glue Data Processing Units (DPUs) to allocate to this <code>DevEndpoint</code>.</p>
    ///   - [`worker_type(WorkerType)`](crate::client::fluent_builders::CreateDevEndpoint::worker_type) / [`set_worker_type(Option<WorkerType>)`](crate::client::fluent_builders::CreateDevEndpoint::set_worker_type): <p>The type of predefined worker that is allocated to the development endpoint. Accepts a value of Standard, G.1X, or G.2X.</p>  <ul>   <li> <p>For the <code>Standard</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.</p> </li>   <li> <p>For the <code>G.1X</code> worker type, each worker maps to 1 DPU (4 vCPU, 16 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs.</p> </li>   <li> <p>For the <code>G.2X</code> worker type, each worker maps to 2 DPU (8 vCPU, 32 GB of memory, 128 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs.</p> </li>  </ul>  <p>Known issue: when a development endpoint is created with the <code>G.2X</code> <code>WorkerType</code> configuration, the Spark drivers for the development endpoint will run on 4 vCPU, 16 GB of memory, and a 64 GB disk. </p>
    ///   - [`glue_version(impl Into<String>)`](crate::client::fluent_builders::CreateDevEndpoint::glue_version) / [`set_glue_version(Option<String>)`](crate::client::fluent_builders::CreateDevEndpoint::set_glue_version): <p>Glue version determines the versions of Apache Spark and Python that Glue supports. The Python version indicates the version supported for running your ETL scripts on development endpoints. </p>  <p>For more information about the available Glue versions and corresponding Spark and Python versions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Glue version</a> in the developer guide.</p>  <p>Development endpoints that are created without specifying a Glue version default to Glue 0.9.</p>  <p>You can specify a version of Python support for development endpoints by using the <code>Arguments</code> parameter in the <code>CreateDevEndpoint</code> or <code>UpdateDevEndpoint</code> APIs. If no arguments are provided, the version defaults to Python 2.</p>
    ///   - [`number_of_workers(i32)`](crate::client::fluent_builders::CreateDevEndpoint::number_of_workers) / [`set_number_of_workers(Option<i32>)`](crate::client::fluent_builders::CreateDevEndpoint::set_number_of_workers): <p>The number of workers of a defined <code>workerType</code> that are allocated to the development endpoint.</p>  <p>The maximum number of workers you can define are 299 for <code>G.1X</code>, and 149 for <code>G.2X</code>. </p>
    ///   - [`extra_python_libs_s3_path(impl Into<String>)`](crate::client::fluent_builders::CreateDevEndpoint::extra_python_libs_s3_path) / [`set_extra_python_libs_s3_path(Option<String>)`](crate::client::fluent_builders::CreateDevEndpoint::set_extra_python_libs_s3_path): <p>The paths to one or more Python libraries in an Amazon S3 bucket that should be loaded in your <code>DevEndpoint</code>. Multiple values must be complete paths separated by a comma.</p> <note>   <p>You can only use pure Python libraries with a <code>DevEndpoint</code>. Libraries that rely on C extensions, such as the <a href="http://pandas.pydata.org/">pandas</a> Python data analysis library, are not yet supported.</p>  </note>
    ///   - [`extra_jars_s3_path(impl Into<String>)`](crate::client::fluent_builders::CreateDevEndpoint::extra_jars_s3_path) / [`set_extra_jars_s3_path(Option<String>)`](crate::client::fluent_builders::CreateDevEndpoint::set_extra_jars_s3_path): <p>The path to one or more Java <code>.jar</code> files in an S3 bucket that should be loaded in your <code>DevEndpoint</code>.</p>
    ///   - [`security_configuration(impl Into<String>)`](crate::client::fluent_builders::CreateDevEndpoint::security_configuration) / [`set_security_configuration(Option<String>)`](crate::client::fluent_builders::CreateDevEndpoint::set_security_configuration): <p>The name of the <code>SecurityConfiguration</code> structure to be used with this <code>DevEndpoint</code>.</p>
    ///   - [`tags(HashMap<String, String>)`](crate::client::fluent_builders::CreateDevEndpoint::tags) / [`set_tags(Option<HashMap<String, String>>)`](crate::client::fluent_builders::CreateDevEndpoint::set_tags): <p>The tags to use with this DevEndpoint. You may use tags to limit access to the DevEndpoint. For more information about tags in Glue, see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html">Amazon Web Services Tags in Glue</a> in the developer guide.</p>
    ///   - [`arguments(HashMap<String, String>)`](crate::client::fluent_builders::CreateDevEndpoint::arguments) / [`set_arguments(Option<HashMap<String, String>>)`](crate::client::fluent_builders::CreateDevEndpoint::set_arguments): <p>A map of arguments used to configure the <code>DevEndpoint</code>.</p>
    /// - On success, responds with [`CreateDevEndpointOutput`](crate::output::CreateDevEndpointOutput) with field(s):
    ///   - [`endpoint_name(Option<String>)`](crate::output::CreateDevEndpointOutput::endpoint_name): <p>The name assigned to the new <code>DevEndpoint</code>.</p>
    ///   - [`status(Option<String>)`](crate::output::CreateDevEndpointOutput::status): <p>The current status of the new <code>DevEndpoint</code>.</p>
    ///   - [`security_group_ids(Option<Vec<String>>)`](crate::output::CreateDevEndpointOutput::security_group_ids): <p>The security groups assigned to the new <code>DevEndpoint</code>.</p>
    ///   - [`subnet_id(Option<String>)`](crate::output::CreateDevEndpointOutput::subnet_id): <p>The subnet ID assigned to the new <code>DevEndpoint</code>.</p>
    ///   - [`role_arn(Option<String>)`](crate::output::CreateDevEndpointOutput::role_arn): <p>The Amazon Resource Name (ARN) of the role assigned to the new <code>DevEndpoint</code>.</p>
    ///   - [`yarn_endpoint_address(Option<String>)`](crate::output::CreateDevEndpointOutput::yarn_endpoint_address): <p>The address of the YARN endpoint used by this <code>DevEndpoint</code>.</p>
    ///   - [`zeppelin_remote_spark_interpreter_port(i32)`](crate::output::CreateDevEndpointOutput::zeppelin_remote_spark_interpreter_port): <p>The Apache Zeppelin port for the remote Apache Spark interpreter.</p>
    ///   - [`number_of_nodes(i32)`](crate::output::CreateDevEndpointOutput::number_of_nodes): <p>The number of Glue Data Processing Units (DPUs) allocated to this DevEndpoint.</p>
    ///   - [`worker_type(Option<WorkerType>)`](crate::output::CreateDevEndpointOutput::worker_type): <p>The type of predefined worker that is allocated to the development endpoint. May be a value of Standard, G.1X, or G.2X.</p>
    ///   - [`glue_version(Option<String>)`](crate::output::CreateDevEndpointOutput::glue_version): <p>Glue version determines the versions of Apache Spark and Python that Glue supports. The Python version indicates the version supported for running your ETL scripts on development endpoints. </p>  <p>For more information about the available Glue versions and corresponding Spark and Python versions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Glue version</a> in the developer guide.</p>
    ///   - [`number_of_workers(Option<i32>)`](crate::output::CreateDevEndpointOutput::number_of_workers): <p>The number of workers of a defined <code>workerType</code> that are allocated to the development endpoint.</p>
    ///   - [`availability_zone(Option<String>)`](crate::output::CreateDevEndpointOutput::availability_zone): <p>The Amazon Web Services Availability Zone where this <code>DevEndpoint</code> is located.</p>
    ///   - [`vpc_id(Option<String>)`](crate::output::CreateDevEndpointOutput::vpc_id): <p>The ID of the virtual private cloud (VPC) used by this <code>DevEndpoint</code>.</p>
    ///   - [`extra_python_libs_s3_path(Option<String>)`](crate::output::CreateDevEndpointOutput::extra_python_libs_s3_path): <p>The paths to one or more Python libraries in an S3 bucket that will be loaded in your <code>DevEndpoint</code>.</p>
    ///   - [`extra_jars_s3_path(Option<String>)`](crate::output::CreateDevEndpointOutput::extra_jars_s3_path): <p>Path to one or more Java <code>.jar</code> files in an S3 bucket that will be loaded in your <code>DevEndpoint</code>.</p>
    ///   - [`failure_reason(Option<String>)`](crate::output::CreateDevEndpointOutput::failure_reason): <p>The reason for a current failure in this <code>DevEndpoint</code>.</p>
    ///   - [`security_configuration(Option<String>)`](crate::output::CreateDevEndpointOutput::security_configuration): <p>The name of the <code>SecurityConfiguration</code> structure being used with this <code>DevEndpoint</code>.</p>
    ///   - [`created_timestamp(Option<DateTime>)`](crate::output::CreateDevEndpointOutput::created_timestamp): <p>The point in time at which this <code>DevEndpoint</code> was created.</p>
    ///   - [`arguments(Option<HashMap<String, String>>)`](crate::output::CreateDevEndpointOutput::arguments): <p>The map of arguments used to configure this <code>DevEndpoint</code>.</p>  <p>Valid arguments are:</p>  <ul>   <li> <p> <code>"--enable-glue-datacatalog": ""</code> </p> </li>  </ul>  <p>You can specify a version of Python support for development endpoints by using the <code>Arguments</code> parameter in the <code>CreateDevEndpoint</code> or <code>UpdateDevEndpoint</code> APIs. If no arguments are provided, the version defaults to Python 2.</p>
    /// - On failure, responds with [`SdkError<CreateDevEndpointError>`](crate::error::CreateDevEndpointError)
    pub fn create_dev_endpoint(&self) -> fluent_builders::CreateDevEndpoint {
        fluent_builders::CreateDevEndpoint::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`CreateJob`](crate::client::fluent_builders::CreateJob) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::CreateJob::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::CreateJob::set_name): <p>The name you assign to this job definition. It must be unique in your account.</p>
    ///   - [`description(impl Into<String>)`](crate::client::fluent_builders::CreateJob::description) / [`set_description(Option<String>)`](crate::client::fluent_builders::CreateJob::set_description): <p>Description of the job being defined.</p>
    ///   - [`log_uri(impl Into<String>)`](crate::client::fluent_builders::CreateJob::log_uri) / [`set_log_uri(Option<String>)`](crate::client::fluent_builders::CreateJob::set_log_uri): <p>This field is reserved for future use.</p>
    ///   - [`role(impl Into<String>)`](crate::client::fluent_builders::CreateJob::role) / [`set_role(Option<String>)`](crate::client::fluent_builders::CreateJob::set_role): <p>The name or Amazon Resource Name (ARN) of the IAM role associated with this job.</p>
    ///   - [`execution_property(ExecutionProperty)`](crate::client::fluent_builders::CreateJob::execution_property) / [`set_execution_property(Option<ExecutionProperty>)`](crate::client::fluent_builders::CreateJob::set_execution_property): <p>An <code>ExecutionProperty</code> specifying the maximum number of concurrent runs allowed for this job.</p>
    ///   - [`command(JobCommand)`](crate::client::fluent_builders::CreateJob::command) / [`set_command(Option<JobCommand>)`](crate::client::fluent_builders::CreateJob::set_command): <p>The <code>JobCommand</code> that runs this job.</p>
    ///   - [`default_arguments(HashMap<String, String>)`](crate::client::fluent_builders::CreateJob::default_arguments) / [`set_default_arguments(Option<HashMap<String, String>>)`](crate::client::fluent_builders::CreateJob::set_default_arguments): <p>The default arguments for this job.</p>  <p>You can specify arguments here that your own job-execution script consumes, as well as arguments that Glue itself consumes.</p>  <p>Job arguments may be logged. Do not pass plaintext secrets as arguments. Retrieve secrets from a Glue Connection, Secrets Manager or other secret management mechanism if you intend to keep them within the Job. </p>  <p>For information about how to specify and consume your own Job arguments, see the <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html">Calling Glue APIs in Python</a> topic in the developer guide.</p>  <p>For information about the key-value pairs that Glue consumes to set up your job, see the <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html">Special Parameters Used by Glue</a> topic in the developer guide.</p>
    ///   - [`non_overridable_arguments(HashMap<String, String>)`](crate::client::fluent_builders::CreateJob::non_overridable_arguments) / [`set_non_overridable_arguments(Option<HashMap<String, String>>)`](crate::client::fluent_builders::CreateJob::set_non_overridable_arguments): <p>Non-overridable arguments for this job, specified as name-value pairs.</p>
    ///   - [`connections(ConnectionsList)`](crate::client::fluent_builders::CreateJob::connections) / [`set_connections(Option<ConnectionsList>)`](crate::client::fluent_builders::CreateJob::set_connections): <p>The connections used for this job.</p>
    ///   - [`max_retries(i32)`](crate::client::fluent_builders::CreateJob::max_retries) / [`set_max_retries(i32)`](crate::client::fluent_builders::CreateJob::set_max_retries): <p>The maximum number of times to retry this job if it fails.</p>
    ///   - [`allocated_capacity(i32)`](crate::client::fluent_builders::CreateJob::allocated_capacity) / [`set_allocated_capacity(i32)`](crate::client::fluent_builders::CreateJob::set_allocated_capacity): <p>This parameter is deprecated. Use <code>MaxCapacity</code> instead.</p>  <p>The number of Glue data processing units (DPUs) to allocate to this Job. You can allocate a minimum of 2 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the <a href="https://aws.amazon.com/glue/pricing/">Glue pricing page</a>.</p>
    ///   - [`timeout(i32)`](crate::client::fluent_builders::CreateJob::timeout) / [`set_timeout(Option<i32>)`](crate::client::fluent_builders::CreateJob::set_timeout): <p>The job timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters <code>TIMEOUT</code> status. The default is 2,880 minutes (48 hours).</p>
    ///   - [`max_capacity(f64)`](crate::client::fluent_builders::CreateJob::max_capacity) / [`set_max_capacity(Option<f64>)`](crate::client::fluent_builders::CreateJob::set_max_capacity): <p>For Glue version 1.0 or earlier jobs, using the standard worker type, the number of Glue data processing units (DPUs) that can be allocated when this job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the <a href="https://aws.amazon.com/glue/pricing/">Glue pricing page</a>.</p>  <p>Do not set <code>Max Capacity</code> if using <code>WorkerType</code> and <code>NumberOfWorkers</code>.</p>  <p>The value that can be allocated for <code>MaxCapacity</code> depends on whether you are running a Python shell job or an Apache Spark ETL job:</p>  <ul>   <li> <p>When you specify a Python shell job (<code>JobCommand.Name</code>="pythonshell"), you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.</p> </li>   <li> <p>When you specify an Apache Spark ETL job (<code>JobCommand.Name</code>="glueetl") or Apache Spark streaming ETL job (<code>JobCommand.Name</code>="gluestreaming"), you can allocate a minimum of 2 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU allocation.</p> </li>  </ul>  <p>For Glue version 2.0 jobs, you cannot instead specify a <code>Maximum capacity</code>. Instead, you should specify a <code>Worker type</code> and the <code>Number of workers</code>.</p>
    ///   - [`security_configuration(impl Into<String>)`](crate::client::fluent_builders::CreateJob::security_configuration) / [`set_security_configuration(Option<String>)`](crate::client::fluent_builders::CreateJob::set_security_configuration): <p>The name of the <code>SecurityConfiguration</code> structure to be used with this job.</p>
    ///   - [`tags(HashMap<String, String>)`](crate::client::fluent_builders::CreateJob::tags) / [`set_tags(Option<HashMap<String, String>>)`](crate::client::fluent_builders::CreateJob::set_tags): <p>The tags to use with this job. You may use tags to limit access to the job. For more information about tags in Glue, see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html">Amazon Web Services Tags in Glue</a> in the developer guide.</p>
    ///   - [`notification_property(NotificationProperty)`](crate::client::fluent_builders::CreateJob::notification_property) / [`set_notification_property(Option<NotificationProperty>)`](crate::client::fluent_builders::CreateJob::set_notification_property): <p>Specifies configuration properties of a job notification.</p>
    ///   - [`glue_version(impl Into<String>)`](crate::client::fluent_builders::CreateJob::glue_version) / [`set_glue_version(Option<String>)`](crate::client::fluent_builders::CreateJob::set_glue_version): <p>Glue version determines the versions of Apache Spark and Python that Glue supports. The Python version indicates the version supported for jobs of type Spark. </p>  <p>For more information about the available Glue versions and corresponding Spark and Python versions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Glue version</a> in the developer guide.</p>  <p>Jobs that are created without specifying a Glue version default to Glue 0.9.</p>
    ///   - [`number_of_workers(i32)`](crate::client::fluent_builders::CreateJob::number_of_workers) / [`set_number_of_workers(Option<i32>)`](crate::client::fluent_builders::CreateJob::set_number_of_workers): <p>The number of workers of a defined <code>workerType</code> that are allocated when a job runs.</p>
    ///   - [`worker_type(WorkerType)`](crate::client::fluent_builders::CreateJob::worker_type) / [`set_worker_type(Option<WorkerType>)`](crate::client::fluent_builders::CreateJob::set_worker_type): <p>The type of predefined worker that is allocated when a job runs. Accepts a value of Standard, G.1X, G.2X, or G.025X.</p>  <ul>   <li> <p>For the <code>Standard</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.</p> </li>   <li> <p>For the <code>G.1X</code> worker type, each worker maps to 1 DPU (4 vCPU, 16 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs.</p> </li>   <li> <p>For the <code>G.2X</code> worker type, each worker maps to 2 DPU (8 vCPU, 32 GB of memory, 128 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs.</p> </li>   <li> <p>For the <code>G.025X</code> worker type, each worker maps to 0.25 DPU (2 vCPU, 4 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for low volume streaming jobs. This worker type is only available for Glue version 3.0 streaming jobs.</p> </li>  </ul>
    ///   - [`code_gen_configuration_nodes(HashMap<String, CodeGenConfigurationNode>)`](crate::client::fluent_builders::CreateJob::code_gen_configuration_nodes) / [`set_code_gen_configuration_nodes(Option<HashMap<String, CodeGenConfigurationNode>>)`](crate::client::fluent_builders::CreateJob::set_code_gen_configuration_nodes): <p>The representation of a directed acyclic graph on which both the Glue Studio visual component and Glue Studio code generation is based.</p>
    ///   - [`execution_class(ExecutionClass)`](crate::client::fluent_builders::CreateJob::execution_class) / [`set_execution_class(Option<ExecutionClass>)`](crate::client::fluent_builders::CreateJob::set_execution_class): <p>Indicates whether the job is run with a standard or flexible execution class. The standard execution-class is ideal for time-sensitive workloads that require fast job startup and dedicated resources.</p>  <p>The flexible execution class is appropriate for time-insensitive jobs whose start and completion times may vary. </p>  <p>Only jobs with Glue version 3.0 and above and command type <code>glueetl</code> will be allowed to set <code>ExecutionClass</code> to <code>FLEX</code>. The flexible execution class is available for Spark jobs.</p>
    ///   - [`source_control_details(SourceControlDetails)`](crate::client::fluent_builders::CreateJob::source_control_details) / [`set_source_control_details(Option<SourceControlDetails>)`](crate::client::fluent_builders::CreateJob::set_source_control_details): <p>The details for a source control configuration for a job, allowing synchronization of job artifacts to or from a remote repository.</p>
    /// - On success, responds with [`CreateJobOutput`](crate::output::CreateJobOutput) with field(s):
    ///   - [`name(Option<String>)`](crate::output::CreateJobOutput::name): <p>The unique name that was provided for this job definition.</p>
    /// - On failure, responds with [`SdkError<CreateJobError>`](crate::error::CreateJobError)
    pub fn create_job(&self) -> fluent_builders::CreateJob {
        fluent_builders::CreateJob::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`CreateMLTransform`](crate::client::fluent_builders::CreateMLTransform) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::CreateMLTransform::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::CreateMLTransform::set_name): <p>The unique name that you give the transform when you create it.</p>
    ///   - [`description(impl Into<String>)`](crate::client::fluent_builders::CreateMLTransform::description) / [`set_description(Option<String>)`](crate::client::fluent_builders::CreateMLTransform::set_description): <p>A description of the machine learning transform that is being defined. The default is an empty string.</p>
    ///   - [`input_record_tables(Vec<GlueTable>)`](crate::client::fluent_builders::CreateMLTransform::input_record_tables) / [`set_input_record_tables(Option<Vec<GlueTable>>)`](crate::client::fluent_builders::CreateMLTransform::set_input_record_tables): <p>A list of Glue table definitions used by the transform.</p>
    ///   - [`parameters(TransformParameters)`](crate::client::fluent_builders::CreateMLTransform::parameters) / [`set_parameters(Option<TransformParameters>)`](crate::client::fluent_builders::CreateMLTransform::set_parameters): <p>The algorithmic parameters that are specific to the transform type used. Conditionally dependent on the transform type.</p>
    ///   - [`role(impl Into<String>)`](crate::client::fluent_builders::CreateMLTransform::role) / [`set_role(Option<String>)`](crate::client::fluent_builders::CreateMLTransform::set_role): <p>The name or Amazon Resource Name (ARN) of the IAM role with the required permissions. The required permissions include both Glue service role permissions to Glue resources, and Amazon S3 permissions required by the transform. </p>  <ul>   <li> <p>This role needs Glue service role permissions to allow access to resources in Glue. See <a href="https://docs.aws.amazon.com/glue/latest/dg/attach-policy-iam-user.html">Attach a Policy to IAM Users That Access Glue</a>.</p> </li>   <li> <p>This role needs permission to your Amazon Simple Storage Service (Amazon S3) sources, targets, temporary directory, scripts, and any libraries used by the task run for this transform.</p> </li>  </ul>
    ///   - [`glue_version(impl Into<String>)`](crate::client::fluent_builders::CreateMLTransform::glue_version) / [`set_glue_version(Option<String>)`](crate::client::fluent_builders::CreateMLTransform::set_glue_version): <p>This value determines which version of Glue this machine learning transform is compatible with. Glue 1.0 is recommended for most customers. If the value is not set, the Glue compatibility defaults to Glue 0.9. For more information, see <a href="https://docs.aws.amazon.com/glue/latest/dg/release-notes.html#release-notes-versions">Glue Versions</a> in the developer guide.</p>
    ///   - [`max_capacity(f64)`](crate::client::fluent_builders::CreateMLTransform::max_capacity) / [`set_max_capacity(Option<f64>)`](crate::client::fluent_builders::CreateMLTransform::set_max_capacity): <p>The number of Glue data processing units (DPUs) that are allocated to task runs for this transform. You can allocate from 2 to 100 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the <a href="https://aws.amazon.com/glue/pricing/">Glue pricing page</a>. </p>  <p> <code>MaxCapacity</code> is a mutually exclusive option with <code>NumberOfWorkers</code> and <code>WorkerType</code>.</p>  <ul>   <li> <p>If either <code>NumberOfWorkers</code> or <code>WorkerType</code> is set, then <code>MaxCapacity</code> cannot be set.</p> </li>   <li> <p>If <code>MaxCapacity</code> is set then neither <code>NumberOfWorkers</code> or <code>WorkerType</code> can be set.</p> </li>   <li> <p>If <code>WorkerType</code> is set, then <code>NumberOfWorkers</code> is required (and vice versa).</p> </li>   <li> <p> <code>MaxCapacity</code> and <code>NumberOfWorkers</code> must both be at least 1.</p> </li>  </ul>  <p>When the <code>WorkerType</code> field is set to a value other than <code>Standard</code>, the <code>MaxCapacity</code> field is set automatically and becomes read-only.</p>  <p>When the <code>WorkerType</code> field is set to a value other than <code>Standard</code>, the <code>MaxCapacity</code> field is set automatically and becomes read-only.</p>
    ///   - [`worker_type(WorkerType)`](crate::client::fluent_builders::CreateMLTransform::worker_type) / [`set_worker_type(Option<WorkerType>)`](crate::client::fluent_builders::CreateMLTransform::set_worker_type): <p>The type of predefined worker that is allocated when this task runs. Accepts a value of Standard, G.1X, or G.2X.</p>  <ul>   <li> <p>For the <code>Standard</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.</p> </li>   <li> <p>For the <code>G.1X</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 64GB disk, and 1 executor per worker.</p> </li>   <li> <p>For the <code>G.2X</code> worker type, each worker provides 8 vCPU, 32 GB of memory and a 128GB disk, and 1 executor per worker.</p> </li>  </ul>  <p> <code>MaxCapacity</code> is a mutually exclusive option with <code>NumberOfWorkers</code> and <code>WorkerType</code>.</p>  <ul>   <li> <p>If either <code>NumberOfWorkers</code> or <code>WorkerType</code> is set, then <code>MaxCapacity</code> cannot be set.</p> </li>   <li> <p>If <code>MaxCapacity</code> is set then neither <code>NumberOfWorkers</code> or <code>WorkerType</code> can be set.</p> </li>   <li> <p>If <code>WorkerType</code> is set, then <code>NumberOfWorkers</code> is required (and vice versa).</p> </li>   <li> <p> <code>MaxCapacity</code> and <code>NumberOfWorkers</code> must both be at least 1.</p> </li>  </ul>
    ///   - [`number_of_workers(i32)`](crate::client::fluent_builders::CreateMLTransform::number_of_workers) / [`set_number_of_workers(Option<i32>)`](crate::client::fluent_builders::CreateMLTransform::set_number_of_workers): <p>The number of workers of a defined <code>workerType</code> that are allocated when this task runs.</p>  <p>If <code>WorkerType</code> is set, then <code>NumberOfWorkers</code> is required (and vice versa).</p>
    ///   - [`timeout(i32)`](crate::client::fluent_builders::CreateMLTransform::timeout) / [`set_timeout(Option<i32>)`](crate::client::fluent_builders::CreateMLTransform::set_timeout): <p>The timeout of the task run for this transform in minutes. This is the maximum time that a task run for this transform can consume resources before it is terminated and enters <code>TIMEOUT</code> status. The default is 2,880 minutes (48 hours).</p>
    ///   - [`max_retries(i32)`](crate::client::fluent_builders::CreateMLTransform::max_retries) / [`set_max_retries(Option<i32>)`](crate::client::fluent_builders::CreateMLTransform::set_max_retries): <p>The maximum number of times to retry a task for this transform after a task run fails.</p>
    ///   - [`tags(HashMap<String, String>)`](crate::client::fluent_builders::CreateMLTransform::tags) / [`set_tags(Option<HashMap<String, String>>)`](crate::client::fluent_builders::CreateMLTransform::set_tags): <p>The tags to use with this machine learning transform. You may use tags to limit access to the machine learning transform. For more information about tags in Glue, see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html">Amazon Web Services Tags in Glue</a> in the developer guide.</p>
    ///   - [`transform_encryption(TransformEncryption)`](crate::client::fluent_builders::CreateMLTransform::transform_encryption) / [`set_transform_encryption(Option<TransformEncryption>)`](crate::client::fluent_builders::CreateMLTransform::set_transform_encryption): <p>The encryption-at-rest settings of the transform that apply to accessing user data. Machine learning transforms can access user data encrypted in Amazon S3 using KMS.</p>
    /// - On success, responds with [`CreateMlTransformOutput`](crate::output::CreateMlTransformOutput) with field(s):
    ///   - [`transform_id(Option<String>)`](crate::output::CreateMlTransformOutput::transform_id): <p>A unique identifier that is generated for the transform.</p>
    /// - On failure, responds with [`SdkError<CreateMLTransformError>`](crate::error::CreateMLTransformError)
    pub fn create_ml_transform(&self) -> fluent_builders::CreateMLTransform {
        fluent_builders::CreateMLTransform::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`CreatePartition`](crate::client::fluent_builders::CreatePartition) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::CreatePartition::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::CreatePartition::set_catalog_id): <p>The Amazon Web Services account ID of the catalog in which the partition is to be created.</p>
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::CreatePartition::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::CreatePartition::set_database_name): <p>The name of the metadata database in which the partition is to be created.</p>
    ///   - [`table_name(impl Into<String>)`](crate::client::fluent_builders::CreatePartition::table_name) / [`set_table_name(Option<String>)`](crate::client::fluent_builders::CreatePartition::set_table_name): <p>The name of the metadata table in which the partition is to be created.</p>
    ///   - [`partition_input(PartitionInput)`](crate::client::fluent_builders::CreatePartition::partition_input) / [`set_partition_input(Option<PartitionInput>)`](crate::client::fluent_builders::CreatePartition::set_partition_input): <p>A <code>PartitionInput</code> structure defining the partition to be created.</p>
    /// - On success, responds with [`CreatePartitionOutput`](crate::output::CreatePartitionOutput)

    /// - On failure, responds with [`SdkError<CreatePartitionError>`](crate::error::CreatePartitionError)
    pub fn create_partition(&self) -> fluent_builders::CreatePartition {
        fluent_builders::CreatePartition::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`CreatePartitionIndex`](crate::client::fluent_builders::CreatePartitionIndex) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::CreatePartitionIndex::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::CreatePartitionIndex::set_catalog_id): <p>The catalog ID where the table resides.</p>
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::CreatePartitionIndex::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::CreatePartitionIndex::set_database_name): <p>Specifies the name of a database in which you want to create a partition index.</p>
    ///   - [`table_name(impl Into<String>)`](crate::client::fluent_builders::CreatePartitionIndex::table_name) / [`set_table_name(Option<String>)`](crate::client::fluent_builders::CreatePartitionIndex::set_table_name): <p>Specifies the name of a table in which you want to create a partition index.</p>
    ///   - [`partition_index(PartitionIndex)`](crate::client::fluent_builders::CreatePartitionIndex::partition_index) / [`set_partition_index(Option<PartitionIndex>)`](crate::client::fluent_builders::CreatePartitionIndex::set_partition_index): <p>Specifies a <code>PartitionIndex</code> structure to create a partition index in an existing table.</p>
    /// - On success, responds with [`CreatePartitionIndexOutput`](crate::output::CreatePartitionIndexOutput)

    /// - On failure, responds with [`SdkError<CreatePartitionIndexError>`](crate::error::CreatePartitionIndexError)
    pub fn create_partition_index(&self) -> fluent_builders::CreatePartitionIndex {
        fluent_builders::CreatePartitionIndex::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`CreateRegistry`](crate::client::fluent_builders::CreateRegistry) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`registry_name(impl Into<String>)`](crate::client::fluent_builders::CreateRegistry::registry_name) / [`set_registry_name(Option<String>)`](crate::client::fluent_builders::CreateRegistry::set_registry_name): <p>Name of the registry to be created of max length of 255, and may only contain letters, numbers, hyphen, underscore, dollar sign, or hash mark. No whitespace.</p>
    ///   - [`description(impl Into<String>)`](crate::client::fluent_builders::CreateRegistry::description) / [`set_description(Option<String>)`](crate::client::fluent_builders::CreateRegistry::set_description): <p>A description of the registry. If description is not provided, there will not be any default value for this.</p>
    ///   - [`tags(HashMap<String, String>)`](crate::client::fluent_builders::CreateRegistry::tags) / [`set_tags(Option<HashMap<String, String>>)`](crate::client::fluent_builders::CreateRegistry::set_tags): <p>Amazon Web Services tags that contain a key value pair and may be searched by console, command line, or API.</p>
    /// - On success, responds with [`CreateRegistryOutput`](crate::output::CreateRegistryOutput) with field(s):
    ///   - [`registry_arn(Option<String>)`](crate::output::CreateRegistryOutput::registry_arn): <p>The Amazon Resource Name (ARN) of the newly created registry.</p>
    ///   - [`registry_name(Option<String>)`](crate::output::CreateRegistryOutput::registry_name): <p>The name of the registry.</p>
    ///   - [`description(Option<String>)`](crate::output::CreateRegistryOutput::description): <p>A description of the registry.</p>
    ///   - [`tags(Option<HashMap<String, String>>)`](crate::output::CreateRegistryOutput::tags): <p>The tags for the registry.</p>
    /// - On failure, responds with [`SdkError<CreateRegistryError>`](crate::error::CreateRegistryError)
    pub fn create_registry(&self) -> fluent_builders::CreateRegistry {
        fluent_builders::CreateRegistry::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`CreateSchema`](crate::client::fluent_builders::CreateSchema) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`registry_id(RegistryId)`](crate::client::fluent_builders::CreateSchema::registry_id) / [`set_registry_id(Option<RegistryId>)`](crate::client::fluent_builders::CreateSchema::set_registry_id): <p> This is a wrapper shape to contain the registry identity fields. If this is not provided, the default registry will be used. The ARN format for the same will be: <code>arn:aws:glue:us-east-2:   <customer id>    :registry/default-registry:random-5-letter-id   </customer></code>.</p>
    ///   - [`schema_name(impl Into<String>)`](crate::client::fluent_builders::CreateSchema::schema_name) / [`set_schema_name(Option<String>)`](crate::client::fluent_builders::CreateSchema::set_schema_name): <p>Name of the schema to be created of max length of 255, and may only contain letters, numbers, hyphen, underscore, dollar sign, or hash mark. No whitespace.</p>
    ///   - [`data_format(DataFormat)`](crate::client::fluent_builders::CreateSchema::data_format) / [`set_data_format(Option<DataFormat>)`](crate::client::fluent_builders::CreateSchema::set_data_format): <p>The data format of the schema definition. Currently <code>AVRO</code>, <code>JSON</code> and <code>PROTOBUF</code> are supported.</p>
    ///   - [`compatibility(Compatibility)`](crate::client::fluent_builders::CreateSchema::compatibility) / [`set_compatibility(Option<Compatibility>)`](crate::client::fluent_builders::CreateSchema::set_compatibility): <p>The compatibility mode of the schema. The possible values are:</p>  <ul>   <li> <p> <i>NONE</i>: No compatibility mode applies. You can use this choice in development scenarios or if you do not know the compatibility mode that you want to apply to schemas. Any new version added will be accepted without undergoing a compatibility check.</p> </li>   <li> <p> <i>DISABLED</i>: This compatibility choice prevents versioning for a particular schema. You can use this choice to prevent future versioning of a schema.</p> </li>   <li> <p> <i>BACKWARD</i>: This compatibility choice is recommended as it allows data receivers to read both the current and one previous schema version. This means that for instance, a new schema version cannot drop data fields or change the type of these fields, so they can't be read by readers using the previous version.</p> </li>   <li> <p> <i>BACKWARD_ALL</i>: This compatibility choice allows data receivers to read both the current and all previous schema versions. You can use this choice when you need to delete fields or add optional fields, and check compatibility against all previous schema versions. </p> </li>   <li> <p> <i>FORWARD</i>: This compatibility choice allows data receivers to read both the current and one next schema version, but not necessarily later versions. You can use this choice when you need to add fields or delete optional fields, but only check compatibility against the last schema version.</p> </li>   <li> <p> <i>FORWARD_ALL</i>: This compatibility choice allows data receivers to read written by producers of any new registered schema. You can use this choice when you need to add fields or delete optional fields, and check compatibility against all previous schema versions.</p> </li>   <li> <p> <i>FULL</i>: This compatibility choice allows data receivers to read data written by producers using the previous or next version of the schema, but not necessarily earlier or later versions. You can use this choice when you need to add or remove optional fields, but only check compatibility against the last schema version.</p> </li>   <li> <p> <i>FULL_ALL</i>: This compatibility choice allows data receivers to read data written by producers using all previous schema versions. You can use this choice when you need to add or remove optional fields, and check compatibility against all previous schema versions.</p> </li>  </ul>
    ///   - [`description(impl Into<String>)`](crate::client::fluent_builders::CreateSchema::description) / [`set_description(Option<String>)`](crate::client::fluent_builders::CreateSchema::set_description): <p>An optional description of the schema. If description is not provided, there will not be any automatic default value for this.</p>
    ///   - [`tags(HashMap<String, String>)`](crate::client::fluent_builders::CreateSchema::tags) / [`set_tags(Option<HashMap<String, String>>)`](crate::client::fluent_builders::CreateSchema::set_tags): <p>Amazon Web Services tags that contain a key value pair and may be searched by console, command line, or API. If specified, follows the Amazon Web Services tags-on-create pattern.</p>
    ///   - [`schema_definition(impl Into<String>)`](crate::client::fluent_builders::CreateSchema::schema_definition) / [`set_schema_definition(Option<String>)`](crate::client::fluent_builders::CreateSchema::set_schema_definition): <p>The schema definition using the <code>DataFormat</code> setting for <code>SchemaName</code>.</p>
    /// - On success, responds with [`CreateSchemaOutput`](crate::output::CreateSchemaOutput) with field(s):
    ///   - [`registry_name(Option<String>)`](crate::output::CreateSchemaOutput::registry_name): <p>The name of the registry.</p>
    ///   - [`registry_arn(Option<String>)`](crate::output::CreateSchemaOutput::registry_arn): <p>The Amazon Resource Name (ARN) of the registry.</p>
    ///   - [`schema_name(Option<String>)`](crate::output::CreateSchemaOutput::schema_name): <p>The name of the schema.</p>
    ///   - [`schema_arn(Option<String>)`](crate::output::CreateSchemaOutput::schema_arn): <p>The Amazon Resource Name (ARN) of the schema.</p>
    ///   - [`description(Option<String>)`](crate::output::CreateSchemaOutput::description): <p>A description of the schema if specified when created.</p>
    ///   - [`data_format(Option<DataFormat>)`](crate::output::CreateSchemaOutput::data_format): <p>The data format of the schema definition. Currently <code>AVRO</code>, <code>JSON</code> and <code>PROTOBUF</code> are supported.</p>
    ///   - [`compatibility(Option<Compatibility>)`](crate::output::CreateSchemaOutput::compatibility): <p>The schema compatibility mode.</p>
    ///   - [`schema_checkpoint(i64)`](crate::output::CreateSchemaOutput::schema_checkpoint): <p>The version number of the checkpoint (the last time the compatibility mode was changed).</p>
    ///   - [`latest_schema_version(i64)`](crate::output::CreateSchemaOutput::latest_schema_version): <p>The latest version of the schema associated with the returned schema definition.</p>
    ///   - [`next_schema_version(i64)`](crate::output::CreateSchemaOutput::next_schema_version): <p>The next version of the schema associated with the returned schema definition.</p>
    ///   - [`schema_status(Option<SchemaStatus>)`](crate::output::CreateSchemaOutput::schema_status): <p>The status of the schema. </p>
    ///   - [`tags(Option<HashMap<String, String>>)`](crate::output::CreateSchemaOutput::tags): <p>The tags for the schema.</p>
    ///   - [`schema_version_id(Option<String>)`](crate::output::CreateSchemaOutput::schema_version_id): <p>The unique identifier of the first schema version.</p>
    ///   - [`schema_version_status(Option<SchemaVersionStatus>)`](crate::output::CreateSchemaOutput::schema_version_status): <p>The status of the first schema version created.</p>
    /// - On failure, responds with [`SdkError<CreateSchemaError>`](crate::error::CreateSchemaError)
    pub fn create_schema(&self) -> fluent_builders::CreateSchema {
        fluent_builders::CreateSchema::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`CreateScript`](crate::client::fluent_builders::CreateScript) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`dag_nodes(Vec<CodeGenNode>)`](crate::client::fluent_builders::CreateScript::dag_nodes) / [`set_dag_nodes(Option<Vec<CodeGenNode>>)`](crate::client::fluent_builders::CreateScript::set_dag_nodes): <p>A list of the nodes in the DAG.</p>
    ///   - [`dag_edges(Vec<CodeGenEdge>)`](crate::client::fluent_builders::CreateScript::dag_edges) / [`set_dag_edges(Option<Vec<CodeGenEdge>>)`](crate::client::fluent_builders::CreateScript::set_dag_edges): <p>A list of the edges in the DAG.</p>
    ///   - [`language(Language)`](crate::client::fluent_builders::CreateScript::language) / [`set_language(Option<Language>)`](crate::client::fluent_builders::CreateScript::set_language): <p>The programming language of the resulting code from the DAG.</p>
    /// - On success, responds with [`CreateScriptOutput`](crate::output::CreateScriptOutput) with field(s):
    ///   - [`python_script(Option<String>)`](crate::output::CreateScriptOutput::python_script): <p>The Python script generated from the DAG.</p>
    ///   - [`scala_code(Option<String>)`](crate::output::CreateScriptOutput::scala_code): <p>The Scala code generated from the DAG.</p>
    /// - On failure, responds with [`SdkError<CreateScriptError>`](crate::error::CreateScriptError)
    pub fn create_script(&self) -> fluent_builders::CreateScript {
        fluent_builders::CreateScript::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`CreateSecurityConfiguration`](crate::client::fluent_builders::CreateSecurityConfiguration) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::CreateSecurityConfiguration::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::CreateSecurityConfiguration::set_name): <p>The name for the new security configuration.</p>
    ///   - [`encryption_configuration(EncryptionConfiguration)`](crate::client::fluent_builders::CreateSecurityConfiguration::encryption_configuration) / [`set_encryption_configuration(Option<EncryptionConfiguration>)`](crate::client::fluent_builders::CreateSecurityConfiguration::set_encryption_configuration): <p>The encryption configuration for the new security configuration.</p>
    /// - On success, responds with [`CreateSecurityConfigurationOutput`](crate::output::CreateSecurityConfigurationOutput) with field(s):
    ///   - [`name(Option<String>)`](crate::output::CreateSecurityConfigurationOutput::name): <p>The name assigned to the new security configuration.</p>
    ///   - [`created_timestamp(Option<DateTime>)`](crate::output::CreateSecurityConfigurationOutput::created_timestamp): <p>The time at which the new security configuration was created.</p>
    /// - On failure, responds with [`SdkError<CreateSecurityConfigurationError>`](crate::error::CreateSecurityConfigurationError)
    pub fn create_security_configuration(&self) -> fluent_builders::CreateSecurityConfiguration {
        fluent_builders::CreateSecurityConfiguration::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`CreateSession`](crate::client::fluent_builders::CreateSession) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`id(impl Into<String>)`](crate::client::fluent_builders::CreateSession::id) / [`set_id(Option<String>)`](crate::client::fluent_builders::CreateSession::set_id): <p>The ID of the session request. </p>
    ///   - [`description(impl Into<String>)`](crate::client::fluent_builders::CreateSession::description) / [`set_description(Option<String>)`](crate::client::fluent_builders::CreateSession::set_description): <p>The description of the session. </p>
    ///   - [`role(impl Into<String>)`](crate::client::fluent_builders::CreateSession::role) / [`set_role(Option<String>)`](crate::client::fluent_builders::CreateSession::set_role): <p>The IAM Role ARN </p>
    ///   - [`command(SessionCommand)`](crate::client::fluent_builders::CreateSession::command) / [`set_command(Option<SessionCommand>)`](crate::client::fluent_builders::CreateSession::set_command): <p>The <code>SessionCommand</code> that runs the job. </p>
    ///   - [`timeout(i32)`](crate::client::fluent_builders::CreateSession::timeout) / [`set_timeout(Option<i32>)`](crate::client::fluent_builders::CreateSession::set_timeout): <p>The number of seconds before request times out. </p>
    ///   - [`idle_timeout(i32)`](crate::client::fluent_builders::CreateSession::idle_timeout) / [`set_idle_timeout(Option<i32>)`](crate::client::fluent_builders::CreateSession::set_idle_timeout): <p>The number of seconds when idle before request times out. </p>
    ///   - [`default_arguments(HashMap<String, String>)`](crate::client::fluent_builders::CreateSession::default_arguments) / [`set_default_arguments(Option<HashMap<String, String>>)`](crate::client::fluent_builders::CreateSession::set_default_arguments): <p>A map array of key-value pairs. Max is 75 pairs. </p>
    ///   - [`connections(ConnectionsList)`](crate::client::fluent_builders::CreateSession::connections) / [`set_connections(Option<ConnectionsList>)`](crate::client::fluent_builders::CreateSession::set_connections): <p>The number of connections to use for the session. </p>
    ///   - [`max_capacity(f64)`](crate::client::fluent_builders::CreateSession::max_capacity) / [`set_max_capacity(Option<f64>)`](crate::client::fluent_builders::CreateSession::set_max_capacity): <p>The number of Glue data processing units (DPUs) that can be allocated when the job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB memory. </p>
    ///   - [`number_of_workers(i32)`](crate::client::fluent_builders::CreateSession::number_of_workers) / [`set_number_of_workers(Option<i32>)`](crate::client::fluent_builders::CreateSession::set_number_of_workers): <p>The number of workers of a defined <code>WorkerType</code> to use for the session. </p>
    ///   - [`worker_type(WorkerType)`](crate::client::fluent_builders::CreateSession::worker_type) / [`set_worker_type(Option<WorkerType>)`](crate::client::fluent_builders::CreateSession::set_worker_type): <p>The type of predefined worker that is allocated to use for the session. Accepts a value of Standard, G.1X, G.2X, or G.025X.</p>  <ul>   <li> <p>For the <code>Standard</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.</p> </li>   <li> <p>For the <code>G.1X</code> worker type, each worker maps to 1 DPU (4 vCPU, 16 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs.</p> </li>   <li> <p>For the <code>G.2X</code> worker type, each worker maps to 2 DPU (8 vCPU, 32 GB of memory, 128 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs.</p> </li>   <li> <p>For the <code>G.025X</code> worker type, each worker maps to 0.25 DPU (2 vCPU, 4 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for low volume streaming jobs. This worker type is only available for Glue version 3.0 streaming jobs.</p> </li>  </ul>
    ///   - [`security_configuration(impl Into<String>)`](crate::client::fluent_builders::CreateSession::security_configuration) / [`set_security_configuration(Option<String>)`](crate::client::fluent_builders::CreateSession::set_security_configuration): <p>The name of the SecurityConfiguration structure to be used with the session </p>
    ///   - [`glue_version(impl Into<String>)`](crate::client::fluent_builders::CreateSession::glue_version) / [`set_glue_version(Option<String>)`](crate::client::fluent_builders::CreateSession::set_glue_version): <p>The Glue version determines the versions of Apache Spark and Python that Glue supports. The GlueVersion must be greater than 2.0. </p>
    ///   - [`tags(HashMap<String, String>)`](crate::client::fluent_builders::CreateSession::tags) / [`set_tags(Option<HashMap<String, String>>)`](crate::client::fluent_builders::CreateSession::set_tags): <p>The map of key value pairs (tags) belonging to the session.</p>
    ///   - [`request_origin(impl Into<String>)`](crate::client::fluent_builders::CreateSession::request_origin) / [`set_request_origin(Option<String>)`](crate::client::fluent_builders::CreateSession::set_request_origin): <p>The origin of the request. </p>
    /// - On success, responds with [`CreateSessionOutput`](crate::output::CreateSessionOutput) with field(s):
    ///   - [`session(Option<Session>)`](crate::output::CreateSessionOutput::session): <p>Returns the session object in the response.</p>
    /// - On failure, responds with [`SdkError<CreateSessionError>`](crate::error::CreateSessionError)
    pub fn create_session(&self) -> fluent_builders::CreateSession {
        fluent_builders::CreateSession::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`CreateTable`](crate::client::fluent_builders::CreateTable) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::CreateTable::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::CreateTable::set_catalog_id): <p>The ID of the Data Catalog in which to create the <code>Table</code>. If none is supplied, the Amazon Web Services account ID is used by default.</p>
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::CreateTable::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::CreateTable::set_database_name): <p>The catalog database in which to create the new table. For Hive compatibility, this name is entirely lowercase.</p>
    ///   - [`table_input(TableInput)`](crate::client::fluent_builders::CreateTable::table_input) / [`set_table_input(Option<TableInput>)`](crate::client::fluent_builders::CreateTable::set_table_input): <p>The <code>TableInput</code> object that defines the metadata table to create in the catalog.</p>
    ///   - [`partition_indexes(Vec<PartitionIndex>)`](crate::client::fluent_builders::CreateTable::partition_indexes) / [`set_partition_indexes(Option<Vec<PartitionIndex>>)`](crate::client::fluent_builders::CreateTable::set_partition_indexes): <p>A list of partition indexes, <code>PartitionIndex</code> structures, to create in the table.</p>
    ///   - [`transaction_id(impl Into<String>)`](crate::client::fluent_builders::CreateTable::transaction_id) / [`set_transaction_id(Option<String>)`](crate::client::fluent_builders::CreateTable::set_transaction_id): <p>The ID of the transaction.</p>
    /// - On success, responds with [`CreateTableOutput`](crate::output::CreateTableOutput)

    /// - On failure, responds with [`SdkError<CreateTableError>`](crate::error::CreateTableError)
    pub fn create_table(&self) -> fluent_builders::CreateTable {
        fluent_builders::CreateTable::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`CreateTrigger`](crate::client::fluent_builders::CreateTrigger) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::CreateTrigger::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::CreateTrigger::set_name): <p>The name of the trigger.</p>
    ///   - [`workflow_name(impl Into<String>)`](crate::client::fluent_builders::CreateTrigger::workflow_name) / [`set_workflow_name(Option<String>)`](crate::client::fluent_builders::CreateTrigger::set_workflow_name): <p>The name of the workflow associated with the trigger.</p>
    ///   - [`r#type(TriggerType)`](crate::client::fluent_builders::CreateTrigger::type) / [`set_type(Option<TriggerType>)`](crate::client::fluent_builders::CreateTrigger::set_type): <p>The type of the new trigger.</p>
    ///   - [`schedule(impl Into<String>)`](crate::client::fluent_builders::CreateTrigger::schedule) / [`set_schedule(Option<String>)`](crate::client::fluent_builders::CreateTrigger::set_schedule): <p>A <code>cron</code> expression used to specify the schedule (see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html">Time-Based Schedules for Jobs and Crawlers</a>. For example, to run something every day at 12:15 UTC, you would specify: <code>cron(15 12 * * ? *)</code>.</p>  <p>This field is required when the trigger type is SCHEDULED.</p>
    ///   - [`predicate(Predicate)`](crate::client::fluent_builders::CreateTrigger::predicate) / [`set_predicate(Option<Predicate>)`](crate::client::fluent_builders::CreateTrigger::set_predicate): <p>A predicate to specify when the new trigger should fire.</p>  <p>This field is required when the trigger type is <code>CONDITIONAL</code>.</p>
    ///   - [`actions(Vec<Action>)`](crate::client::fluent_builders::CreateTrigger::actions) / [`set_actions(Option<Vec<Action>>)`](crate::client::fluent_builders::CreateTrigger::set_actions): <p>The actions initiated by this trigger when it fires.</p>
    ///   - [`description(impl Into<String>)`](crate::client::fluent_builders::CreateTrigger::description) / [`set_description(Option<String>)`](crate::client::fluent_builders::CreateTrigger::set_description): <p>A description of the new trigger.</p>
    ///   - [`start_on_creation(bool)`](crate::client::fluent_builders::CreateTrigger::start_on_creation) / [`set_start_on_creation(bool)`](crate::client::fluent_builders::CreateTrigger::set_start_on_creation): <p>Set to <code>true</code> to start <code>SCHEDULED</code> and <code>CONDITIONAL</code> triggers when created. True is not supported for <code>ON_DEMAND</code> triggers.</p>
    ///   - [`tags(HashMap<String, String>)`](crate::client::fluent_builders::CreateTrigger::tags) / [`set_tags(Option<HashMap<String, String>>)`](crate::client::fluent_builders::CreateTrigger::set_tags): <p>The tags to use with this trigger. You may use tags to limit access to the trigger. For more information about tags in Glue, see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html">Amazon Web Services Tags in Glue</a> in the developer guide. </p>
    ///   - [`event_batching_condition(EventBatchingCondition)`](crate::client::fluent_builders::CreateTrigger::event_batching_condition) / [`set_event_batching_condition(Option<EventBatchingCondition>)`](crate::client::fluent_builders::CreateTrigger::set_event_batching_condition): <p>Batch condition that must be met (specified number of events received or batch time window expired) before EventBridge event trigger fires.</p>
    /// - On success, responds with [`CreateTriggerOutput`](crate::output::CreateTriggerOutput) with field(s):
    ///   - [`name(Option<String>)`](crate::output::CreateTriggerOutput::name): <p>The name of the trigger.</p>
    /// - On failure, responds with [`SdkError<CreateTriggerError>`](crate::error::CreateTriggerError)
    pub fn create_trigger(&self) -> fluent_builders::CreateTrigger {
        fluent_builders::CreateTrigger::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`CreateUserDefinedFunction`](crate::client::fluent_builders::CreateUserDefinedFunction) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::CreateUserDefinedFunction::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::CreateUserDefinedFunction::set_catalog_id): <p>The ID of the Data Catalog in which to create the function. If none is provided, the Amazon Web Services account ID is used by default.</p>
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::CreateUserDefinedFunction::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::CreateUserDefinedFunction::set_database_name): <p>The name of the catalog database in which to create the function.</p>
    ///   - [`function_input(UserDefinedFunctionInput)`](crate::client::fluent_builders::CreateUserDefinedFunction::function_input) / [`set_function_input(Option<UserDefinedFunctionInput>)`](crate::client::fluent_builders::CreateUserDefinedFunction::set_function_input): <p>A <code>FunctionInput</code> object that defines the function to create in the Data Catalog.</p>
    /// - On success, responds with [`CreateUserDefinedFunctionOutput`](crate::output::CreateUserDefinedFunctionOutput)

    /// - On failure, responds with [`SdkError<CreateUserDefinedFunctionError>`](crate::error::CreateUserDefinedFunctionError)
    pub fn create_user_defined_function(&self) -> fluent_builders::CreateUserDefinedFunction {
        fluent_builders::CreateUserDefinedFunction::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`CreateWorkflow`](crate::client::fluent_builders::CreateWorkflow) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::CreateWorkflow::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::CreateWorkflow::set_name): <p>The name to be assigned to the workflow. It should be unique within your account.</p>
    ///   - [`description(impl Into<String>)`](crate::client::fluent_builders::CreateWorkflow::description) / [`set_description(Option<String>)`](crate::client::fluent_builders::CreateWorkflow::set_description): <p>A description of the workflow.</p>
    ///   - [`default_run_properties(HashMap<String, String>)`](crate::client::fluent_builders::CreateWorkflow::default_run_properties) / [`set_default_run_properties(Option<HashMap<String, String>>)`](crate::client::fluent_builders::CreateWorkflow::set_default_run_properties): <p>A collection of properties to be used as part of each execution of the workflow.</p>
    ///   - [`tags(HashMap<String, String>)`](crate::client::fluent_builders::CreateWorkflow::tags) / [`set_tags(Option<HashMap<String, String>>)`](crate::client::fluent_builders::CreateWorkflow::set_tags): <p>The tags to be used with this workflow.</p>
    ///   - [`max_concurrent_runs(i32)`](crate::client::fluent_builders::CreateWorkflow::max_concurrent_runs) / [`set_max_concurrent_runs(Option<i32>)`](crate::client::fluent_builders::CreateWorkflow::set_max_concurrent_runs): <p>You can use this parameter to prevent unwanted multiple updates to data, to control costs, or in some cases, to prevent exceeding the maximum number of concurrent runs of any of the component jobs. If you leave this parameter blank, there is no limit to the number of concurrent workflow runs.</p>
    /// - On success, responds with [`CreateWorkflowOutput`](crate::output::CreateWorkflowOutput) with field(s):
    ///   - [`name(Option<String>)`](crate::output::CreateWorkflowOutput::name): <p>The name of the workflow which was provided as part of the request.</p>
    /// - On failure, responds with [`SdkError<CreateWorkflowError>`](crate::error::CreateWorkflowError)
    pub fn create_workflow(&self) -> fluent_builders::CreateWorkflow {
        fluent_builders::CreateWorkflow::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`DeleteBlueprint`](crate::client::fluent_builders::DeleteBlueprint) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::DeleteBlueprint::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::DeleteBlueprint::set_name): <p>The name of the blueprint to delete.</p>
    /// - On success, responds with [`DeleteBlueprintOutput`](crate::output::DeleteBlueprintOutput) with field(s):
    ///   - [`name(Option<String>)`](crate::output::DeleteBlueprintOutput::name): <p>Returns the name of the blueprint that was deleted.</p>
    /// - On failure, responds with [`SdkError<DeleteBlueprintError>`](crate::error::DeleteBlueprintError)
    pub fn delete_blueprint(&self) -> fluent_builders::DeleteBlueprint {
        fluent_builders::DeleteBlueprint::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`DeleteClassifier`](crate::client::fluent_builders::DeleteClassifier) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::DeleteClassifier::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::DeleteClassifier::set_name): <p>Name of the classifier to remove.</p>
    /// - On success, responds with [`DeleteClassifierOutput`](crate::output::DeleteClassifierOutput)

    /// - On failure, responds with [`SdkError<DeleteClassifierError>`](crate::error::DeleteClassifierError)
    pub fn delete_classifier(&self) -> fluent_builders::DeleteClassifier {
        fluent_builders::DeleteClassifier::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`DeleteColumnStatisticsForPartition`](crate::client::fluent_builders::DeleteColumnStatisticsForPartition) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::DeleteColumnStatisticsForPartition::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::DeleteColumnStatisticsForPartition::set_catalog_id): <p>The ID of the Data Catalog where the partitions in question reside. If none is supplied, the Amazon Web Services account ID is used by default.</p>
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::DeleteColumnStatisticsForPartition::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::DeleteColumnStatisticsForPartition::set_database_name): <p>The name of the catalog database where the partitions reside.</p>
    ///   - [`table_name(impl Into<String>)`](crate::client::fluent_builders::DeleteColumnStatisticsForPartition::table_name) / [`set_table_name(Option<String>)`](crate::client::fluent_builders::DeleteColumnStatisticsForPartition::set_table_name): <p>The name of the partitions' table.</p>
    ///   - [`partition_values(Vec<String>)`](crate::client::fluent_builders::DeleteColumnStatisticsForPartition::partition_values) / [`set_partition_values(Option<Vec<String>>)`](crate::client::fluent_builders::DeleteColumnStatisticsForPartition::set_partition_values): <p>A list of partition values identifying the partition.</p>
    ///   - [`column_name(impl Into<String>)`](crate::client::fluent_builders::DeleteColumnStatisticsForPartition::column_name) / [`set_column_name(Option<String>)`](crate::client::fluent_builders::DeleteColumnStatisticsForPartition::set_column_name): <p>Name of the column.</p>
    /// - On success, responds with [`DeleteColumnStatisticsForPartitionOutput`](crate::output::DeleteColumnStatisticsForPartitionOutput)

    /// - On failure, responds with [`SdkError<DeleteColumnStatisticsForPartitionError>`](crate::error::DeleteColumnStatisticsForPartitionError)
    pub fn delete_column_statistics_for_partition(
        &self,
    ) -> fluent_builders::DeleteColumnStatisticsForPartition {
        fluent_builders::DeleteColumnStatisticsForPartition::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`DeleteColumnStatisticsForTable`](crate::client::fluent_builders::DeleteColumnStatisticsForTable) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::DeleteColumnStatisticsForTable::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::DeleteColumnStatisticsForTable::set_catalog_id): <p>The ID of the Data Catalog where the partitions in question reside. If none is supplied, the Amazon Web Services account ID is used by default.</p>
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::DeleteColumnStatisticsForTable::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::DeleteColumnStatisticsForTable::set_database_name): <p>The name of the catalog database where the partitions reside.</p>
    ///   - [`table_name(impl Into<String>)`](crate::client::fluent_builders::DeleteColumnStatisticsForTable::table_name) / [`set_table_name(Option<String>)`](crate::client::fluent_builders::DeleteColumnStatisticsForTable::set_table_name): <p>The name of the partitions' table.</p>
    ///   - [`column_name(impl Into<String>)`](crate::client::fluent_builders::DeleteColumnStatisticsForTable::column_name) / [`set_column_name(Option<String>)`](crate::client::fluent_builders::DeleteColumnStatisticsForTable::set_column_name): <p>The name of the column.</p>
    /// - On success, responds with [`DeleteColumnStatisticsForTableOutput`](crate::output::DeleteColumnStatisticsForTableOutput)

    /// - On failure, responds with [`SdkError<DeleteColumnStatisticsForTableError>`](crate::error::DeleteColumnStatisticsForTableError)
    pub fn delete_column_statistics_for_table(
        &self,
    ) -> fluent_builders::DeleteColumnStatisticsForTable {
        fluent_builders::DeleteColumnStatisticsForTable::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`DeleteConnection`](crate::client::fluent_builders::DeleteConnection) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::DeleteConnection::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::DeleteConnection::set_catalog_id): <p>The ID of the Data Catalog in which the connection resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
    ///   - [`connection_name(impl Into<String>)`](crate::client::fluent_builders::DeleteConnection::connection_name) / [`set_connection_name(Option<String>)`](crate::client::fluent_builders::DeleteConnection::set_connection_name): <p>The name of the connection to delete.</p>
    /// - On success, responds with [`DeleteConnectionOutput`](crate::output::DeleteConnectionOutput)

    /// - On failure, responds with [`SdkError<DeleteConnectionError>`](crate::error::DeleteConnectionError)
    pub fn delete_connection(&self) -> fluent_builders::DeleteConnection {
        fluent_builders::DeleteConnection::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`DeleteCrawler`](crate::client::fluent_builders::DeleteCrawler) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::DeleteCrawler::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::DeleteCrawler::set_name): <p>The name of the crawler to remove.</p>
    /// - On success, responds with [`DeleteCrawlerOutput`](crate::output::DeleteCrawlerOutput)

    /// - On failure, responds with [`SdkError<DeleteCrawlerError>`](crate::error::DeleteCrawlerError)
    pub fn delete_crawler(&self) -> fluent_builders::DeleteCrawler {
        fluent_builders::DeleteCrawler::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`DeleteCustomEntityType`](crate::client::fluent_builders::DeleteCustomEntityType) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::DeleteCustomEntityType::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::DeleteCustomEntityType::set_name): <p>The name of the custom pattern that you want to delete.</p>
    /// - On success, responds with [`DeleteCustomEntityTypeOutput`](crate::output::DeleteCustomEntityTypeOutput) with field(s):
    ///   - [`name(Option<String>)`](crate::output::DeleteCustomEntityTypeOutput::name): <p>The name of the custom pattern you deleted.</p>
    /// - On failure, responds with [`SdkError<DeleteCustomEntityTypeError>`](crate::error::DeleteCustomEntityTypeError)
    pub fn delete_custom_entity_type(&self) -> fluent_builders::DeleteCustomEntityType {
        fluent_builders::DeleteCustomEntityType::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`DeleteDatabase`](crate::client::fluent_builders::DeleteDatabase) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::DeleteDatabase::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::DeleteDatabase::set_catalog_id): <p>The ID of the Data Catalog in which the database resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::DeleteDatabase::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::DeleteDatabase::set_name): <p>The name of the database to delete. For Hive compatibility, this must be all lowercase.</p>
    /// - On success, responds with [`DeleteDatabaseOutput`](crate::output::DeleteDatabaseOutput)

    /// - On failure, responds with [`SdkError<DeleteDatabaseError>`](crate::error::DeleteDatabaseError)
    pub fn delete_database(&self) -> fluent_builders::DeleteDatabase {
        fluent_builders::DeleteDatabase::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`DeleteDataQualityRuleset`](crate::client::fluent_builders::DeleteDataQualityRuleset) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::DeleteDataQualityRuleset::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::DeleteDataQualityRuleset::set_name): <p>A name for the data quality ruleset.</p>
    /// - On success, responds with [`DeleteDataQualityRulesetOutput`](crate::output::DeleteDataQualityRulesetOutput)

    /// - On failure, responds with [`SdkError<DeleteDataQualityRulesetError>`](crate::error::DeleteDataQualityRulesetError)
    pub fn delete_data_quality_ruleset(&self) -> fluent_builders::DeleteDataQualityRuleset {
        fluent_builders::DeleteDataQualityRuleset::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`DeleteDevEndpoint`](crate::client::fluent_builders::DeleteDevEndpoint) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`endpoint_name(impl Into<String>)`](crate::client::fluent_builders::DeleteDevEndpoint::endpoint_name) / [`set_endpoint_name(Option<String>)`](crate::client::fluent_builders::DeleteDevEndpoint::set_endpoint_name): <p>The name of the <code>DevEndpoint</code>.</p>
    /// - On success, responds with [`DeleteDevEndpointOutput`](crate::output::DeleteDevEndpointOutput)

    /// - On failure, responds with [`SdkError<DeleteDevEndpointError>`](crate::error::DeleteDevEndpointError)
    pub fn delete_dev_endpoint(&self) -> fluent_builders::DeleteDevEndpoint {
        fluent_builders::DeleteDevEndpoint::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`DeleteJob`](crate::client::fluent_builders::DeleteJob) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`job_name(impl Into<String>)`](crate::client::fluent_builders::DeleteJob::job_name) / [`set_job_name(Option<String>)`](crate::client::fluent_builders::DeleteJob::set_job_name): <p>The name of the job definition to delete.</p>
    /// - On success, responds with [`DeleteJobOutput`](crate::output::DeleteJobOutput) with field(s):
    ///   - [`job_name(Option<String>)`](crate::output::DeleteJobOutput::job_name): <p>The name of the job definition that was deleted.</p>
    /// - On failure, responds with [`SdkError<DeleteJobError>`](crate::error::DeleteJobError)
    pub fn delete_job(&self) -> fluent_builders::DeleteJob {
        fluent_builders::DeleteJob::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`DeleteMLTransform`](crate::client::fluent_builders::DeleteMLTransform) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`transform_id(impl Into<String>)`](crate::client::fluent_builders::DeleteMLTransform::transform_id) / [`set_transform_id(Option<String>)`](crate::client::fluent_builders::DeleteMLTransform::set_transform_id): <p>The unique identifier of the transform to delete.</p>
    /// - On success, responds with [`DeleteMlTransformOutput`](crate::output::DeleteMlTransformOutput) with field(s):
    ///   - [`transform_id(Option<String>)`](crate::output::DeleteMlTransformOutput::transform_id): <p>The unique identifier of the transform that was deleted.</p>
    /// - On failure, responds with [`SdkError<DeleteMLTransformError>`](crate::error::DeleteMLTransformError)
    pub fn delete_ml_transform(&self) -> fluent_builders::DeleteMLTransform {
        fluent_builders::DeleteMLTransform::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`DeletePartition`](crate::client::fluent_builders::DeletePartition) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::DeletePartition::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::DeletePartition::set_catalog_id): <p>The ID of the Data Catalog where the partition to be deleted resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::DeletePartition::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::DeletePartition::set_database_name): <p>The name of the catalog database in which the table in question resides.</p>
    ///   - [`table_name(impl Into<String>)`](crate::client::fluent_builders::DeletePartition::table_name) / [`set_table_name(Option<String>)`](crate::client::fluent_builders::DeletePartition::set_table_name): <p>The name of the table that contains the partition to be deleted.</p>
    ///   - [`partition_values(Vec<String>)`](crate::client::fluent_builders::DeletePartition::partition_values) / [`set_partition_values(Option<Vec<String>>)`](crate::client::fluent_builders::DeletePartition::set_partition_values): <p>The values that define the partition.</p>
    /// - On success, responds with [`DeletePartitionOutput`](crate::output::DeletePartitionOutput)

    /// - On failure, responds with [`SdkError<DeletePartitionError>`](crate::error::DeletePartitionError)
    pub fn delete_partition(&self) -> fluent_builders::DeletePartition {
        fluent_builders::DeletePartition::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`DeletePartitionIndex`](crate::client::fluent_builders::DeletePartitionIndex) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::DeletePartitionIndex::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::DeletePartitionIndex::set_catalog_id): <p>The catalog ID where the table resides.</p>
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::DeletePartitionIndex::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::DeletePartitionIndex::set_database_name): <p>Specifies the name of a database from which you want to delete a partition index.</p>
    ///   - [`table_name(impl Into<String>)`](crate::client::fluent_builders::DeletePartitionIndex::table_name) / [`set_table_name(Option<String>)`](crate::client::fluent_builders::DeletePartitionIndex::set_table_name): <p>Specifies the name of a table from which you want to delete a partition index.</p>
    ///   - [`index_name(impl Into<String>)`](crate::client::fluent_builders::DeletePartitionIndex::index_name) / [`set_index_name(Option<String>)`](crate::client::fluent_builders::DeletePartitionIndex::set_index_name): <p>The name of the partition index to be deleted.</p>
    /// - On success, responds with [`DeletePartitionIndexOutput`](crate::output::DeletePartitionIndexOutput)

    /// - On failure, responds with [`SdkError<DeletePartitionIndexError>`](crate::error::DeletePartitionIndexError)
    pub fn delete_partition_index(&self) -> fluent_builders::DeletePartitionIndex {
        fluent_builders::DeletePartitionIndex::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`DeleteRegistry`](crate::client::fluent_builders::DeleteRegistry) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`registry_id(RegistryId)`](crate::client::fluent_builders::DeleteRegistry::registry_id) / [`set_registry_id(Option<RegistryId>)`](crate::client::fluent_builders::DeleteRegistry::set_registry_id): <p>This is a wrapper structure that may contain the registry name and Amazon Resource Name (ARN).</p>
    /// - On success, responds with [`DeleteRegistryOutput`](crate::output::DeleteRegistryOutput) with field(s):
    ///   - [`registry_name(Option<String>)`](crate::output::DeleteRegistryOutput::registry_name): <p>The name of the registry being deleted.</p>
    ///   - [`registry_arn(Option<String>)`](crate::output::DeleteRegistryOutput::registry_arn): <p>The Amazon Resource Name (ARN) of the registry being deleted.</p>
    ///   - [`status(Option<RegistryStatus>)`](crate::output::DeleteRegistryOutput::status): <p>The status of the registry. A successful operation will return the <code>Deleting</code> status.</p>
    /// - On failure, responds with [`SdkError<DeleteRegistryError>`](crate::error::DeleteRegistryError)
    pub fn delete_registry(&self) -> fluent_builders::DeleteRegistry {
        fluent_builders::DeleteRegistry::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`DeleteResourcePolicy`](crate::client::fluent_builders::DeleteResourcePolicy) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`policy_hash_condition(impl Into<String>)`](crate::client::fluent_builders::DeleteResourcePolicy::policy_hash_condition) / [`set_policy_hash_condition(Option<String>)`](crate::client::fluent_builders::DeleteResourcePolicy::set_policy_hash_condition): <p>The hash value returned when this policy was set.</p>
    ///   - [`resource_arn(impl Into<String>)`](crate::client::fluent_builders::DeleteResourcePolicy::resource_arn) / [`set_resource_arn(Option<String>)`](crate::client::fluent_builders::DeleteResourcePolicy::set_resource_arn): <p>The ARN of the Glue resource for the resource policy to be deleted.</p>
    /// - On success, responds with [`DeleteResourcePolicyOutput`](crate::output::DeleteResourcePolicyOutput)

    /// - On failure, responds with [`SdkError<DeleteResourcePolicyError>`](crate::error::DeleteResourcePolicyError)
    pub fn delete_resource_policy(&self) -> fluent_builders::DeleteResourcePolicy {
        fluent_builders::DeleteResourcePolicy::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`DeleteSchema`](crate::client::fluent_builders::DeleteSchema) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`schema_id(SchemaId)`](crate::client::fluent_builders::DeleteSchema::schema_id) / [`set_schema_id(Option<SchemaId>)`](crate::client::fluent_builders::DeleteSchema::set_schema_id): <p>This is a wrapper structure that may contain the schema name and Amazon Resource Name (ARN).</p>
    /// - On success, responds with [`DeleteSchemaOutput`](crate::output::DeleteSchemaOutput) with field(s):
    ///   - [`schema_arn(Option<String>)`](crate::output::DeleteSchemaOutput::schema_arn): <p>The Amazon Resource Name (ARN) of the schema being deleted.</p>
    ///   - [`schema_name(Option<String>)`](crate::output::DeleteSchemaOutput::schema_name): <p>The name of the schema being deleted.</p>
    ///   - [`status(Option<SchemaStatus>)`](crate::output::DeleteSchemaOutput::status): <p>The status of the schema.</p>
    /// - On failure, responds with [`SdkError<DeleteSchemaError>`](crate::error::DeleteSchemaError)
    pub fn delete_schema(&self) -> fluent_builders::DeleteSchema {
        fluent_builders::DeleteSchema::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`DeleteSchemaVersions`](crate::client::fluent_builders::DeleteSchemaVersions) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`schema_id(SchemaId)`](crate::client::fluent_builders::DeleteSchemaVersions::schema_id) / [`set_schema_id(Option<SchemaId>)`](crate::client::fluent_builders::DeleteSchemaVersions::set_schema_id): <p>This is a wrapper structure that may contain the schema name and Amazon Resource Name (ARN).</p>
    ///   - [`versions(impl Into<String>)`](crate::client::fluent_builders::DeleteSchemaVersions::versions) / [`set_versions(Option<String>)`](crate::client::fluent_builders::DeleteSchemaVersions::set_versions): <p>A version range may be supplied which may be of the format:</p>  <ul>   <li> <p>a single version number, 5</p> </li>   <li> <p>a range, 5-8 : deletes versions 5, 6, 7, 8</p> </li>  </ul>
    /// - On success, responds with [`DeleteSchemaVersionsOutput`](crate::output::DeleteSchemaVersionsOutput) with field(s):
    ///   - [`schema_version_errors(Option<Vec<SchemaVersionErrorItem>>)`](crate::output::DeleteSchemaVersionsOutput::schema_version_errors): <p>A list of <code>SchemaVersionErrorItem</code> objects, each containing an error and schema version.</p>
    /// - On failure, responds with [`SdkError<DeleteSchemaVersionsError>`](crate::error::DeleteSchemaVersionsError)
    pub fn delete_schema_versions(&self) -> fluent_builders::DeleteSchemaVersions {
        fluent_builders::DeleteSchemaVersions::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`DeleteSecurityConfiguration`](crate::client::fluent_builders::DeleteSecurityConfiguration) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::DeleteSecurityConfiguration::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::DeleteSecurityConfiguration::set_name): <p>The name of the security configuration to delete.</p>
    /// - On success, responds with [`DeleteSecurityConfigurationOutput`](crate::output::DeleteSecurityConfigurationOutput)

    /// - On failure, responds with [`SdkError<DeleteSecurityConfigurationError>`](crate::error::DeleteSecurityConfigurationError)
    pub fn delete_security_configuration(&self) -> fluent_builders::DeleteSecurityConfiguration {
        fluent_builders::DeleteSecurityConfiguration::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`DeleteSession`](crate::client::fluent_builders::DeleteSession) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`id(impl Into<String>)`](crate::client::fluent_builders::DeleteSession::id) / [`set_id(Option<String>)`](crate::client::fluent_builders::DeleteSession::set_id): <p>The ID of the session to be deleted.</p>
    ///   - [`request_origin(impl Into<String>)`](crate::client::fluent_builders::DeleteSession::request_origin) / [`set_request_origin(Option<String>)`](crate::client::fluent_builders::DeleteSession::set_request_origin): <p>The name of the origin of the delete session request.</p>
    /// - On success, responds with [`DeleteSessionOutput`](crate::output::DeleteSessionOutput) with field(s):
    ///   - [`id(Option<String>)`](crate::output::DeleteSessionOutput::id): <p>Returns the ID of the deleted session.</p>
    /// - On failure, responds with [`SdkError<DeleteSessionError>`](crate::error::DeleteSessionError)
    pub fn delete_session(&self) -> fluent_builders::DeleteSession {
        fluent_builders::DeleteSession::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`DeleteTable`](crate::client::fluent_builders::DeleteTable) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::DeleteTable::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::DeleteTable::set_catalog_id): <p>The ID of the Data Catalog where the table resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::DeleteTable::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::DeleteTable::set_database_name): <p>The name of the catalog database in which the table resides. For Hive compatibility, this name is entirely lowercase.</p>
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::DeleteTable::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::DeleteTable::set_name): <p>The name of the table to be deleted. For Hive compatibility, this name is entirely lowercase.</p>
    ///   - [`transaction_id(impl Into<String>)`](crate::client::fluent_builders::DeleteTable::transaction_id) / [`set_transaction_id(Option<String>)`](crate::client::fluent_builders::DeleteTable::set_transaction_id): <p>The transaction ID at which to delete the table contents.</p>
    /// - On success, responds with [`DeleteTableOutput`](crate::output::DeleteTableOutput)

    /// - On failure, responds with [`SdkError<DeleteTableError>`](crate::error::DeleteTableError)
    pub fn delete_table(&self) -> fluent_builders::DeleteTable {
        fluent_builders::DeleteTable::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`DeleteTableVersion`](crate::client::fluent_builders::DeleteTableVersion) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::DeleteTableVersion::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::DeleteTableVersion::set_catalog_id): <p>The ID of the Data Catalog where the tables reside. If none is provided, the Amazon Web Services account ID is used by default.</p>
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::DeleteTableVersion::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::DeleteTableVersion::set_database_name): <p>The database in the catalog in which the table resides. For Hive compatibility, this name is entirely lowercase.</p>
    ///   - [`table_name(impl Into<String>)`](crate::client::fluent_builders::DeleteTableVersion::table_name) / [`set_table_name(Option<String>)`](crate::client::fluent_builders::DeleteTableVersion::set_table_name): <p>The name of the table. For Hive compatibility, this name is entirely lowercase.</p>
    ///   - [`version_id(impl Into<String>)`](crate::client::fluent_builders::DeleteTableVersion::version_id) / [`set_version_id(Option<String>)`](crate::client::fluent_builders::DeleteTableVersion::set_version_id): <p>The ID of the table version to be deleted. A <code>VersionID</code> is a string representation of an integer. Each version is incremented by 1.</p>
    /// - On success, responds with [`DeleteTableVersionOutput`](crate::output::DeleteTableVersionOutput)

    /// - On failure, responds with [`SdkError<DeleteTableVersionError>`](crate::error::DeleteTableVersionError)
    pub fn delete_table_version(&self) -> fluent_builders::DeleteTableVersion {
        fluent_builders::DeleteTableVersion::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`DeleteTrigger`](crate::client::fluent_builders::DeleteTrigger) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::DeleteTrigger::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::DeleteTrigger::set_name): <p>The name of the trigger to delete.</p>
    /// - On success, responds with [`DeleteTriggerOutput`](crate::output::DeleteTriggerOutput) with field(s):
    ///   - [`name(Option<String>)`](crate::output::DeleteTriggerOutput::name): <p>The name of the trigger that was deleted.</p>
    /// - On failure, responds with [`SdkError<DeleteTriggerError>`](crate::error::DeleteTriggerError)
    pub fn delete_trigger(&self) -> fluent_builders::DeleteTrigger {
        fluent_builders::DeleteTrigger::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`DeleteUserDefinedFunction`](crate::client::fluent_builders::DeleteUserDefinedFunction) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::DeleteUserDefinedFunction::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::DeleteUserDefinedFunction::set_catalog_id): <p>The ID of the Data Catalog where the function to be deleted is located. If none is supplied, the Amazon Web Services account ID is used by default.</p>
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::DeleteUserDefinedFunction::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::DeleteUserDefinedFunction::set_database_name): <p>The name of the catalog database where the function is located.</p>
    ///   - [`function_name(impl Into<String>)`](crate::client::fluent_builders::DeleteUserDefinedFunction::function_name) / [`set_function_name(Option<String>)`](crate::client::fluent_builders::DeleteUserDefinedFunction::set_function_name): <p>The name of the function definition to be deleted.</p>
    /// - On success, responds with [`DeleteUserDefinedFunctionOutput`](crate::output::DeleteUserDefinedFunctionOutput)

    /// - On failure, responds with [`SdkError<DeleteUserDefinedFunctionError>`](crate::error::DeleteUserDefinedFunctionError)
    pub fn delete_user_defined_function(&self) -> fluent_builders::DeleteUserDefinedFunction {
        fluent_builders::DeleteUserDefinedFunction::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`DeleteWorkflow`](crate::client::fluent_builders::DeleteWorkflow) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::DeleteWorkflow::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::DeleteWorkflow::set_name): <p>Name of the workflow to be deleted.</p>
    /// - On success, responds with [`DeleteWorkflowOutput`](crate::output::DeleteWorkflowOutput) with field(s):
    ///   - [`name(Option<String>)`](crate::output::DeleteWorkflowOutput::name): <p>Name of the workflow specified in input.</p>
    /// - On failure, responds with [`SdkError<DeleteWorkflowError>`](crate::error::DeleteWorkflowError)
    pub fn delete_workflow(&self) -> fluent_builders::DeleteWorkflow {
        fluent_builders::DeleteWorkflow::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetBlueprint`](crate::client::fluent_builders::GetBlueprint) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::GetBlueprint::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::GetBlueprint::set_name): <p>The name of the blueprint.</p>
    ///   - [`include_blueprint(bool)`](crate::client::fluent_builders::GetBlueprint::include_blueprint) / [`set_include_blueprint(Option<bool>)`](crate::client::fluent_builders::GetBlueprint::set_include_blueprint): <p>Specifies whether or not to include the blueprint in the response.</p>
    ///   - [`include_parameter_spec(bool)`](crate::client::fluent_builders::GetBlueprint::include_parameter_spec) / [`set_include_parameter_spec(Option<bool>)`](crate::client::fluent_builders::GetBlueprint::set_include_parameter_spec): <p>Specifies whether or not to include the parameter specification.</p>
    /// - On success, responds with [`GetBlueprintOutput`](crate::output::GetBlueprintOutput) with field(s):
    ///   - [`blueprint(Option<Blueprint>)`](crate::output::GetBlueprintOutput::blueprint): <p>Returns a <code>Blueprint</code> object.</p>
    /// - On failure, responds with [`SdkError<GetBlueprintError>`](crate::error::GetBlueprintError)
    pub fn get_blueprint(&self) -> fluent_builders::GetBlueprint {
        fluent_builders::GetBlueprint::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetBlueprintRun`](crate::client::fluent_builders::GetBlueprintRun) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`blueprint_name(impl Into<String>)`](crate::client::fluent_builders::GetBlueprintRun::blueprint_name) / [`set_blueprint_name(Option<String>)`](crate::client::fluent_builders::GetBlueprintRun::set_blueprint_name): <p>The name of the blueprint.</p>
    ///   - [`run_id(impl Into<String>)`](crate::client::fluent_builders::GetBlueprintRun::run_id) / [`set_run_id(Option<String>)`](crate::client::fluent_builders::GetBlueprintRun::set_run_id): <p>The run ID for the blueprint run you want to retrieve.</p>
    /// - On success, responds with [`GetBlueprintRunOutput`](crate::output::GetBlueprintRunOutput) with field(s):
    ///   - [`blueprint_run(Option<BlueprintRun>)`](crate::output::GetBlueprintRunOutput::blueprint_run): <p>Returns a <code>BlueprintRun</code> object.</p>
    /// - On failure, responds with [`SdkError<GetBlueprintRunError>`](crate::error::GetBlueprintRunError)
    pub fn get_blueprint_run(&self) -> fluent_builders::GetBlueprintRun {
        fluent_builders::GetBlueprintRun::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetBlueprintRuns`](crate::client::fluent_builders::GetBlueprintRuns) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::GetBlueprintRuns::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`blueprint_name(impl Into<String>)`](crate::client::fluent_builders::GetBlueprintRuns::blueprint_name) / [`set_blueprint_name(Option<String>)`](crate::client::fluent_builders::GetBlueprintRuns::set_blueprint_name): <p>The name of the blueprint.</p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::GetBlueprintRuns::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::GetBlueprintRuns::set_next_token): <p>A continuation token, if this is a continuation request.</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::GetBlueprintRuns::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::GetBlueprintRuns::set_max_results): <p>The maximum size of a list to return.</p>
    /// - On success, responds with [`GetBlueprintRunsOutput`](crate::output::GetBlueprintRunsOutput) with field(s):
    ///   - [`blueprint_runs(Option<Vec<BlueprintRun>>)`](crate::output::GetBlueprintRunsOutput::blueprint_runs): <p>Returns a list of <code>BlueprintRun</code> objects.</p>
    ///   - [`next_token(Option<String>)`](crate::output::GetBlueprintRunsOutput::next_token): <p>A continuation token, if not all blueprint runs have been returned.</p>
    /// - On failure, responds with [`SdkError<GetBlueprintRunsError>`](crate::error::GetBlueprintRunsError)
    pub fn get_blueprint_runs(&self) -> fluent_builders::GetBlueprintRuns {
        fluent_builders::GetBlueprintRuns::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetCatalogImportStatus`](crate::client::fluent_builders::GetCatalogImportStatus) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::GetCatalogImportStatus::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::GetCatalogImportStatus::set_catalog_id): <p>The ID of the catalog to migrate. Currently, this should be the Amazon Web Services account ID.</p>
    /// - On success, responds with [`GetCatalogImportStatusOutput`](crate::output::GetCatalogImportStatusOutput) with field(s):
    ///   - [`import_status(Option<CatalogImportStatus>)`](crate::output::GetCatalogImportStatusOutput::import_status): <p>The status of the specified catalog migration.</p>
    /// - On failure, responds with [`SdkError<GetCatalogImportStatusError>`](crate::error::GetCatalogImportStatusError)
    pub fn get_catalog_import_status(&self) -> fluent_builders::GetCatalogImportStatus {
        fluent_builders::GetCatalogImportStatus::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetClassifier`](crate::client::fluent_builders::GetClassifier) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::GetClassifier::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::GetClassifier::set_name): <p>Name of the classifier to retrieve.</p>
    /// - On success, responds with [`GetClassifierOutput`](crate::output::GetClassifierOutput) with field(s):
    ///   - [`classifier(Option<Classifier>)`](crate::output::GetClassifierOutput::classifier): <p>The requested classifier.</p>
    /// - On failure, responds with [`SdkError<GetClassifierError>`](crate::error::GetClassifierError)
    pub fn get_classifier(&self) -> fluent_builders::GetClassifier {
        fluent_builders::GetClassifier::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetClassifiers`](crate::client::fluent_builders::GetClassifiers) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::GetClassifiers::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`max_results(i32)`](crate::client::fluent_builders::GetClassifiers::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::GetClassifiers::set_max_results): <p>The size of the list to return (optional).</p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::GetClassifiers::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::GetClassifiers::set_next_token): <p>An optional continuation token.</p>
    /// - On success, responds with [`GetClassifiersOutput`](crate::output::GetClassifiersOutput) with field(s):
    ///   - [`classifiers(Option<Vec<Classifier>>)`](crate::output::GetClassifiersOutput::classifiers): <p>The requested list of classifier objects.</p>
    ///   - [`next_token(Option<String>)`](crate::output::GetClassifiersOutput::next_token): <p>A continuation token.</p>
    /// - On failure, responds with [`SdkError<GetClassifiersError>`](crate::error::GetClassifiersError)
    pub fn get_classifiers(&self) -> fluent_builders::GetClassifiers {
        fluent_builders::GetClassifiers::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetColumnStatisticsForPartition`](crate::client::fluent_builders::GetColumnStatisticsForPartition) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::GetColumnStatisticsForPartition::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::GetColumnStatisticsForPartition::set_catalog_id): <p>The ID of the Data Catalog where the partitions in question reside. If none is supplied, the Amazon Web Services account ID is used by default.</p>
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::GetColumnStatisticsForPartition::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::GetColumnStatisticsForPartition::set_database_name): <p>The name of the catalog database where the partitions reside.</p>
    ///   - [`table_name(impl Into<String>)`](crate::client::fluent_builders::GetColumnStatisticsForPartition::table_name) / [`set_table_name(Option<String>)`](crate::client::fluent_builders::GetColumnStatisticsForPartition::set_table_name): <p>The name of the partitions' table.</p>
    ///   - [`partition_values(Vec<String>)`](crate::client::fluent_builders::GetColumnStatisticsForPartition::partition_values) / [`set_partition_values(Option<Vec<String>>)`](crate::client::fluent_builders::GetColumnStatisticsForPartition::set_partition_values): <p>A list of partition values identifying the partition.</p>
    ///   - [`column_names(Vec<String>)`](crate::client::fluent_builders::GetColumnStatisticsForPartition::column_names) / [`set_column_names(Option<Vec<String>>)`](crate::client::fluent_builders::GetColumnStatisticsForPartition::set_column_names): <p>A list of the column names.</p>
    /// - On success, responds with [`GetColumnStatisticsForPartitionOutput`](crate::output::GetColumnStatisticsForPartitionOutput) with field(s):
    ///   - [`column_statistics_list(Option<Vec<ColumnStatistics>>)`](crate::output::GetColumnStatisticsForPartitionOutput::column_statistics_list): <p>List of ColumnStatistics that failed to be retrieved.</p>
    ///   - [`errors(Option<Vec<ColumnError>>)`](crate::output::GetColumnStatisticsForPartitionOutput::errors): <p>Error occurred during retrieving column statistics data.</p>
    /// - On failure, responds with [`SdkError<GetColumnStatisticsForPartitionError>`](crate::error::GetColumnStatisticsForPartitionError)
    pub fn get_column_statistics_for_partition(
        &self,
    ) -> fluent_builders::GetColumnStatisticsForPartition {
        fluent_builders::GetColumnStatisticsForPartition::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetColumnStatisticsForTable`](crate::client::fluent_builders::GetColumnStatisticsForTable) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::GetColumnStatisticsForTable::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::GetColumnStatisticsForTable::set_catalog_id): <p>The ID of the Data Catalog where the partitions in question reside. If none is supplied, the Amazon Web Services account ID is used by default.</p>
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::GetColumnStatisticsForTable::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::GetColumnStatisticsForTable::set_database_name): <p>The name of the catalog database where the partitions reside.</p>
    ///   - [`table_name(impl Into<String>)`](crate::client::fluent_builders::GetColumnStatisticsForTable::table_name) / [`set_table_name(Option<String>)`](crate::client::fluent_builders::GetColumnStatisticsForTable::set_table_name): <p>The name of the partitions' table.</p>
    ///   - [`column_names(Vec<String>)`](crate::client::fluent_builders::GetColumnStatisticsForTable::column_names) / [`set_column_names(Option<Vec<String>>)`](crate::client::fluent_builders::GetColumnStatisticsForTable::set_column_names): <p>A list of the column names.</p>
    /// - On success, responds with [`GetColumnStatisticsForTableOutput`](crate::output::GetColumnStatisticsForTableOutput) with field(s):
    ///   - [`column_statistics_list(Option<Vec<ColumnStatistics>>)`](crate::output::GetColumnStatisticsForTableOutput::column_statistics_list): <p>List of ColumnStatistics that failed to be retrieved.</p>
    ///   - [`errors(Option<Vec<ColumnError>>)`](crate::output::GetColumnStatisticsForTableOutput::errors): <p>List of ColumnStatistics that failed to be retrieved.</p>
    /// - On failure, responds with [`SdkError<GetColumnStatisticsForTableError>`](crate::error::GetColumnStatisticsForTableError)
    pub fn get_column_statistics_for_table(&self) -> fluent_builders::GetColumnStatisticsForTable {
        fluent_builders::GetColumnStatisticsForTable::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetConnection`](crate::client::fluent_builders::GetConnection) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::GetConnection::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::GetConnection::set_catalog_id): <p>The ID of the Data Catalog in which the connection resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::GetConnection::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::GetConnection::set_name): <p>The name of the connection definition to retrieve.</p>
    ///   - [`hide_password(bool)`](crate::client::fluent_builders::GetConnection::hide_password) / [`set_hide_password(bool)`](crate::client::fluent_builders::GetConnection::set_hide_password): <p>Allows you to retrieve the connection metadata without returning the password. For instance, the Glue console uses this flag to retrieve the connection, and does not display the password. Set this parameter when the caller might not have permission to use the KMS key to decrypt the password, but it does have permission to access the rest of the connection properties.</p>
    /// - On success, responds with [`GetConnectionOutput`](crate::output::GetConnectionOutput) with field(s):
    ///   - [`connection(Option<Connection>)`](crate::output::GetConnectionOutput::connection): <p>The requested connection definition.</p>
    /// - On failure, responds with [`SdkError<GetConnectionError>`](crate::error::GetConnectionError)
    pub fn get_connection(&self) -> fluent_builders::GetConnection {
        fluent_builders::GetConnection::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetConnections`](crate::client::fluent_builders::GetConnections) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::GetConnections::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::GetConnections::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::GetConnections::set_catalog_id): <p>The ID of the Data Catalog in which the connections reside. If none is provided, the Amazon Web Services account ID is used by default.</p>
    ///   - [`filter(GetConnectionsFilter)`](crate::client::fluent_builders::GetConnections::filter) / [`set_filter(Option<GetConnectionsFilter>)`](crate::client::fluent_builders::GetConnections::set_filter): <p>A filter that controls which connections are returned.</p>
    ///   - [`hide_password(bool)`](crate::client::fluent_builders::GetConnections::hide_password) / [`set_hide_password(bool)`](crate::client::fluent_builders::GetConnections::set_hide_password): <p>Allows you to retrieve the connection metadata without returning the password. For instance, the Glue console uses this flag to retrieve the connection, and does not display the password. Set this parameter when the caller might not have permission to use the KMS key to decrypt the password, but it does have permission to access the rest of the connection properties.</p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::GetConnections::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::GetConnections::set_next_token): <p>A continuation token, if this is a continuation call.</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::GetConnections::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::GetConnections::set_max_results): <p>The maximum number of connections to return in one response.</p>
    /// - On success, responds with [`GetConnectionsOutput`](crate::output::GetConnectionsOutput) with field(s):
    ///   - [`connection_list(Option<Vec<Connection>>)`](crate::output::GetConnectionsOutput::connection_list): <p>A list of requested connection definitions.</p>
    ///   - [`next_token(Option<String>)`](crate::output::GetConnectionsOutput::next_token): <p>A continuation token, if the list of connections returned does not include the last of the filtered connections.</p>
    /// - On failure, responds with [`SdkError<GetConnectionsError>`](crate::error::GetConnectionsError)
    pub fn get_connections(&self) -> fluent_builders::GetConnections {
        fluent_builders::GetConnections::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetCrawler`](crate::client::fluent_builders::GetCrawler) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::GetCrawler::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::GetCrawler::set_name): <p>The name of the crawler to retrieve metadata for.</p>
    /// - On success, responds with [`GetCrawlerOutput`](crate::output::GetCrawlerOutput) with field(s):
    ///   - [`crawler(Option<Crawler>)`](crate::output::GetCrawlerOutput::crawler): <p>The metadata for the specified crawler.</p>
    /// - On failure, responds with [`SdkError<GetCrawlerError>`](crate::error::GetCrawlerError)
    pub fn get_crawler(&self) -> fluent_builders::GetCrawler {
        fluent_builders::GetCrawler::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetCrawlerMetrics`](crate::client::fluent_builders::GetCrawlerMetrics) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::GetCrawlerMetrics::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`crawler_name_list(Vec<String>)`](crate::client::fluent_builders::GetCrawlerMetrics::crawler_name_list) / [`set_crawler_name_list(Option<Vec<String>>)`](crate::client::fluent_builders::GetCrawlerMetrics::set_crawler_name_list): <p>A list of the names of crawlers about which to retrieve metrics.</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::GetCrawlerMetrics::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::GetCrawlerMetrics::set_max_results): <p>The maximum size of a list to return.</p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::GetCrawlerMetrics::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::GetCrawlerMetrics::set_next_token): <p>A continuation token, if this is a continuation call.</p>
    /// - On success, responds with [`GetCrawlerMetricsOutput`](crate::output::GetCrawlerMetricsOutput) with field(s):
    ///   - [`crawler_metrics_list(Option<Vec<CrawlerMetrics>>)`](crate::output::GetCrawlerMetricsOutput::crawler_metrics_list): <p>A list of metrics for the specified crawler.</p>
    ///   - [`next_token(Option<String>)`](crate::output::GetCrawlerMetricsOutput::next_token): <p>A continuation token, if the returned list does not contain the last metric available.</p>
    /// - On failure, responds with [`SdkError<GetCrawlerMetricsError>`](crate::error::GetCrawlerMetricsError)
    pub fn get_crawler_metrics(&self) -> fluent_builders::GetCrawlerMetrics {
        fluent_builders::GetCrawlerMetrics::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetCrawlers`](crate::client::fluent_builders::GetCrawlers) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::GetCrawlers::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`max_results(i32)`](crate::client::fluent_builders::GetCrawlers::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::GetCrawlers::set_max_results): <p>The number of crawlers to return on each call.</p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::GetCrawlers::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::GetCrawlers::set_next_token): <p>A continuation token, if this is a continuation request.</p>
    /// - On success, responds with [`GetCrawlersOutput`](crate::output::GetCrawlersOutput) with field(s):
    ///   - [`crawlers(Option<Vec<Crawler>>)`](crate::output::GetCrawlersOutput::crawlers): <p>A list of crawler metadata.</p>
    ///   - [`next_token(Option<String>)`](crate::output::GetCrawlersOutput::next_token): <p>A continuation token, if the returned list has not reached the end of those defined in this customer account.</p>
    /// - On failure, responds with [`SdkError<GetCrawlersError>`](crate::error::GetCrawlersError)
    pub fn get_crawlers(&self) -> fluent_builders::GetCrawlers {
        fluent_builders::GetCrawlers::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetCustomEntityType`](crate::client::fluent_builders::GetCustomEntityType) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::GetCustomEntityType::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::GetCustomEntityType::set_name): <p>The name of the custom pattern that you want to retrieve.</p>
    /// - On success, responds with [`GetCustomEntityTypeOutput`](crate::output::GetCustomEntityTypeOutput) with field(s):
    ///   - [`name(Option<String>)`](crate::output::GetCustomEntityTypeOutput::name): <p>The name of the custom pattern that you retrieved.</p>
    ///   - [`regex_string(Option<String>)`](crate::output::GetCustomEntityTypeOutput::regex_string): <p>A regular expression string that is used for detecting sensitive data in a custom pattern.</p>
    ///   - [`context_words(Option<Vec<String>>)`](crate::output::GetCustomEntityTypeOutput::context_words): <p>A list of context words if specified when you created the custom pattern. If none of these context words are found within the vicinity of the regular expression the data will not be detected as sensitive data.</p>
    /// - On failure, responds with [`SdkError<GetCustomEntityTypeError>`](crate::error::GetCustomEntityTypeError)
    pub fn get_custom_entity_type(&self) -> fluent_builders::GetCustomEntityType {
        fluent_builders::GetCustomEntityType::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetDatabase`](crate::client::fluent_builders::GetDatabase) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::GetDatabase::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::GetDatabase::set_catalog_id): <p>The ID of the Data Catalog in which the database resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::GetDatabase::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::GetDatabase::set_name): <p>The name of the database to retrieve. For Hive compatibility, this should be all lowercase.</p>
    /// - On success, responds with [`GetDatabaseOutput`](crate::output::GetDatabaseOutput) with field(s):
    ///   - [`database(Option<Database>)`](crate::output::GetDatabaseOutput::database): <p>The definition of the specified database in the Data Catalog.</p>
    /// - On failure, responds with [`SdkError<GetDatabaseError>`](crate::error::GetDatabaseError)
    pub fn get_database(&self) -> fluent_builders::GetDatabase {
        fluent_builders::GetDatabase::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetDatabases`](crate::client::fluent_builders::GetDatabases) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::GetDatabases::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::GetDatabases::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::GetDatabases::set_catalog_id): <p>The ID of the Data Catalog from which to retrieve <code>Databases</code>. If none is provided, the Amazon Web Services account ID is used by default.</p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::GetDatabases::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::GetDatabases::set_next_token): <p>A continuation token, if this is a continuation call.</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::GetDatabases::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::GetDatabases::set_max_results): <p>The maximum number of databases to return in one response.</p>
    ///   - [`resource_share_type(ResourceShareType)`](crate::client::fluent_builders::GetDatabases::resource_share_type) / [`set_resource_share_type(Option<ResourceShareType>)`](crate::client::fluent_builders::GetDatabases::set_resource_share_type): <p>Allows you to specify that you want to list the databases shared with your account. The allowable values are <code>FOREIGN</code> or <code>ALL</code>. </p>  <ul>   <li> <p>If set to <code>FOREIGN</code>, will list the databases shared with your account. </p> </li>   <li> <p>If set to <code>ALL</code>, will list the databases shared with your account, as well as the databases in yor local account. </p> </li>  </ul>
    /// - On success, responds with [`GetDatabasesOutput`](crate::output::GetDatabasesOutput) with field(s):
    ///   - [`database_list(Option<Vec<Database>>)`](crate::output::GetDatabasesOutput::database_list): <p>A list of <code>Database</code> objects from the specified catalog.</p>
    ///   - [`next_token(Option<String>)`](crate::output::GetDatabasesOutput::next_token): <p>A continuation token for paginating the returned list of tokens, returned if the current segment of the list is not the last.</p>
    /// - On failure, responds with [`SdkError<GetDatabasesError>`](crate::error::GetDatabasesError)
    pub fn get_databases(&self) -> fluent_builders::GetDatabases {
        fluent_builders::GetDatabases::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetDataCatalogEncryptionSettings`](crate::client::fluent_builders::GetDataCatalogEncryptionSettings) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::GetDataCatalogEncryptionSettings::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::GetDataCatalogEncryptionSettings::set_catalog_id): <p>The ID of the Data Catalog to retrieve the security configuration for. If none is provided, the Amazon Web Services account ID is used by default.</p>
    /// - On success, responds with [`GetDataCatalogEncryptionSettingsOutput`](crate::output::GetDataCatalogEncryptionSettingsOutput) with field(s):
    ///   - [`data_catalog_encryption_settings(Option<DataCatalogEncryptionSettings>)`](crate::output::GetDataCatalogEncryptionSettingsOutput::data_catalog_encryption_settings): <p>The requested security configuration.</p>
    /// - On failure, responds with [`SdkError<GetDataCatalogEncryptionSettingsError>`](crate::error::GetDataCatalogEncryptionSettingsError)
    pub fn get_data_catalog_encryption_settings(
        &self,
    ) -> fluent_builders::GetDataCatalogEncryptionSettings {
        fluent_builders::GetDataCatalogEncryptionSettings::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetDataflowGraph`](crate::client::fluent_builders::GetDataflowGraph) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`python_script(impl Into<String>)`](crate::client::fluent_builders::GetDataflowGraph::python_script) / [`set_python_script(Option<String>)`](crate::client::fluent_builders::GetDataflowGraph::set_python_script): <p>The Python script to transform.</p>
    /// - On success, responds with [`GetDataflowGraphOutput`](crate::output::GetDataflowGraphOutput) with field(s):
    ///   - [`dag_nodes(Option<Vec<CodeGenNode>>)`](crate::output::GetDataflowGraphOutput::dag_nodes): <p>A list of the nodes in the resulting DAG.</p>
    ///   - [`dag_edges(Option<Vec<CodeGenEdge>>)`](crate::output::GetDataflowGraphOutput::dag_edges): <p>A list of the edges in the resulting DAG.</p>
    /// - On failure, responds with [`SdkError<GetDataflowGraphError>`](crate::error::GetDataflowGraphError)
    pub fn get_dataflow_graph(&self) -> fluent_builders::GetDataflowGraph {
        fluent_builders::GetDataflowGraph::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetDataQualityResult`](crate::client::fluent_builders::GetDataQualityResult) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`result_id(impl Into<String>)`](crate::client::fluent_builders::GetDataQualityResult::result_id) / [`set_result_id(Option<String>)`](crate::client::fluent_builders::GetDataQualityResult::set_result_id): <p>A unique result ID for the data quality result.</p>
    /// - On success, responds with [`GetDataQualityResultOutput`](crate::output::GetDataQualityResultOutput) with field(s):
    ///   - [`result_id(Option<String>)`](crate::output::GetDataQualityResultOutput::result_id): <p>A unique result ID for the data quality result.</p>
    ///   - [`score(Option<f64>)`](crate::output::GetDataQualityResultOutput::score): <p>An aggregate data quality score. Represents the ratio of rules that passed to the total number of rules.</p>
    ///   - [`data_source(Option<DataSource>)`](crate::output::GetDataQualityResultOutput::data_source): <p>The table associated with the data quality result, if any.</p>
    ///   - [`ruleset_name(Option<String>)`](crate::output::GetDataQualityResultOutput::ruleset_name): <p>The name of the ruleset associated with the data quality result.</p>
    ///   - [`evaluation_context(Option<String>)`](crate::output::GetDataQualityResultOutput::evaluation_context): <p>In the context of a job in Glue Studio, each node in the canvas is typically assigned some sort of name and data quality nodes will have names. In the case of multiple nodes, the <code>evaluationContext</code> can differentiate the nodes.</p>
    ///   - [`started_on(Option<DateTime>)`](crate::output::GetDataQualityResultOutput::started_on): <p>The date and time when the run for this data quality result started.</p>
    ///   - [`completed_on(Option<DateTime>)`](crate::output::GetDataQualityResultOutput::completed_on): <p>The date and time when the run for this data quality result was completed.</p>
    ///   - [`job_name(Option<String>)`](crate::output::GetDataQualityResultOutput::job_name): <p>The job name associated with the data quality result, if any.</p>
    ///   - [`job_run_id(Option<String>)`](crate::output::GetDataQualityResultOutput::job_run_id): <p>The job run ID associated with the data quality result, if any.</p>
    ///   - [`ruleset_evaluation_run_id(Option<String>)`](crate::output::GetDataQualityResultOutput::ruleset_evaluation_run_id): <p>The unique run ID associated with the ruleset evaluation.</p>
    ///   - [`rule_results(Option<Vec<DataQualityRuleResult>>)`](crate::output::GetDataQualityResultOutput::rule_results): <p>A list of <code>DataQualityRuleResult</code> objects representing the results for each rule. </p>
    /// - On failure, responds with [`SdkError<GetDataQualityResultError>`](crate::error::GetDataQualityResultError)
    pub fn get_data_quality_result(&self) -> fluent_builders::GetDataQualityResult {
        fluent_builders::GetDataQualityResult::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetDataQualityRuleRecommendationRun`](crate::client::fluent_builders::GetDataQualityRuleRecommendationRun) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`run_id(impl Into<String>)`](crate::client::fluent_builders::GetDataQualityRuleRecommendationRun::run_id) / [`set_run_id(Option<String>)`](crate::client::fluent_builders::GetDataQualityRuleRecommendationRun::set_run_id): <p>The unique run identifier associated with this run.</p>
    /// - On success, responds with [`GetDataQualityRuleRecommendationRunOutput`](crate::output::GetDataQualityRuleRecommendationRunOutput) with field(s):
    ///   - [`run_id(Option<String>)`](crate::output::GetDataQualityRuleRecommendationRunOutput::run_id): <p>The unique run identifier associated with this run.</p>
    ///   - [`data_source(Option<DataSource>)`](crate::output::GetDataQualityRuleRecommendationRunOutput::data_source): <p>The data source (an Glue table) associated with this run.</p>
    ///   - [`role(Option<String>)`](crate::output::GetDataQualityRuleRecommendationRunOutput::role): <p>An IAM role supplied to encrypt the results of the run.</p>
    ///   - [`number_of_workers(Option<i32>)`](crate::output::GetDataQualityRuleRecommendationRunOutput::number_of_workers): <p>The number of <code>G.1X</code> workers to be used in the run. The default is 5.</p>
    ///   - [`timeout(Option<i32>)`](crate::output::GetDataQualityRuleRecommendationRunOutput::timeout): <p>The timeout for a run in minutes. This is the maximum time that a run can consume resources before it is terminated and enters <code>TIMEOUT</code> status. The default is 2,880 minutes (48 hours).</p>
    ///   - [`status(Option<TaskStatusType>)`](crate::output::GetDataQualityRuleRecommendationRunOutput::status): <p>The status for this run.</p>
    ///   - [`error_string(Option<String>)`](crate::output::GetDataQualityRuleRecommendationRunOutput::error_string): <p>The error strings that are associated with the run.</p>
    ///   - [`started_on(Option<DateTime>)`](crate::output::GetDataQualityRuleRecommendationRunOutput::started_on): <p>The date and time when this run started.</p>
    ///   - [`last_modified_on(Option<DateTime>)`](crate::output::GetDataQualityRuleRecommendationRunOutput::last_modified_on): <p>A timestamp. The last point in time when this data quality rule recommendation run was modified.</p>
    ///   - [`completed_on(Option<DateTime>)`](crate::output::GetDataQualityRuleRecommendationRunOutput::completed_on): <p>The date and time when this run was completed.</p>
    ///   - [`execution_time(i32)`](crate::output::GetDataQualityRuleRecommendationRunOutput::execution_time): <p>The amount of time (in seconds) that the run consumed resources.</p>
    ///   - [`recommended_ruleset(Option<String>)`](crate::output::GetDataQualityRuleRecommendationRunOutput::recommended_ruleset): <p>When a start rule recommendation run completes, it creates a recommended ruleset (a set of rules). This member has those rules in Data Quality Definition Language (DQDL) format.</p>
    ///   - [`created_ruleset_name(Option<String>)`](crate::output::GetDataQualityRuleRecommendationRunOutput::created_ruleset_name): <p>The name of the ruleset that was created by the run.</p>
    /// - On failure, responds with [`SdkError<GetDataQualityRuleRecommendationRunError>`](crate::error::GetDataQualityRuleRecommendationRunError)
    pub fn get_data_quality_rule_recommendation_run(
        &self,
    ) -> fluent_builders::GetDataQualityRuleRecommendationRun {
        fluent_builders::GetDataQualityRuleRecommendationRun::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetDataQualityRuleset`](crate::client::fluent_builders::GetDataQualityRuleset) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::GetDataQualityRuleset::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::GetDataQualityRuleset::set_name): <p>The name of the ruleset.</p>
    /// - On success, responds with [`GetDataQualityRulesetOutput`](crate::output::GetDataQualityRulesetOutput) with field(s):
    ///   - [`name(Option<String>)`](crate::output::GetDataQualityRulesetOutput::name): <p>The name of the ruleset.</p>
    ///   - [`description(Option<String>)`](crate::output::GetDataQualityRulesetOutput::description): <p>A description of the ruleset.</p>
    ///   - [`ruleset(Option<String>)`](crate::output::GetDataQualityRulesetOutput::ruleset): <p>A Data Quality Definition Language (DQDL) ruleset. For more information, see the Glue developer guide.</p>
    ///   - [`target_table(Option<DataQualityTargetTable>)`](crate::output::GetDataQualityRulesetOutput::target_table): <p>The name and database name of the target table.</p>
    ///   - [`created_on(Option<DateTime>)`](crate::output::GetDataQualityRulesetOutput::created_on): <p>A timestamp. The time and date that this data quality ruleset was created.</p>
    ///   - [`last_modified_on(Option<DateTime>)`](crate::output::GetDataQualityRulesetOutput::last_modified_on): <p>A timestamp. The last point in time when this data quality ruleset was modified.</p>
    ///   - [`recommendation_run_id(Option<String>)`](crate::output::GetDataQualityRulesetOutput::recommendation_run_id): <p>When a ruleset was created from a recommendation run, this run ID is generated to link the two together.</p>
    /// - On failure, responds with [`SdkError<GetDataQualityRulesetError>`](crate::error::GetDataQualityRulesetError)
    pub fn get_data_quality_ruleset(&self) -> fluent_builders::GetDataQualityRuleset {
        fluent_builders::GetDataQualityRuleset::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetDataQualityRulesetEvaluationRun`](crate::client::fluent_builders::GetDataQualityRulesetEvaluationRun) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`run_id(impl Into<String>)`](crate::client::fluent_builders::GetDataQualityRulesetEvaluationRun::run_id) / [`set_run_id(Option<String>)`](crate::client::fluent_builders::GetDataQualityRulesetEvaluationRun::set_run_id): <p>The unique run identifier associated with this run.</p>
    /// - On success, responds with [`GetDataQualityRulesetEvaluationRunOutput`](crate::output::GetDataQualityRulesetEvaluationRunOutput) with field(s):
    ///   - [`run_id(Option<String>)`](crate::output::GetDataQualityRulesetEvaluationRunOutput::run_id): <p>The unique run identifier associated with this run.</p>
    ///   - [`data_source(Option<DataSource>)`](crate::output::GetDataQualityRulesetEvaluationRunOutput::data_source): <p>The data source (an Glue table) associated with this evaluation run.</p>
    ///   - [`role(Option<String>)`](crate::output::GetDataQualityRulesetEvaluationRunOutput::role): <p>An IAM role supplied to encrypt the results of the run.</p>
    ///   - [`number_of_workers(Option<i32>)`](crate::output::GetDataQualityRulesetEvaluationRunOutput::number_of_workers): <p>The number of <code>G.1X</code> workers to be used in the run. The default is 5.</p>
    ///   - [`timeout(Option<i32>)`](crate::output::GetDataQualityRulesetEvaluationRunOutput::timeout): <p>The timeout for a run in minutes. This is the maximum time that a run can consume resources before it is terminated and enters <code>TIMEOUT</code> status. The default is 2,880 minutes (48 hours).</p>
    ///   - [`additional_run_options(Option<DataQualityEvaluationRunAdditionalRunOptions>)`](crate::output::GetDataQualityRulesetEvaluationRunOutput::additional_run_options): <p>Additional run options you can specify for an evaluation run.</p>
    ///   - [`status(Option<TaskStatusType>)`](crate::output::GetDataQualityRulesetEvaluationRunOutput::status): <p>The status for this run.</p>
    ///   - [`error_string(Option<String>)`](crate::output::GetDataQualityRulesetEvaluationRunOutput::error_string): <p>The error strings that are associated with the run.</p>
    ///   - [`started_on(Option<DateTime>)`](crate::output::GetDataQualityRulesetEvaluationRunOutput::started_on): <p>The date and time when this run started.</p>
    ///   - [`last_modified_on(Option<DateTime>)`](crate::output::GetDataQualityRulesetEvaluationRunOutput::last_modified_on): <p>A timestamp. The last point in time when this data quality rule recommendation run was modified.</p>
    ///   - [`completed_on(Option<DateTime>)`](crate::output::GetDataQualityRulesetEvaluationRunOutput::completed_on): <p>The date and time when this run was completed.</p>
    ///   - [`execution_time(i32)`](crate::output::GetDataQualityRulesetEvaluationRunOutput::execution_time): <p>The amount of time (in seconds) that the run consumed resources.</p>
    ///   - [`ruleset_names(Option<Vec<String>>)`](crate::output::GetDataQualityRulesetEvaluationRunOutput::ruleset_names): <p>A list of ruleset names for the run.</p>
    ///   - [`result_ids(Option<Vec<String>>)`](crate::output::GetDataQualityRulesetEvaluationRunOutput::result_ids): <p>A list of result IDs for the data quality results for the run.</p>
    /// - On failure, responds with [`SdkError<GetDataQualityRulesetEvaluationRunError>`](crate::error::GetDataQualityRulesetEvaluationRunError)
    pub fn get_data_quality_ruleset_evaluation_run(
        &self,
    ) -> fluent_builders::GetDataQualityRulesetEvaluationRun {
        fluent_builders::GetDataQualityRulesetEvaluationRun::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetDevEndpoint`](crate::client::fluent_builders::GetDevEndpoint) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`endpoint_name(impl Into<String>)`](crate::client::fluent_builders::GetDevEndpoint::endpoint_name) / [`set_endpoint_name(Option<String>)`](crate::client::fluent_builders::GetDevEndpoint::set_endpoint_name): <p>Name of the <code>DevEndpoint</code> to retrieve information for.</p>
    /// - On success, responds with [`GetDevEndpointOutput`](crate::output::GetDevEndpointOutput) with field(s):
    ///   - [`dev_endpoint(Option<DevEndpoint>)`](crate::output::GetDevEndpointOutput::dev_endpoint): <p>A <code>DevEndpoint</code> definition.</p>
    /// - On failure, responds with [`SdkError<GetDevEndpointError>`](crate::error::GetDevEndpointError)
    pub fn get_dev_endpoint(&self) -> fluent_builders::GetDevEndpoint {
        fluent_builders::GetDevEndpoint::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetDevEndpoints`](crate::client::fluent_builders::GetDevEndpoints) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::GetDevEndpoints::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`max_results(i32)`](crate::client::fluent_builders::GetDevEndpoints::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::GetDevEndpoints::set_max_results): <p>The maximum size of information to return.</p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::GetDevEndpoints::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::GetDevEndpoints::set_next_token): <p>A continuation token, if this is a continuation call.</p>
    /// - On success, responds with [`GetDevEndpointsOutput`](crate::output::GetDevEndpointsOutput) with field(s):
    ///   - [`dev_endpoints(Option<Vec<DevEndpoint>>)`](crate::output::GetDevEndpointsOutput::dev_endpoints): <p>A list of <code>DevEndpoint</code> definitions.</p>
    ///   - [`next_token(Option<String>)`](crate::output::GetDevEndpointsOutput::next_token): <p>A continuation token, if not all <code>DevEndpoint</code> definitions have yet been returned.</p>
    /// - On failure, responds with [`SdkError<GetDevEndpointsError>`](crate::error::GetDevEndpointsError)
    pub fn get_dev_endpoints(&self) -> fluent_builders::GetDevEndpoints {
        fluent_builders::GetDevEndpoints::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetJob`](crate::client::fluent_builders::GetJob) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`job_name(impl Into<String>)`](crate::client::fluent_builders::GetJob::job_name) / [`set_job_name(Option<String>)`](crate::client::fluent_builders::GetJob::set_job_name): <p>The name of the job definition to retrieve.</p>
    /// - On success, responds with [`GetJobOutput`](crate::output::GetJobOutput) with field(s):
    ///   - [`job(Option<Job>)`](crate::output::GetJobOutput::job): <p>The requested job definition.</p>
    /// - On failure, responds with [`SdkError<GetJobError>`](crate::error::GetJobError)
    pub fn get_job(&self) -> fluent_builders::GetJob {
        fluent_builders::GetJob::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetJobBookmark`](crate::client::fluent_builders::GetJobBookmark) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`job_name(impl Into<String>)`](crate::client::fluent_builders::GetJobBookmark::job_name) / [`set_job_name(Option<String>)`](crate::client::fluent_builders::GetJobBookmark::set_job_name): <p>The name of the job in question.</p>
    ///   - [`run_id(impl Into<String>)`](crate::client::fluent_builders::GetJobBookmark::run_id) / [`set_run_id(Option<String>)`](crate::client::fluent_builders::GetJobBookmark::set_run_id): <p>The unique run identifier associated with this job run.</p>
    /// - On success, responds with [`GetJobBookmarkOutput`](crate::output::GetJobBookmarkOutput) with field(s):
    ///   - [`job_bookmark_entry(Option<JobBookmarkEntry>)`](crate::output::GetJobBookmarkOutput::job_bookmark_entry): <p>A structure that defines a point that a job can resume processing.</p>
    /// - On failure, responds with [`SdkError<GetJobBookmarkError>`](crate::error::GetJobBookmarkError)
    pub fn get_job_bookmark(&self) -> fluent_builders::GetJobBookmark {
        fluent_builders::GetJobBookmark::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetJobRun`](crate::client::fluent_builders::GetJobRun) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`job_name(impl Into<String>)`](crate::client::fluent_builders::GetJobRun::job_name) / [`set_job_name(Option<String>)`](crate::client::fluent_builders::GetJobRun::set_job_name): <p>Name of the job definition being run.</p>
    ///   - [`run_id(impl Into<String>)`](crate::client::fluent_builders::GetJobRun::run_id) / [`set_run_id(Option<String>)`](crate::client::fluent_builders::GetJobRun::set_run_id): <p>The ID of the job run.</p>
    ///   - [`predecessors_included(bool)`](crate::client::fluent_builders::GetJobRun::predecessors_included) / [`set_predecessors_included(bool)`](crate::client::fluent_builders::GetJobRun::set_predecessors_included): <p>True if a list of predecessor runs should be returned.</p>
    /// - On success, responds with [`GetJobRunOutput`](crate::output::GetJobRunOutput) with field(s):
    ///   - [`job_run(Option<JobRun>)`](crate::output::GetJobRunOutput::job_run): <p>The requested job-run metadata.</p>
    /// - On failure, responds with [`SdkError<GetJobRunError>`](crate::error::GetJobRunError)
    pub fn get_job_run(&self) -> fluent_builders::GetJobRun {
        fluent_builders::GetJobRun::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetJobRuns`](crate::client::fluent_builders::GetJobRuns) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::GetJobRuns::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`job_name(impl Into<String>)`](crate::client::fluent_builders::GetJobRuns::job_name) / [`set_job_name(Option<String>)`](crate::client::fluent_builders::GetJobRuns::set_job_name): <p>The name of the job definition for which to retrieve all job runs.</p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::GetJobRuns::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::GetJobRuns::set_next_token): <p>A continuation token, if this is a continuation call.</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::GetJobRuns::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::GetJobRuns::set_max_results): <p>The maximum size of the response.</p>
    /// - On success, responds with [`GetJobRunsOutput`](crate::output::GetJobRunsOutput) with field(s):
    ///   - [`job_runs(Option<Vec<JobRun>>)`](crate::output::GetJobRunsOutput::job_runs): <p>A list of job-run metadata objects.</p>
    ///   - [`next_token(Option<String>)`](crate::output::GetJobRunsOutput::next_token): <p>A continuation token, if not all requested job runs have been returned.</p>
    /// - On failure, responds with [`SdkError<GetJobRunsError>`](crate::error::GetJobRunsError)
    pub fn get_job_runs(&self) -> fluent_builders::GetJobRuns {
        fluent_builders::GetJobRuns::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetJobs`](crate::client::fluent_builders::GetJobs) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::GetJobs::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::GetJobs::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::GetJobs::set_next_token): <p>A continuation token, if this is a continuation call.</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::GetJobs::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::GetJobs::set_max_results): <p>The maximum size of the response.</p>
    /// - On success, responds with [`GetJobsOutput`](crate::output::GetJobsOutput) with field(s):
    ///   - [`jobs(Option<Vec<Job>>)`](crate::output::GetJobsOutput::jobs): <p>A list of job definitions.</p>
    ///   - [`next_token(Option<String>)`](crate::output::GetJobsOutput::next_token): <p>A continuation token, if not all job definitions have yet been returned.</p>
    /// - On failure, responds with [`SdkError<GetJobsError>`](crate::error::GetJobsError)
    pub fn get_jobs(&self) -> fluent_builders::GetJobs {
        fluent_builders::GetJobs::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetMapping`](crate::client::fluent_builders::GetMapping) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`source(CatalogEntry)`](crate::client::fluent_builders::GetMapping::source) / [`set_source(Option<CatalogEntry>)`](crate::client::fluent_builders::GetMapping::set_source): <p>Specifies the source table.</p>
    ///   - [`sinks(Vec<CatalogEntry>)`](crate::client::fluent_builders::GetMapping::sinks) / [`set_sinks(Option<Vec<CatalogEntry>>)`](crate::client::fluent_builders::GetMapping::set_sinks): <p>A list of target tables.</p>
    ///   - [`location(Location)`](crate::client::fluent_builders::GetMapping::location) / [`set_location(Option<Location>)`](crate::client::fluent_builders::GetMapping::set_location): <p>Parameters for the mapping.</p>
    /// - On success, responds with [`GetMappingOutput`](crate::output::GetMappingOutput) with field(s):
    ///   - [`mapping(Option<Vec<MappingEntry>>)`](crate::output::GetMappingOutput::mapping): <p>A list of mappings to the specified targets.</p>
    /// - On failure, responds with [`SdkError<GetMappingError>`](crate::error::GetMappingError)
    pub fn get_mapping(&self) -> fluent_builders::GetMapping {
        fluent_builders::GetMapping::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetMLTaskRun`](crate::client::fluent_builders::GetMLTaskRun) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`transform_id(impl Into<String>)`](crate::client::fluent_builders::GetMLTaskRun::transform_id) / [`set_transform_id(Option<String>)`](crate::client::fluent_builders::GetMLTaskRun::set_transform_id): <p>The unique identifier of the machine learning transform.</p>
    ///   - [`task_run_id(impl Into<String>)`](crate::client::fluent_builders::GetMLTaskRun::task_run_id) / [`set_task_run_id(Option<String>)`](crate::client::fluent_builders::GetMLTaskRun::set_task_run_id): <p>The unique identifier of the task run.</p>
    /// - On success, responds with [`GetMlTaskRunOutput`](crate::output::GetMlTaskRunOutput) with field(s):
    ///   - [`transform_id(Option<String>)`](crate::output::GetMlTaskRunOutput::transform_id): <p>The unique identifier of the task run.</p>
    ///   - [`task_run_id(Option<String>)`](crate::output::GetMlTaskRunOutput::task_run_id): <p>The unique run identifier associated with this run.</p>
    ///   - [`status(Option<TaskStatusType>)`](crate::output::GetMlTaskRunOutput::status): <p>The status for this task run.</p>
    ///   - [`log_group_name(Option<String>)`](crate::output::GetMlTaskRunOutput::log_group_name): <p>The names of the log groups that are associated with the task run.</p>
    ///   - [`properties(Option<TaskRunProperties>)`](crate::output::GetMlTaskRunOutput::properties): <p>The list of properties that are associated with the task run.</p>
    ///   - [`error_string(Option<String>)`](crate::output::GetMlTaskRunOutput::error_string): <p>The error strings that are associated with the task run.</p>
    ///   - [`started_on(Option<DateTime>)`](crate::output::GetMlTaskRunOutput::started_on): <p>The date and time when this task run started.</p>
    ///   - [`last_modified_on(Option<DateTime>)`](crate::output::GetMlTaskRunOutput::last_modified_on): <p>The date and time when this task run was last modified.</p>
    ///   - [`completed_on(Option<DateTime>)`](crate::output::GetMlTaskRunOutput::completed_on): <p>The date and time when this task run was completed.</p>
    ///   - [`execution_time(i32)`](crate::output::GetMlTaskRunOutput::execution_time): <p>The amount of time (in seconds) that the task run consumed resources.</p>
    /// - On failure, responds with [`SdkError<GetMLTaskRunError>`](crate::error::GetMLTaskRunError)
    pub fn get_ml_task_run(&self) -> fluent_builders::GetMLTaskRun {
        fluent_builders::GetMLTaskRun::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetMLTaskRuns`](crate::client::fluent_builders::GetMLTaskRuns) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::GetMLTaskRuns::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`transform_id(impl Into<String>)`](crate::client::fluent_builders::GetMLTaskRuns::transform_id) / [`set_transform_id(Option<String>)`](crate::client::fluent_builders::GetMLTaskRuns::set_transform_id): <p>The unique identifier of the machine learning transform.</p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::GetMLTaskRuns::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::GetMLTaskRuns::set_next_token): <p>A token for pagination of the results. The default is empty.</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::GetMLTaskRuns::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::GetMLTaskRuns::set_max_results): <p>The maximum number of results to return. </p>
    ///   - [`filter(TaskRunFilterCriteria)`](crate::client::fluent_builders::GetMLTaskRuns::filter) / [`set_filter(Option<TaskRunFilterCriteria>)`](crate::client::fluent_builders::GetMLTaskRuns::set_filter): <p>The filter criteria, in the <code>TaskRunFilterCriteria</code> structure, for the task run.</p>
    ///   - [`sort(TaskRunSortCriteria)`](crate::client::fluent_builders::GetMLTaskRuns::sort) / [`set_sort(Option<TaskRunSortCriteria>)`](crate::client::fluent_builders::GetMLTaskRuns::set_sort): <p>The sorting criteria, in the <code>TaskRunSortCriteria</code> structure, for the task run.</p>
    /// - On success, responds with [`GetMlTaskRunsOutput`](crate::output::GetMlTaskRunsOutput) with field(s):
    ///   - [`task_runs(Option<Vec<TaskRun>>)`](crate::output::GetMlTaskRunsOutput::task_runs): <p>A list of task runs that are associated with the transform.</p>
    ///   - [`next_token(Option<String>)`](crate::output::GetMlTaskRunsOutput::next_token): <p>A pagination token, if more results are available.</p>
    /// - On failure, responds with [`SdkError<GetMLTaskRunsError>`](crate::error::GetMLTaskRunsError)
    pub fn get_ml_task_runs(&self) -> fluent_builders::GetMLTaskRuns {
        fluent_builders::GetMLTaskRuns::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetMLTransform`](crate::client::fluent_builders::GetMLTransform) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`transform_id(impl Into<String>)`](crate::client::fluent_builders::GetMLTransform::transform_id) / [`set_transform_id(Option<String>)`](crate::client::fluent_builders::GetMLTransform::set_transform_id): <p>The unique identifier of the transform, generated at the time that the transform was created.</p>
    /// - On success, responds with [`GetMlTransformOutput`](crate::output::GetMlTransformOutput) with field(s):
    ///   - [`transform_id(Option<String>)`](crate::output::GetMlTransformOutput::transform_id): <p>The unique identifier of the transform, generated at the time that the transform was created.</p>
    ///   - [`name(Option<String>)`](crate::output::GetMlTransformOutput::name): <p>The unique name given to the transform when it was created.</p>
    ///   - [`description(Option<String>)`](crate::output::GetMlTransformOutput::description): <p>A description of the transform.</p>
    ///   - [`status(Option<TransformStatusType>)`](crate::output::GetMlTransformOutput::status): <p>The last known status of the transform (to indicate whether it can be used or not). One of "NOT_READY", "READY", or "DELETING".</p>
    ///   - [`created_on(Option<DateTime>)`](crate::output::GetMlTransformOutput::created_on): <p>The date and time when the transform was created.</p>
    ///   - [`last_modified_on(Option<DateTime>)`](crate::output::GetMlTransformOutput::last_modified_on): <p>The date and time when the transform was last modified.</p>
    ///   - [`input_record_tables(Option<Vec<GlueTable>>)`](crate::output::GetMlTransformOutput::input_record_tables): <p>A list of Glue table definitions used by the transform.</p>
    ///   - [`parameters(Option<TransformParameters>)`](crate::output::GetMlTransformOutput::parameters): <p>The configuration parameters that are specific to the algorithm used.</p>
    ///   - [`evaluation_metrics(Option<EvaluationMetrics>)`](crate::output::GetMlTransformOutput::evaluation_metrics): <p>The latest evaluation metrics.</p>
    ///   - [`label_count(i32)`](crate::output::GetMlTransformOutput::label_count): <p>The number of labels available for this transform.</p>
    ///   - [`schema(Option<Vec<SchemaColumn>>)`](crate::output::GetMlTransformOutput::schema): <p>The <code>Map   <column, type></column,></code> object that represents the schema that this transform accepts. Has an upper bound of 100 columns.</p>
    ///   - [`role(Option<String>)`](crate::output::GetMlTransformOutput::role): <p>The name or Amazon Resource Name (ARN) of the IAM role with the required permissions.</p>
    ///   - [`glue_version(Option<String>)`](crate::output::GetMlTransformOutput::glue_version): <p>This value determines which version of Glue this machine learning transform is compatible with. Glue 1.0 is recommended for most customers. If the value is not set, the Glue compatibility defaults to Glue 0.9. For more information, see <a href="https://docs.aws.amazon.com/glue/latest/dg/release-notes.html#release-notes-versions">Glue Versions</a> in the developer guide.</p>
    ///   - [`max_capacity(Option<f64>)`](crate::output::GetMlTransformOutput::max_capacity): <p>The number of Glue data processing units (DPUs) that are allocated to task runs for this transform. You can allocate from 2 to 100 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the <a href="https://aws.amazon.com/glue/pricing/">Glue pricing page</a>. </p>  <p>When the <code>WorkerType</code> field is set to a value other than <code>Standard</code>, the <code>MaxCapacity</code> field is set automatically and becomes read-only.</p>
    ///   - [`worker_type(Option<WorkerType>)`](crate::output::GetMlTransformOutput::worker_type): <p>The type of predefined worker that is allocated when this task runs. Accepts a value of Standard, G.1X, or G.2X.</p>  <ul>   <li> <p>For the <code>Standard</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.</p> </li>   <li> <p>For the <code>G.1X</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 64GB disk, and 1 executor per worker.</p> </li>   <li> <p>For the <code>G.2X</code> worker type, each worker provides 8 vCPU, 32 GB of memory and a 128GB disk, and 1 executor per worker.</p> </li>  </ul>
    ///   - [`number_of_workers(Option<i32>)`](crate::output::GetMlTransformOutput::number_of_workers): <p>The number of workers of a defined <code>workerType</code> that are allocated when this task runs.</p>
    ///   - [`timeout(Option<i32>)`](crate::output::GetMlTransformOutput::timeout): <p>The timeout for a task run for this transform in minutes. This is the maximum time that a task run for this transform can consume resources before it is terminated and enters <code>TIMEOUT</code> status. The default is 2,880 minutes (48 hours).</p>
    ///   - [`max_retries(Option<i32>)`](crate::output::GetMlTransformOutput::max_retries): <p>The maximum number of times to retry a task for this transform after a task run fails.</p>
    ///   - [`transform_encryption(Option<TransformEncryption>)`](crate::output::GetMlTransformOutput::transform_encryption): <p>The encryption-at-rest settings of the transform that apply to accessing user data. Machine learning transforms can access user data encrypted in Amazon S3 using KMS.</p>
    /// - On failure, responds with [`SdkError<GetMLTransformError>`](crate::error::GetMLTransformError)
    pub fn get_ml_transform(&self) -> fluent_builders::GetMLTransform {
        fluent_builders::GetMLTransform::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetMLTransforms`](crate::client::fluent_builders::GetMLTransforms) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::GetMLTransforms::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::GetMLTransforms::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::GetMLTransforms::set_next_token): <p>A paginated token to offset the results.</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::GetMLTransforms::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::GetMLTransforms::set_max_results): <p>The maximum number of results to return.</p>
    ///   - [`filter(TransformFilterCriteria)`](crate::client::fluent_builders::GetMLTransforms::filter) / [`set_filter(Option<TransformFilterCriteria>)`](crate::client::fluent_builders::GetMLTransforms::set_filter): <p>The filter transformation criteria.</p>
    ///   - [`sort(TransformSortCriteria)`](crate::client::fluent_builders::GetMLTransforms::sort) / [`set_sort(Option<TransformSortCriteria>)`](crate::client::fluent_builders::GetMLTransforms::set_sort): <p>The sorting criteria.</p>
    /// - On success, responds with [`GetMlTransformsOutput`](crate::output::GetMlTransformsOutput) with field(s):
    ///   - [`transforms(Option<Vec<MlTransform>>)`](crate::output::GetMlTransformsOutput::transforms): <p>A list of machine learning transforms.</p>
    ///   - [`next_token(Option<String>)`](crate::output::GetMlTransformsOutput::next_token): <p>A pagination token, if more results are available.</p>
    /// - On failure, responds with [`SdkError<GetMLTransformsError>`](crate::error::GetMLTransformsError)
    pub fn get_ml_transforms(&self) -> fluent_builders::GetMLTransforms {
        fluent_builders::GetMLTransforms::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetPartition`](crate::client::fluent_builders::GetPartition) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::GetPartition::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::GetPartition::set_catalog_id): <p>The ID of the Data Catalog where the partition in question resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::GetPartition::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::GetPartition::set_database_name): <p>The name of the catalog database where the partition resides.</p>
    ///   - [`table_name(impl Into<String>)`](crate::client::fluent_builders::GetPartition::table_name) / [`set_table_name(Option<String>)`](crate::client::fluent_builders::GetPartition::set_table_name): <p>The name of the partition's table.</p>
    ///   - [`partition_values(Vec<String>)`](crate::client::fluent_builders::GetPartition::partition_values) / [`set_partition_values(Option<Vec<String>>)`](crate::client::fluent_builders::GetPartition::set_partition_values): <p>The values that define the partition.</p>
    /// - On success, responds with [`GetPartitionOutput`](crate::output::GetPartitionOutput) with field(s):
    ///   - [`partition(Option<Partition>)`](crate::output::GetPartitionOutput::partition): <p>The requested information, in the form of a <code>Partition</code> object.</p>
    /// - On failure, responds with [`SdkError<GetPartitionError>`](crate::error::GetPartitionError)
    pub fn get_partition(&self) -> fluent_builders::GetPartition {
        fluent_builders::GetPartition::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetPartitionIndexes`](crate::client::fluent_builders::GetPartitionIndexes) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::GetPartitionIndexes::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::GetPartitionIndexes::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::GetPartitionIndexes::set_catalog_id): <p>The catalog ID where the table resides.</p>
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::GetPartitionIndexes::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::GetPartitionIndexes::set_database_name): <p>Specifies the name of a database from which you want to retrieve partition indexes.</p>
    ///   - [`table_name(impl Into<String>)`](crate::client::fluent_builders::GetPartitionIndexes::table_name) / [`set_table_name(Option<String>)`](crate::client::fluent_builders::GetPartitionIndexes::set_table_name): <p>Specifies the name of a table for which you want to retrieve the partition indexes.</p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::GetPartitionIndexes::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::GetPartitionIndexes::set_next_token): <p>A continuation token, included if this is a continuation call.</p>
    /// - On success, responds with [`GetPartitionIndexesOutput`](crate::output::GetPartitionIndexesOutput) with field(s):
    ///   - [`partition_index_descriptor_list(Option<Vec<PartitionIndexDescriptor>>)`](crate::output::GetPartitionIndexesOutput::partition_index_descriptor_list): <p>A list of index descriptors.</p>
    ///   - [`next_token(Option<String>)`](crate::output::GetPartitionIndexesOutput::next_token): <p>A continuation token, present if the current list segment is not the last.</p>
    /// - On failure, responds with [`SdkError<GetPartitionIndexesError>`](crate::error::GetPartitionIndexesError)
    pub fn get_partition_indexes(&self) -> fluent_builders::GetPartitionIndexes {
        fluent_builders::GetPartitionIndexes::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetPartitions`](crate::client::fluent_builders::GetPartitions) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::GetPartitions::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::GetPartitions::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::GetPartitions::set_catalog_id): <p>The ID of the Data Catalog where the partitions in question reside. If none is provided, the Amazon Web Services account ID is used by default.</p>
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::GetPartitions::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::GetPartitions::set_database_name): <p>The name of the catalog database where the partitions reside.</p>
    ///   - [`table_name(impl Into<String>)`](crate::client::fluent_builders::GetPartitions::table_name) / [`set_table_name(Option<String>)`](crate::client::fluent_builders::GetPartitions::set_table_name): <p>The name of the partitions' table.</p>
    ///   - [`expression(impl Into<String>)`](crate::client::fluent_builders::GetPartitions::expression) / [`set_expression(Option<String>)`](crate::client::fluent_builders::GetPartitions::set_expression): <p>An expression that filters the partitions to be returned.</p>  <p>The expression uses SQL syntax similar to the SQL <code>WHERE</code> filter clause. The SQL statement parser <a href="http://jsqlparser.sourceforge.net/home.php">JSQLParser</a> parses the expression. </p>  <p> <i>Operators</i>: The following are the operators that you can use in the <code>Expression</code> API call:</p>  <dl>   <dt>   =  </dt>   <dd>    <p>Checks whether the values of the two operands are equal; if yes, then the condition becomes true.</p>    <p>Example: Assume 'variable a' holds 10 and 'variable b' holds 20. </p>    <p>(a = b) is not true.</p>   </dd>   <dt>   &lt; &gt;  </dt>   <dd>    <p>Checks whether the values of two operands are equal; if the values are not equal, then the condition becomes true.</p>    <p>Example: (a &lt; &gt; b) is true.</p>   </dd>   <dt>   &gt;  </dt>   <dd>    <p>Checks whether the value of the left operand is greater than the value of the right operand; if yes, then the condition becomes true.</p>    <p>Example: (a &gt; b) is not true.</p>   </dd>   <dt>   &lt;  </dt>   <dd>    <p>Checks whether the value of the left operand is less than the value of the right operand; if yes, then the condition becomes true.</p>    <p>Example: (a &lt; b) is true.</p>   </dd>   <dt>   &gt;=  </dt>   <dd>    <p>Checks whether the value of the left operand is greater than or equal to the value of the right operand; if yes, then the condition becomes true.</p>    <p>Example: (a &gt;= b) is not true.</p>   </dd>   <dt>   &lt;=  </dt>   <dd>    <p>Checks whether the value of the left operand is less than or equal to the value of the right operand; if yes, then the condition becomes true.</p>    <p>Example: (a &lt;= b) is true.</p>   </dd>   <dt>   AND, OR, IN, BETWEEN, LIKE, NOT, IS NULL  </dt>   <dd>    <p>Logical operators.</p>   </dd>  </dl>  <p> <i>Supported Partition Key Types</i>: The following are the supported partition keys.</p>  <ul>   <li> <p> <code>string</code> </p> </li>   <li> <p> <code>date</code> </p> </li>   <li> <p> <code>timestamp</code> </p> </li>   <li> <p> <code>int</code> </p> </li>   <li> <p> <code>bigint</code> </p> </li>   <li> <p> <code>long</code> </p> </li>   <li> <p> <code>tinyint</code> </p> </li>   <li> <p> <code>smallint</code> </p> </li>   <li> <p> <code>decimal</code> </p> </li>  </ul>  <p>If an type is encountered that is not valid, an exception is thrown. </p>  <p>The following list shows the valid operators on each type. When you define a crawler, the <code>partitionKey</code> type is created as a <code>STRING</code>, to be compatible with the catalog partitions. </p>  <p> <i>Sample API Call</i>: </p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::GetPartitions::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::GetPartitions::set_next_token): <p>A continuation token, if this is not the first call to retrieve these partitions.</p>
    ///   - [`segment(Segment)`](crate::client::fluent_builders::GetPartitions::segment) / [`set_segment(Option<Segment>)`](crate::client::fluent_builders::GetPartitions::set_segment): <p>The segment of the table's partitions to scan in this request.</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::GetPartitions::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::GetPartitions::set_max_results): <p>The maximum number of partitions to return in a single response.</p>
    ///   - [`exclude_column_schema(bool)`](crate::client::fluent_builders::GetPartitions::exclude_column_schema) / [`set_exclude_column_schema(Option<bool>)`](crate::client::fluent_builders::GetPartitions::set_exclude_column_schema): <p>When true, specifies not returning the partition column schema. Useful when you are interested only in other partition attributes such as partition values or location. This approach avoids the problem of a large response by not returning duplicate data.</p>
    ///   - [`transaction_id(impl Into<String>)`](crate::client::fluent_builders::GetPartitions::transaction_id) / [`set_transaction_id(Option<String>)`](crate::client::fluent_builders::GetPartitions::set_transaction_id): <p>The transaction ID at which to read the partition contents.</p>
    ///   - [`query_as_of_time(DateTime)`](crate::client::fluent_builders::GetPartitions::query_as_of_time) / [`set_query_as_of_time(Option<DateTime>)`](crate::client::fluent_builders::GetPartitions::set_query_as_of_time): <p>The time as of when to read the partition contents. If not set, the most recent transaction commit time will be used. Cannot be specified along with <code>TransactionId</code>.</p>
    /// - On success, responds with [`GetPartitionsOutput`](crate::output::GetPartitionsOutput) with field(s):
    ///   - [`partitions(Option<Vec<Partition>>)`](crate::output::GetPartitionsOutput::partitions): <p>A list of requested partitions.</p>
    ///   - [`next_token(Option<String>)`](crate::output::GetPartitionsOutput::next_token): <p>A continuation token, if the returned list of partitions does not include the last one.</p>
    /// - On failure, responds with [`SdkError<GetPartitionsError>`](crate::error::GetPartitionsError)
    pub fn get_partitions(&self) -> fluent_builders::GetPartitions {
        fluent_builders::GetPartitions::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetPlan`](crate::client::fluent_builders::GetPlan) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`mapping(Vec<MappingEntry>)`](crate::client::fluent_builders::GetPlan::mapping) / [`set_mapping(Option<Vec<MappingEntry>>)`](crate::client::fluent_builders::GetPlan::set_mapping): <p>The list of mappings from a source table to target tables.</p>
    ///   - [`source(CatalogEntry)`](crate::client::fluent_builders::GetPlan::source) / [`set_source(Option<CatalogEntry>)`](crate::client::fluent_builders::GetPlan::set_source): <p>The source table.</p>
    ///   - [`sinks(Vec<CatalogEntry>)`](crate::client::fluent_builders::GetPlan::sinks) / [`set_sinks(Option<Vec<CatalogEntry>>)`](crate::client::fluent_builders::GetPlan::set_sinks): <p>The target tables.</p>
    ///   - [`location(Location)`](crate::client::fluent_builders::GetPlan::location) / [`set_location(Option<Location>)`](crate::client::fluent_builders::GetPlan::set_location): <p>The parameters for the mapping.</p>
    ///   - [`language(Language)`](crate::client::fluent_builders::GetPlan::language) / [`set_language(Option<Language>)`](crate::client::fluent_builders::GetPlan::set_language): <p>The programming language of the code to perform the mapping.</p>
    ///   - [`additional_plan_options_map(HashMap<String, String>)`](crate::client::fluent_builders::GetPlan::additional_plan_options_map) / [`set_additional_plan_options_map(Option<HashMap<String, String>>)`](crate::client::fluent_builders::GetPlan::set_additional_plan_options_map): <p>A map to hold additional optional key-value parameters.</p>  <p>Currently, these key-value pairs are supported:</p>  <ul>   <li> <p> <code>inferSchema</code>&nbsp; — &nbsp;Specifies whether to set <code>inferSchema</code> to true or false for the default script generated by an Glue job. For example, to set <code>inferSchema</code> to true, pass the following key value pair:</p> <p> <code>--additional-plan-options-map '{"inferSchema":"true"}'</code> </p> </li>  </ul>
    /// - On success, responds with [`GetPlanOutput`](crate::output::GetPlanOutput) with field(s):
    ///   - [`python_script(Option<String>)`](crate::output::GetPlanOutput::python_script): <p>A Python script to perform the mapping.</p>
    ///   - [`scala_code(Option<String>)`](crate::output::GetPlanOutput::scala_code): <p>The Scala code to perform the mapping.</p>
    /// - On failure, responds with [`SdkError<GetPlanError>`](crate::error::GetPlanError)
    pub fn get_plan(&self) -> fluent_builders::GetPlan {
        fluent_builders::GetPlan::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetRegistry`](crate::client::fluent_builders::GetRegistry) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`registry_id(RegistryId)`](crate::client::fluent_builders::GetRegistry::registry_id) / [`set_registry_id(Option<RegistryId>)`](crate::client::fluent_builders::GetRegistry::set_registry_id): <p>This is a wrapper structure that may contain the registry name and Amazon Resource Name (ARN).</p>
    /// - On success, responds with [`GetRegistryOutput`](crate::output::GetRegistryOutput) with field(s):
    ///   - [`registry_name(Option<String>)`](crate::output::GetRegistryOutput::registry_name): <p>The name of the registry.</p>
    ///   - [`registry_arn(Option<String>)`](crate::output::GetRegistryOutput::registry_arn): <p>The Amazon Resource Name (ARN) of the registry.</p>
    ///   - [`description(Option<String>)`](crate::output::GetRegistryOutput::description): <p>A description of the registry.</p>
    ///   - [`status(Option<RegistryStatus>)`](crate::output::GetRegistryOutput::status): <p>The status of the registry.</p>
    ///   - [`created_time(Option<String>)`](crate::output::GetRegistryOutput::created_time): <p>The date and time the registry was created.</p>
    ///   - [`updated_time(Option<String>)`](crate::output::GetRegistryOutput::updated_time): <p>The date and time the registry was updated.</p>
    /// - On failure, responds with [`SdkError<GetRegistryError>`](crate::error::GetRegistryError)
    pub fn get_registry(&self) -> fluent_builders::GetRegistry {
        fluent_builders::GetRegistry::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetResourcePolicies`](crate::client::fluent_builders::GetResourcePolicies) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::GetResourcePolicies::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::GetResourcePolicies::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::GetResourcePolicies::set_next_token): <p>A continuation token, if this is a continuation request.</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::GetResourcePolicies::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::GetResourcePolicies::set_max_results): <p>The maximum size of a list to return.</p>
    /// - On success, responds with [`GetResourcePoliciesOutput`](crate::output::GetResourcePoliciesOutput) with field(s):
    ///   - [`get_resource_policies_response_list(Option<Vec<GluePolicy>>)`](crate::output::GetResourcePoliciesOutput::get_resource_policies_response_list): <p>A list of the individual resource policies and the account-level resource policy.</p>
    ///   - [`next_token(Option<String>)`](crate::output::GetResourcePoliciesOutput::next_token): <p>A continuation token, if the returned list does not contain the last resource policy available.</p>
    /// - On failure, responds with [`SdkError<GetResourcePoliciesError>`](crate::error::GetResourcePoliciesError)
    pub fn get_resource_policies(&self) -> fluent_builders::GetResourcePolicies {
        fluent_builders::GetResourcePolicies::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetResourcePolicy`](crate::client::fluent_builders::GetResourcePolicy) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`resource_arn(impl Into<String>)`](crate::client::fluent_builders::GetResourcePolicy::resource_arn) / [`set_resource_arn(Option<String>)`](crate::client::fluent_builders::GetResourcePolicy::set_resource_arn): <p>The ARN of the Glue resource for which to retrieve the resource policy. If not supplied, the Data Catalog resource policy is returned. Use <code>GetResourcePolicies</code> to view all existing resource policies. For more information see <a href="https://docs.aws.amazon.com/glue/latest/dg/glue-specifying-resource-arns.html">Specifying Glue Resource ARNs</a>. </p>
    /// - On success, responds with [`GetResourcePolicyOutput`](crate::output::GetResourcePolicyOutput) with field(s):
    ///   - [`policy_in_json(Option<String>)`](crate::output::GetResourcePolicyOutput::policy_in_json): <p>Contains the requested policy document, in JSON format.</p>
    ///   - [`policy_hash(Option<String>)`](crate::output::GetResourcePolicyOutput::policy_hash): <p>Contains the hash value associated with this policy.</p>
    ///   - [`create_time(Option<DateTime>)`](crate::output::GetResourcePolicyOutput::create_time): <p>The date and time at which the policy was created.</p>
    ///   - [`update_time(Option<DateTime>)`](crate::output::GetResourcePolicyOutput::update_time): <p>The date and time at which the policy was last updated.</p>
    /// - On failure, responds with [`SdkError<GetResourcePolicyError>`](crate::error::GetResourcePolicyError)
    pub fn get_resource_policy(&self) -> fluent_builders::GetResourcePolicy {
        fluent_builders::GetResourcePolicy::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetSchema`](crate::client::fluent_builders::GetSchema) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`schema_id(SchemaId)`](crate::client::fluent_builders::GetSchema::schema_id) / [`set_schema_id(Option<SchemaId>)`](crate::client::fluent_builders::GetSchema::set_schema_id): <p>This is a wrapper structure to contain schema identity fields. The structure contains:</p>  <ul>   <li> <p>SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema. Either <code>SchemaArn</code> or <code>SchemaName</code> and <code>RegistryName</code> has to be provided.</p> </li>   <li> <p>SchemaId$SchemaName: The name of the schema. Either <code>SchemaArn</code> or <code>SchemaName</code> and <code>RegistryName</code> has to be provided.</p> </li>  </ul>
    /// - On success, responds with [`GetSchemaOutput`](crate::output::GetSchemaOutput) with field(s):
    ///   - [`registry_name(Option<String>)`](crate::output::GetSchemaOutput::registry_name): <p>The name of the registry.</p>
    ///   - [`registry_arn(Option<String>)`](crate::output::GetSchemaOutput::registry_arn): <p>The Amazon Resource Name (ARN) of the registry.</p>
    ///   - [`schema_name(Option<String>)`](crate::output::GetSchemaOutput::schema_name): <p>The name of the schema.</p>
    ///   - [`schema_arn(Option<String>)`](crate::output::GetSchemaOutput::schema_arn): <p>The Amazon Resource Name (ARN) of the schema.</p>
    ///   - [`description(Option<String>)`](crate::output::GetSchemaOutput::description): <p>A description of schema if specified when created</p>
    ///   - [`data_format(Option<DataFormat>)`](crate::output::GetSchemaOutput::data_format): <p>The data format of the schema definition. Currently <code>AVRO</code>, <code>JSON</code> and <code>PROTOBUF</code> are supported.</p>
    ///   - [`compatibility(Option<Compatibility>)`](crate::output::GetSchemaOutput::compatibility): <p>The compatibility mode of the schema.</p>
    ///   - [`schema_checkpoint(i64)`](crate::output::GetSchemaOutput::schema_checkpoint): <p>The version number of the checkpoint (the last time the compatibility mode was changed).</p>
    ///   - [`latest_schema_version(i64)`](crate::output::GetSchemaOutput::latest_schema_version): <p>The latest version of the schema associated with the returned schema definition.</p>
    ///   - [`next_schema_version(i64)`](crate::output::GetSchemaOutput::next_schema_version): <p>The next version of the schema associated with the returned schema definition.</p>
    ///   - [`schema_status(Option<SchemaStatus>)`](crate::output::GetSchemaOutput::schema_status): <p>The status of the schema.</p>
    ///   - [`created_time(Option<String>)`](crate::output::GetSchemaOutput::created_time): <p>The date and time the schema was created.</p>
    ///   - [`updated_time(Option<String>)`](crate::output::GetSchemaOutput::updated_time): <p>The date and time the schema was updated.</p>
    /// - On failure, responds with [`SdkError<GetSchemaError>`](crate::error::GetSchemaError)
    pub fn get_schema(&self) -> fluent_builders::GetSchema {
        fluent_builders::GetSchema::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetSchemaByDefinition`](crate::client::fluent_builders::GetSchemaByDefinition) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`schema_id(SchemaId)`](crate::client::fluent_builders::GetSchemaByDefinition::schema_id) / [`set_schema_id(Option<SchemaId>)`](crate::client::fluent_builders::GetSchemaByDefinition::set_schema_id): <p>This is a wrapper structure to contain schema identity fields. The structure contains:</p>  <ul>   <li> <p>SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.</p> </li>   <li> <p>SchemaId$SchemaName: The name of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.</p> </li>  </ul>
    ///   - [`schema_definition(impl Into<String>)`](crate::client::fluent_builders::GetSchemaByDefinition::schema_definition) / [`set_schema_definition(Option<String>)`](crate::client::fluent_builders::GetSchemaByDefinition::set_schema_definition): <p>The definition of the schema for which schema details are required.</p>
    /// - On success, responds with [`GetSchemaByDefinitionOutput`](crate::output::GetSchemaByDefinitionOutput) with field(s):
    ///   - [`schema_version_id(Option<String>)`](crate::output::GetSchemaByDefinitionOutput::schema_version_id): <p>The schema ID of the schema version.</p>
    ///   - [`schema_arn(Option<String>)`](crate::output::GetSchemaByDefinitionOutput::schema_arn): <p>The Amazon Resource Name (ARN) of the schema.</p>
    ///   - [`data_format(Option<DataFormat>)`](crate::output::GetSchemaByDefinitionOutput::data_format): <p>The data format of the schema definition. Currently <code>AVRO</code>, <code>JSON</code> and <code>PROTOBUF</code> are supported.</p>
    ///   - [`status(Option<SchemaVersionStatus>)`](crate::output::GetSchemaByDefinitionOutput::status): <p>The status of the schema version.</p>
    ///   - [`created_time(Option<String>)`](crate::output::GetSchemaByDefinitionOutput::created_time): <p>The date and time the schema was created.</p>
    /// - On failure, responds with [`SdkError<GetSchemaByDefinitionError>`](crate::error::GetSchemaByDefinitionError)
    pub fn get_schema_by_definition(&self) -> fluent_builders::GetSchemaByDefinition {
        fluent_builders::GetSchemaByDefinition::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetSchemaVersion`](crate::client::fluent_builders::GetSchemaVersion) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`schema_id(SchemaId)`](crate::client::fluent_builders::GetSchemaVersion::schema_id) / [`set_schema_id(Option<SchemaId>)`](crate::client::fluent_builders::GetSchemaVersion::set_schema_id): <p>This is a wrapper structure to contain schema identity fields. The structure contains:</p>  <ul>   <li> <p>SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema. Either <code>SchemaArn</code> or <code>SchemaName</code> and <code>RegistryName</code> has to be provided.</p> </li>   <li> <p>SchemaId$SchemaName: The name of the schema. Either <code>SchemaArn</code> or <code>SchemaName</code> and <code>RegistryName</code> has to be provided.</p> </li>  </ul>
    ///   - [`schema_version_id(impl Into<String>)`](crate::client::fluent_builders::GetSchemaVersion::schema_version_id) / [`set_schema_version_id(Option<String>)`](crate::client::fluent_builders::GetSchemaVersion::set_schema_version_id): <p>The <code>SchemaVersionId</code> of the schema version. This field is required for fetching by schema ID. Either this or the <code>SchemaId</code> wrapper has to be provided.</p>
    ///   - [`schema_version_number(SchemaVersionNumber)`](crate::client::fluent_builders::GetSchemaVersion::schema_version_number) / [`set_schema_version_number(Option<SchemaVersionNumber>)`](crate::client::fluent_builders::GetSchemaVersion::set_schema_version_number): <p>The version number of the schema.</p>
    /// - On success, responds with [`GetSchemaVersionOutput`](crate::output::GetSchemaVersionOutput) with field(s):
    ///   - [`schema_version_id(Option<String>)`](crate::output::GetSchemaVersionOutput::schema_version_id): <p>The <code>SchemaVersionId</code> of the schema version.</p>
    ///   - [`schema_definition(Option<String>)`](crate::output::GetSchemaVersionOutput::schema_definition): <p>The schema definition for the schema ID.</p>
    ///   - [`data_format(Option<DataFormat>)`](crate::output::GetSchemaVersionOutput::data_format): <p>The data format of the schema definition. Currently <code>AVRO</code>, <code>JSON</code> and <code>PROTOBUF</code> are supported.</p>
    ///   - [`schema_arn(Option<String>)`](crate::output::GetSchemaVersionOutput::schema_arn): <p>The Amazon Resource Name (ARN) of the schema.</p>
    ///   - [`version_number(i64)`](crate::output::GetSchemaVersionOutput::version_number): <p>The version number of the schema.</p>
    ///   - [`status(Option<SchemaVersionStatus>)`](crate::output::GetSchemaVersionOutput::status): <p>The status of the schema version. </p>
    ///   - [`created_time(Option<String>)`](crate::output::GetSchemaVersionOutput::created_time): <p>The date and time the schema version was created.</p>
    /// - On failure, responds with [`SdkError<GetSchemaVersionError>`](crate::error::GetSchemaVersionError)
    pub fn get_schema_version(&self) -> fluent_builders::GetSchemaVersion {
        fluent_builders::GetSchemaVersion::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetSchemaVersionsDiff`](crate::client::fluent_builders::GetSchemaVersionsDiff) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`schema_id(SchemaId)`](crate::client::fluent_builders::GetSchemaVersionsDiff::schema_id) / [`set_schema_id(Option<SchemaId>)`](crate::client::fluent_builders::GetSchemaVersionsDiff::set_schema_id): <p>This is a wrapper structure to contain schema identity fields. The structure contains:</p>  <ul>   <li> <p>SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.</p> </li>   <li> <p>SchemaId$SchemaName: The name of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.</p> </li>  </ul>
    ///   - [`first_schema_version_number(SchemaVersionNumber)`](crate::client::fluent_builders::GetSchemaVersionsDiff::first_schema_version_number) / [`set_first_schema_version_number(Option<SchemaVersionNumber>)`](crate::client::fluent_builders::GetSchemaVersionsDiff::set_first_schema_version_number): <p>The first of the two schema versions to be compared.</p>
    ///   - [`second_schema_version_number(SchemaVersionNumber)`](crate::client::fluent_builders::GetSchemaVersionsDiff::second_schema_version_number) / [`set_second_schema_version_number(Option<SchemaVersionNumber>)`](crate::client::fluent_builders::GetSchemaVersionsDiff::set_second_schema_version_number): <p>The second of the two schema versions to be compared.</p>
    ///   - [`schema_diff_type(SchemaDiffType)`](crate::client::fluent_builders::GetSchemaVersionsDiff::schema_diff_type) / [`set_schema_diff_type(Option<SchemaDiffType>)`](crate::client::fluent_builders::GetSchemaVersionsDiff::set_schema_diff_type): <p>Refers to <code>SYNTAX_DIFF</code>, which is the currently supported diff type.</p>
    /// - On success, responds with [`GetSchemaVersionsDiffOutput`](crate::output::GetSchemaVersionsDiffOutput) with field(s):
    ///   - [`diff(Option<String>)`](crate::output::GetSchemaVersionsDiffOutput::diff): <p>The difference between schemas as a string in JsonPatch format.</p>
    /// - On failure, responds with [`SdkError<GetSchemaVersionsDiffError>`](crate::error::GetSchemaVersionsDiffError)
    pub fn get_schema_versions_diff(&self) -> fluent_builders::GetSchemaVersionsDiff {
        fluent_builders::GetSchemaVersionsDiff::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetSecurityConfiguration`](crate::client::fluent_builders::GetSecurityConfiguration) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::GetSecurityConfiguration::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::GetSecurityConfiguration::set_name): <p>The name of the security configuration to retrieve.</p>
    /// - On success, responds with [`GetSecurityConfigurationOutput`](crate::output::GetSecurityConfigurationOutput) with field(s):
    ///   - [`security_configuration(Option<SecurityConfiguration>)`](crate::output::GetSecurityConfigurationOutput::security_configuration): <p>The requested security configuration.</p>
    /// - On failure, responds with [`SdkError<GetSecurityConfigurationError>`](crate::error::GetSecurityConfigurationError)
    pub fn get_security_configuration(&self) -> fluent_builders::GetSecurityConfiguration {
        fluent_builders::GetSecurityConfiguration::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetSecurityConfigurations`](crate::client::fluent_builders::GetSecurityConfigurations) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::GetSecurityConfigurations::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`max_results(i32)`](crate::client::fluent_builders::GetSecurityConfigurations::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::GetSecurityConfigurations::set_max_results): <p>The maximum number of results to return.</p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::GetSecurityConfigurations::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::GetSecurityConfigurations::set_next_token): <p>A continuation token, if this is a continuation call.</p>
    /// - On success, responds with [`GetSecurityConfigurationsOutput`](crate::output::GetSecurityConfigurationsOutput) with field(s):
    ///   - [`security_configurations(Option<Vec<SecurityConfiguration>>)`](crate::output::GetSecurityConfigurationsOutput::security_configurations): <p>A list of security configurations.</p>
    ///   - [`next_token(Option<String>)`](crate::output::GetSecurityConfigurationsOutput::next_token): <p>A continuation token, if there are more security configurations to return.</p>
    /// - On failure, responds with [`SdkError<GetSecurityConfigurationsError>`](crate::error::GetSecurityConfigurationsError)
    pub fn get_security_configurations(&self) -> fluent_builders::GetSecurityConfigurations {
        fluent_builders::GetSecurityConfigurations::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetSession`](crate::client::fluent_builders::GetSession) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`id(impl Into<String>)`](crate::client::fluent_builders::GetSession::id) / [`set_id(Option<String>)`](crate::client::fluent_builders::GetSession::set_id): <p>The ID of the session. </p>
    ///   - [`request_origin(impl Into<String>)`](crate::client::fluent_builders::GetSession::request_origin) / [`set_request_origin(Option<String>)`](crate::client::fluent_builders::GetSession::set_request_origin): <p>The origin of the request. </p>
    /// - On success, responds with [`GetSessionOutput`](crate::output::GetSessionOutput) with field(s):
    ///   - [`session(Option<Session>)`](crate::output::GetSessionOutput::session): <p>The session object is returned in the response.</p>
    /// - On failure, responds with [`SdkError<GetSessionError>`](crate::error::GetSessionError)
    pub fn get_session(&self) -> fluent_builders::GetSession {
        fluent_builders::GetSession::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetStatement`](crate::client::fluent_builders::GetStatement) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`session_id(impl Into<String>)`](crate::client::fluent_builders::GetStatement::session_id) / [`set_session_id(Option<String>)`](crate::client::fluent_builders::GetStatement::set_session_id): <p>The Session ID of the statement.</p>
    ///   - [`id(i32)`](crate::client::fluent_builders::GetStatement::id) / [`set_id(i32)`](crate::client::fluent_builders::GetStatement::set_id): <p>The Id of the statement.</p>
    ///   - [`request_origin(impl Into<String>)`](crate::client::fluent_builders::GetStatement::request_origin) / [`set_request_origin(Option<String>)`](crate::client::fluent_builders::GetStatement::set_request_origin): <p>The origin of the request.</p>
    /// - On success, responds with [`GetStatementOutput`](crate::output::GetStatementOutput) with field(s):
    ///   - [`statement(Option<Statement>)`](crate::output::GetStatementOutput::statement): <p>Returns the statement.</p>
    /// - On failure, responds with [`SdkError<GetStatementError>`](crate::error::GetStatementError)
    pub fn get_statement(&self) -> fluent_builders::GetStatement {
        fluent_builders::GetStatement::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetTable`](crate::client::fluent_builders::GetTable) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::GetTable::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::GetTable::set_catalog_id): <p>The ID of the Data Catalog where the table resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::GetTable::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::GetTable::set_database_name): <p>The name of the database in the catalog in which the table resides. For Hive compatibility, this name is entirely lowercase.</p>
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::GetTable::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::GetTable::set_name): <p>The name of the table for which to retrieve the definition. For Hive compatibility, this name is entirely lowercase.</p>
    ///   - [`transaction_id(impl Into<String>)`](crate::client::fluent_builders::GetTable::transaction_id) / [`set_transaction_id(Option<String>)`](crate::client::fluent_builders::GetTable::set_transaction_id): <p>The transaction ID at which to read the table contents. </p>
    ///   - [`query_as_of_time(DateTime)`](crate::client::fluent_builders::GetTable::query_as_of_time) / [`set_query_as_of_time(Option<DateTime>)`](crate::client::fluent_builders::GetTable::set_query_as_of_time): <p>The time as of when to read the table contents. If not set, the most recent transaction commit time will be used. Cannot be specified along with <code>TransactionId</code>.</p>
    /// - On success, responds with [`GetTableOutput`](crate::output::GetTableOutput) with field(s):
    ///   - [`table(Option<Table>)`](crate::output::GetTableOutput::table): <p>The <code>Table</code> object that defines the specified table.</p>
    /// - On failure, responds with [`SdkError<GetTableError>`](crate::error::GetTableError)
    pub fn get_table(&self) -> fluent_builders::GetTable {
        fluent_builders::GetTable::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetTables`](crate::client::fluent_builders::GetTables) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::GetTables::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::GetTables::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::GetTables::set_catalog_id): <p>The ID of the Data Catalog where the tables reside. If none is provided, the Amazon Web Services account ID is used by default.</p>
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::GetTables::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::GetTables::set_database_name): <p>The database in the catalog whose tables to list. For Hive compatibility, this name is entirely lowercase.</p>
    ///   - [`expression(impl Into<String>)`](crate::client::fluent_builders::GetTables::expression) / [`set_expression(Option<String>)`](crate::client::fluent_builders::GetTables::set_expression): <p>A regular expression pattern. If present, only those tables whose names match the pattern are returned.</p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::GetTables::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::GetTables::set_next_token): <p>A continuation token, included if this is a continuation call.</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::GetTables::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::GetTables::set_max_results): <p>The maximum number of tables to return in a single response.</p>
    ///   - [`transaction_id(impl Into<String>)`](crate::client::fluent_builders::GetTables::transaction_id) / [`set_transaction_id(Option<String>)`](crate::client::fluent_builders::GetTables::set_transaction_id): <p>The transaction ID at which to read the table contents.</p>
    ///   - [`query_as_of_time(DateTime)`](crate::client::fluent_builders::GetTables::query_as_of_time) / [`set_query_as_of_time(Option<DateTime>)`](crate::client::fluent_builders::GetTables::set_query_as_of_time): <p>The time as of when to read the table contents. If not set, the most recent transaction commit time will be used. Cannot be specified along with <code>TransactionId</code>.</p>
    /// - On success, responds with [`GetTablesOutput`](crate::output::GetTablesOutput) with field(s):
    ///   - [`table_list(Option<Vec<Table>>)`](crate::output::GetTablesOutput::table_list): <p>A list of the requested <code>Table</code> objects.</p>
    ///   - [`next_token(Option<String>)`](crate::output::GetTablesOutput::next_token): <p>A continuation token, present if the current list segment is not the last.</p>
    /// - On failure, responds with [`SdkError<GetTablesError>`](crate::error::GetTablesError)
    pub fn get_tables(&self) -> fluent_builders::GetTables {
        fluent_builders::GetTables::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetTableVersion`](crate::client::fluent_builders::GetTableVersion) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::GetTableVersion::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::GetTableVersion::set_catalog_id): <p>The ID of the Data Catalog where the tables reside. If none is provided, the Amazon Web Services account ID is used by default.</p>
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::GetTableVersion::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::GetTableVersion::set_database_name): <p>The database in the catalog in which the table resides. For Hive compatibility, this name is entirely lowercase.</p>
    ///   - [`table_name(impl Into<String>)`](crate::client::fluent_builders::GetTableVersion::table_name) / [`set_table_name(Option<String>)`](crate::client::fluent_builders::GetTableVersion::set_table_name): <p>The name of the table. For Hive compatibility, this name is entirely lowercase.</p>
    ///   - [`version_id(impl Into<String>)`](crate::client::fluent_builders::GetTableVersion::version_id) / [`set_version_id(Option<String>)`](crate::client::fluent_builders::GetTableVersion::set_version_id): <p>The ID value of the table version to be retrieved. A <code>VersionID</code> is a string representation of an integer. Each version is incremented by 1. </p>
    /// - On success, responds with [`GetTableVersionOutput`](crate::output::GetTableVersionOutput) with field(s):
    ///   - [`table_version(Option<TableVersion>)`](crate::output::GetTableVersionOutput::table_version): <p>The requested table version.</p>
    /// - On failure, responds with [`SdkError<GetTableVersionError>`](crate::error::GetTableVersionError)
    pub fn get_table_version(&self) -> fluent_builders::GetTableVersion {
        fluent_builders::GetTableVersion::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetTableVersions`](crate::client::fluent_builders::GetTableVersions) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::GetTableVersions::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::GetTableVersions::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::GetTableVersions::set_catalog_id): <p>The ID of the Data Catalog where the tables reside. If none is provided, the Amazon Web Services account ID is used by default.</p>
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::GetTableVersions::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::GetTableVersions::set_database_name): <p>The database in the catalog in which the table resides. For Hive compatibility, this name is entirely lowercase.</p>
    ///   - [`table_name(impl Into<String>)`](crate::client::fluent_builders::GetTableVersions::table_name) / [`set_table_name(Option<String>)`](crate::client::fluent_builders::GetTableVersions::set_table_name): <p>The name of the table. For Hive compatibility, this name is entirely lowercase.</p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::GetTableVersions::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::GetTableVersions::set_next_token): <p>A continuation token, if this is not the first call.</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::GetTableVersions::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::GetTableVersions::set_max_results): <p>The maximum number of table versions to return in one response.</p>
    /// - On success, responds with [`GetTableVersionsOutput`](crate::output::GetTableVersionsOutput) with field(s):
    ///   - [`table_versions(Option<Vec<TableVersion>>)`](crate::output::GetTableVersionsOutput::table_versions): <p>A list of strings identifying available versions of the specified table.</p>
    ///   - [`next_token(Option<String>)`](crate::output::GetTableVersionsOutput::next_token): <p>A continuation token, if the list of available versions does not include the last one.</p>
    /// - On failure, responds with [`SdkError<GetTableVersionsError>`](crate::error::GetTableVersionsError)
    pub fn get_table_versions(&self) -> fluent_builders::GetTableVersions {
        fluent_builders::GetTableVersions::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetTags`](crate::client::fluent_builders::GetTags) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`resource_arn(impl Into<String>)`](crate::client::fluent_builders::GetTags::resource_arn) / [`set_resource_arn(Option<String>)`](crate::client::fluent_builders::GetTags::set_resource_arn): <p>The Amazon Resource Name (ARN) of the resource for which to retrieve tags.</p>
    /// - On success, responds with [`GetTagsOutput`](crate::output::GetTagsOutput) with field(s):
    ///   - [`tags(Option<HashMap<String, String>>)`](crate::output::GetTagsOutput::tags): <p>The requested tags.</p>
    /// - On failure, responds with [`SdkError<GetTagsError>`](crate::error::GetTagsError)
    pub fn get_tags(&self) -> fluent_builders::GetTags {
        fluent_builders::GetTags::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetTrigger`](crate::client::fluent_builders::GetTrigger) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::GetTrigger::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::GetTrigger::set_name): <p>The name of the trigger to retrieve.</p>
    /// - On success, responds with [`GetTriggerOutput`](crate::output::GetTriggerOutput) with field(s):
    ///   - [`trigger(Option<Trigger>)`](crate::output::GetTriggerOutput::trigger): <p>The requested trigger definition.</p>
    /// - On failure, responds with [`SdkError<GetTriggerError>`](crate::error::GetTriggerError)
    pub fn get_trigger(&self) -> fluent_builders::GetTrigger {
        fluent_builders::GetTrigger::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetTriggers`](crate::client::fluent_builders::GetTriggers) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::GetTriggers::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::GetTriggers::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::GetTriggers::set_next_token): <p>A continuation token, if this is a continuation call.</p>
    ///   - [`dependent_job_name(impl Into<String>)`](crate::client::fluent_builders::GetTriggers::dependent_job_name) / [`set_dependent_job_name(Option<String>)`](crate::client::fluent_builders::GetTriggers::set_dependent_job_name): <p>The name of the job to retrieve triggers for. The trigger that can start this job is returned, and if there is no such trigger, all triggers are returned.</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::GetTriggers::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::GetTriggers::set_max_results): <p>The maximum size of the response.</p>
    /// - On success, responds with [`GetTriggersOutput`](crate::output::GetTriggersOutput) with field(s):
    ///   - [`triggers(Option<Vec<Trigger>>)`](crate::output::GetTriggersOutput::triggers): <p>A list of triggers for the specified job.</p>
    ///   - [`next_token(Option<String>)`](crate::output::GetTriggersOutput::next_token): <p>A continuation token, if not all the requested triggers have yet been returned.</p>
    /// - On failure, responds with [`SdkError<GetTriggersError>`](crate::error::GetTriggersError)
    pub fn get_triggers(&self) -> fluent_builders::GetTriggers {
        fluent_builders::GetTriggers::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetUnfilteredPartitionMetadata`](crate::client::fluent_builders::GetUnfilteredPartitionMetadata) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::GetUnfilteredPartitionMetadata::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::GetUnfilteredPartitionMetadata::set_catalog_id): (undocumented)
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::GetUnfilteredPartitionMetadata::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::GetUnfilteredPartitionMetadata::set_database_name): (undocumented)
    ///   - [`table_name(impl Into<String>)`](crate::client::fluent_builders::GetUnfilteredPartitionMetadata::table_name) / [`set_table_name(Option<String>)`](crate::client::fluent_builders::GetUnfilteredPartitionMetadata::set_table_name): (undocumented)
    ///   - [`partition_values(Vec<String>)`](crate::client::fluent_builders::GetUnfilteredPartitionMetadata::partition_values) / [`set_partition_values(Option<Vec<String>>)`](crate::client::fluent_builders::GetUnfilteredPartitionMetadata::set_partition_values): (undocumented)
    ///   - [`audit_context(AuditContext)`](crate::client::fluent_builders::GetUnfilteredPartitionMetadata::audit_context) / [`set_audit_context(Option<AuditContext>)`](crate::client::fluent_builders::GetUnfilteredPartitionMetadata::set_audit_context): <p>A structure containing information for audit.</p>
    ///   - [`supported_permission_types(Vec<PermissionType>)`](crate::client::fluent_builders::GetUnfilteredPartitionMetadata::supported_permission_types) / [`set_supported_permission_types(Option<Vec<PermissionType>>)`](crate::client::fluent_builders::GetUnfilteredPartitionMetadata::set_supported_permission_types): (undocumented)
    /// - On success, responds with [`GetUnfilteredPartitionMetadataOutput`](crate::output::GetUnfilteredPartitionMetadataOutput) with field(s):
    ///   - [`partition(Option<Partition>)`](crate::output::GetUnfilteredPartitionMetadataOutput::partition): <p>Represents a slice of table data.</p>
    ///   - [`authorized_columns(Option<Vec<String>>)`](crate::output::GetUnfilteredPartitionMetadataOutput::authorized_columns): (undocumented)
    ///   - [`is_registered_with_lake_formation(bool)`](crate::output::GetUnfilteredPartitionMetadataOutput::is_registered_with_lake_formation): (undocumented)
    /// - On failure, responds with [`SdkError<GetUnfilteredPartitionMetadataError>`](crate::error::GetUnfilteredPartitionMetadataError)
    pub fn get_unfiltered_partition_metadata(
        &self,
    ) -> fluent_builders::GetUnfilteredPartitionMetadata {
        fluent_builders::GetUnfilteredPartitionMetadata::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetUnfilteredPartitionsMetadata`](crate::client::fluent_builders::GetUnfilteredPartitionsMetadata) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::GetUnfilteredPartitionsMetadata::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::GetUnfilteredPartitionsMetadata::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::GetUnfilteredPartitionsMetadata::set_catalog_id): (undocumented)
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::GetUnfilteredPartitionsMetadata::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::GetUnfilteredPartitionsMetadata::set_database_name): (undocumented)
    ///   - [`table_name(impl Into<String>)`](crate::client::fluent_builders::GetUnfilteredPartitionsMetadata::table_name) / [`set_table_name(Option<String>)`](crate::client::fluent_builders::GetUnfilteredPartitionsMetadata::set_table_name): (undocumented)
    ///   - [`expression(impl Into<String>)`](crate::client::fluent_builders::GetUnfilteredPartitionsMetadata::expression) / [`set_expression(Option<String>)`](crate::client::fluent_builders::GetUnfilteredPartitionsMetadata::set_expression): (undocumented)
    ///   - [`audit_context(AuditContext)`](crate::client::fluent_builders::GetUnfilteredPartitionsMetadata::audit_context) / [`set_audit_context(Option<AuditContext>)`](crate::client::fluent_builders::GetUnfilteredPartitionsMetadata::set_audit_context): <p>A structure containing information for audit.</p>
    ///   - [`supported_permission_types(Vec<PermissionType>)`](crate::client::fluent_builders::GetUnfilteredPartitionsMetadata::supported_permission_types) / [`set_supported_permission_types(Option<Vec<PermissionType>>)`](crate::client::fluent_builders::GetUnfilteredPartitionsMetadata::set_supported_permission_types): (undocumented)
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::GetUnfilteredPartitionsMetadata::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::GetUnfilteredPartitionsMetadata::set_next_token): (undocumented)
    ///   - [`segment(Segment)`](crate::client::fluent_builders::GetUnfilteredPartitionsMetadata::segment) / [`set_segment(Option<Segment>)`](crate::client::fluent_builders::GetUnfilteredPartitionsMetadata::set_segment): <p>Defines a non-overlapping region of a table's partitions, allowing multiple requests to be run in parallel.</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::GetUnfilteredPartitionsMetadata::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::GetUnfilteredPartitionsMetadata::set_max_results): (undocumented)
    /// - On success, responds with [`GetUnfilteredPartitionsMetadataOutput`](crate::output::GetUnfilteredPartitionsMetadataOutput) with field(s):
    ///   - [`unfiltered_partitions(Option<Vec<UnfilteredPartition>>)`](crate::output::GetUnfilteredPartitionsMetadataOutput::unfiltered_partitions): (undocumented)
    ///   - [`next_token(Option<String>)`](crate::output::GetUnfilteredPartitionsMetadataOutput::next_token): (undocumented)
    /// - On failure, responds with [`SdkError<GetUnfilteredPartitionsMetadataError>`](crate::error::GetUnfilteredPartitionsMetadataError)
    pub fn get_unfiltered_partitions_metadata(
        &self,
    ) -> fluent_builders::GetUnfilteredPartitionsMetadata {
        fluent_builders::GetUnfilteredPartitionsMetadata::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetUnfilteredTableMetadata`](crate::client::fluent_builders::GetUnfilteredTableMetadata) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::GetUnfilteredTableMetadata::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::GetUnfilteredTableMetadata::set_catalog_id): (undocumented)
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::GetUnfilteredTableMetadata::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::GetUnfilteredTableMetadata::set_database_name): (undocumented)
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::GetUnfilteredTableMetadata::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::GetUnfilteredTableMetadata::set_name): (undocumented)
    ///   - [`audit_context(AuditContext)`](crate::client::fluent_builders::GetUnfilteredTableMetadata::audit_context) / [`set_audit_context(Option<AuditContext>)`](crate::client::fluent_builders::GetUnfilteredTableMetadata::set_audit_context): <p>A structure containing information for audit.</p>
    ///   - [`supported_permission_types(Vec<PermissionType>)`](crate::client::fluent_builders::GetUnfilteredTableMetadata::supported_permission_types) / [`set_supported_permission_types(Option<Vec<PermissionType>>)`](crate::client::fluent_builders::GetUnfilteredTableMetadata::set_supported_permission_types): (undocumented)
    /// - On success, responds with [`GetUnfilteredTableMetadataOutput`](crate::output::GetUnfilteredTableMetadataOutput) with field(s):
    ///   - [`table(Option<Table>)`](crate::output::GetUnfilteredTableMetadataOutput::table): <p>Represents a collection of related data organized in columns and rows.</p>
    ///   - [`authorized_columns(Option<Vec<String>>)`](crate::output::GetUnfilteredTableMetadataOutput::authorized_columns): (undocumented)
    ///   - [`is_registered_with_lake_formation(bool)`](crate::output::GetUnfilteredTableMetadataOutput::is_registered_with_lake_formation): (undocumented)
    ///   - [`cell_filters(Option<Vec<ColumnRowFilter>>)`](crate::output::GetUnfilteredTableMetadataOutput::cell_filters): (undocumented)
    /// - On failure, responds with [`SdkError<GetUnfilteredTableMetadataError>`](crate::error::GetUnfilteredTableMetadataError)
    pub fn get_unfiltered_table_metadata(&self) -> fluent_builders::GetUnfilteredTableMetadata {
        fluent_builders::GetUnfilteredTableMetadata::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetUserDefinedFunction`](crate::client::fluent_builders::GetUserDefinedFunction) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::GetUserDefinedFunction::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::GetUserDefinedFunction::set_catalog_id): <p>The ID of the Data Catalog where the function to be retrieved is located. If none is provided, the Amazon Web Services account ID is used by default.</p>
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::GetUserDefinedFunction::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::GetUserDefinedFunction::set_database_name): <p>The name of the catalog database where the function is located.</p>
    ///   - [`function_name(impl Into<String>)`](crate::client::fluent_builders::GetUserDefinedFunction::function_name) / [`set_function_name(Option<String>)`](crate::client::fluent_builders::GetUserDefinedFunction::set_function_name): <p>The name of the function.</p>
    /// - On success, responds with [`GetUserDefinedFunctionOutput`](crate::output::GetUserDefinedFunctionOutput) with field(s):
    ///   - [`user_defined_function(Option<UserDefinedFunction>)`](crate::output::GetUserDefinedFunctionOutput::user_defined_function): <p>The requested function definition.</p>
    /// - On failure, responds with [`SdkError<GetUserDefinedFunctionError>`](crate::error::GetUserDefinedFunctionError)
    pub fn get_user_defined_function(&self) -> fluent_builders::GetUserDefinedFunction {
        fluent_builders::GetUserDefinedFunction::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetUserDefinedFunctions`](crate::client::fluent_builders::GetUserDefinedFunctions) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::GetUserDefinedFunctions::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::GetUserDefinedFunctions::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::GetUserDefinedFunctions::set_catalog_id): <p>The ID of the Data Catalog where the functions to be retrieved are located. If none is provided, the Amazon Web Services account ID is used by default.</p>
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::GetUserDefinedFunctions::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::GetUserDefinedFunctions::set_database_name): <p>The name of the catalog database where the functions are located. If none is provided, functions from all the databases across the catalog will be returned.</p>
    ///   - [`pattern(impl Into<String>)`](crate::client::fluent_builders::GetUserDefinedFunctions::pattern) / [`set_pattern(Option<String>)`](crate::client::fluent_builders::GetUserDefinedFunctions::set_pattern): <p>An optional function-name pattern string that filters the function definitions returned.</p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::GetUserDefinedFunctions::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::GetUserDefinedFunctions::set_next_token): <p>A continuation token, if this is a continuation call.</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::GetUserDefinedFunctions::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::GetUserDefinedFunctions::set_max_results): <p>The maximum number of functions to return in one response.</p>
    /// - On success, responds with [`GetUserDefinedFunctionsOutput`](crate::output::GetUserDefinedFunctionsOutput) with field(s):
    ///   - [`user_defined_functions(Option<Vec<UserDefinedFunction>>)`](crate::output::GetUserDefinedFunctionsOutput::user_defined_functions): <p>A list of requested function definitions.</p>
    ///   - [`next_token(Option<String>)`](crate::output::GetUserDefinedFunctionsOutput::next_token): <p>A continuation token, if the list of functions returned does not include the last requested function.</p>
    /// - On failure, responds with [`SdkError<GetUserDefinedFunctionsError>`](crate::error::GetUserDefinedFunctionsError)
    pub fn get_user_defined_functions(&self) -> fluent_builders::GetUserDefinedFunctions {
        fluent_builders::GetUserDefinedFunctions::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetWorkflow`](crate::client::fluent_builders::GetWorkflow) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::GetWorkflow::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::GetWorkflow::set_name): <p>The name of the workflow to retrieve.</p>
    ///   - [`include_graph(bool)`](crate::client::fluent_builders::GetWorkflow::include_graph) / [`set_include_graph(Option<bool>)`](crate::client::fluent_builders::GetWorkflow::set_include_graph): <p>Specifies whether to include a graph when returning the workflow resource metadata.</p>
    /// - On success, responds with [`GetWorkflowOutput`](crate::output::GetWorkflowOutput) with field(s):
    ///   - [`workflow(Option<Workflow>)`](crate::output::GetWorkflowOutput::workflow): <p>The resource metadata for the workflow.</p>
    /// - On failure, responds with [`SdkError<GetWorkflowError>`](crate::error::GetWorkflowError)
    pub fn get_workflow(&self) -> fluent_builders::GetWorkflow {
        fluent_builders::GetWorkflow::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetWorkflowRun`](crate::client::fluent_builders::GetWorkflowRun) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::GetWorkflowRun::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::GetWorkflowRun::set_name): <p>Name of the workflow being run.</p>
    ///   - [`run_id(impl Into<String>)`](crate::client::fluent_builders::GetWorkflowRun::run_id) / [`set_run_id(Option<String>)`](crate::client::fluent_builders::GetWorkflowRun::set_run_id): <p>The ID of the workflow run.</p>
    ///   - [`include_graph(bool)`](crate::client::fluent_builders::GetWorkflowRun::include_graph) / [`set_include_graph(Option<bool>)`](crate::client::fluent_builders::GetWorkflowRun::set_include_graph): <p>Specifies whether to include the workflow graph in response or not.</p>
    /// - On success, responds with [`GetWorkflowRunOutput`](crate::output::GetWorkflowRunOutput) with field(s):
    ///   - [`run(Option<WorkflowRun>)`](crate::output::GetWorkflowRunOutput::run): <p>The requested workflow run metadata.</p>
    /// - On failure, responds with [`SdkError<GetWorkflowRunError>`](crate::error::GetWorkflowRunError)
    pub fn get_workflow_run(&self) -> fluent_builders::GetWorkflowRun {
        fluent_builders::GetWorkflowRun::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetWorkflowRunProperties`](crate::client::fluent_builders::GetWorkflowRunProperties) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::GetWorkflowRunProperties::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::GetWorkflowRunProperties::set_name): <p>Name of the workflow which was run.</p>
    ///   - [`run_id(impl Into<String>)`](crate::client::fluent_builders::GetWorkflowRunProperties::run_id) / [`set_run_id(Option<String>)`](crate::client::fluent_builders::GetWorkflowRunProperties::set_run_id): <p>The ID of the workflow run whose run properties should be returned.</p>
    /// - On success, responds with [`GetWorkflowRunPropertiesOutput`](crate::output::GetWorkflowRunPropertiesOutput) with field(s):
    ///   - [`run_properties(Option<HashMap<String, String>>)`](crate::output::GetWorkflowRunPropertiesOutput::run_properties): <p>The workflow run properties which were set during the specified run.</p>
    /// - On failure, responds with [`SdkError<GetWorkflowRunPropertiesError>`](crate::error::GetWorkflowRunPropertiesError)
    pub fn get_workflow_run_properties(&self) -> fluent_builders::GetWorkflowRunProperties {
        fluent_builders::GetWorkflowRunProperties::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`GetWorkflowRuns`](crate::client::fluent_builders::GetWorkflowRuns) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::GetWorkflowRuns::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::GetWorkflowRuns::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::GetWorkflowRuns::set_name): <p>Name of the workflow whose metadata of runs should be returned.</p>
    ///   - [`include_graph(bool)`](crate::client::fluent_builders::GetWorkflowRuns::include_graph) / [`set_include_graph(Option<bool>)`](crate::client::fluent_builders::GetWorkflowRuns::set_include_graph): <p>Specifies whether to include the workflow graph in response or not.</p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::GetWorkflowRuns::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::GetWorkflowRuns::set_next_token): <p>The maximum size of the response.</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::GetWorkflowRuns::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::GetWorkflowRuns::set_max_results): <p>The maximum number of workflow runs to be included in the response.</p>
    /// - On success, responds with [`GetWorkflowRunsOutput`](crate::output::GetWorkflowRunsOutput) with field(s):
    ///   - [`runs(Option<Vec<WorkflowRun>>)`](crate::output::GetWorkflowRunsOutput::runs): <p>A list of workflow run metadata objects.</p>
    ///   - [`next_token(Option<String>)`](crate::output::GetWorkflowRunsOutput::next_token): <p>A continuation token, if not all requested workflow runs have been returned.</p>
    /// - On failure, responds with [`SdkError<GetWorkflowRunsError>`](crate::error::GetWorkflowRunsError)
    pub fn get_workflow_runs(&self) -> fluent_builders::GetWorkflowRuns {
        fluent_builders::GetWorkflowRuns::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`ImportCatalogToGlue`](crate::client::fluent_builders::ImportCatalogToGlue) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::ImportCatalogToGlue::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::ImportCatalogToGlue::set_catalog_id): <p>The ID of the catalog to import. Currently, this should be the Amazon Web Services account ID.</p>
    /// - On success, responds with [`ImportCatalogToGlueOutput`](crate::output::ImportCatalogToGlueOutput)

    /// - On failure, responds with [`SdkError<ImportCatalogToGlueError>`](crate::error::ImportCatalogToGlueError)
    pub fn import_catalog_to_glue(&self) -> fluent_builders::ImportCatalogToGlue {
        fluent_builders::ImportCatalogToGlue::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`ListBlueprints`](crate::client::fluent_builders::ListBlueprints) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::ListBlueprints::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::ListBlueprints::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::ListBlueprints::set_next_token): <p>A continuation token, if this is a continuation request.</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::ListBlueprints::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::ListBlueprints::set_max_results): <p>The maximum size of a list to return.</p>
    ///   - [`tags(HashMap<String, String>)`](crate::client::fluent_builders::ListBlueprints::tags) / [`set_tags(Option<HashMap<String, String>>)`](crate::client::fluent_builders::ListBlueprints::set_tags): <p>Filters the list by an Amazon Web Services resource tag.</p>
    /// - On success, responds with [`ListBlueprintsOutput`](crate::output::ListBlueprintsOutput) with field(s):
    ///   - [`blueprints(Option<Vec<String>>)`](crate::output::ListBlueprintsOutput::blueprints): <p>List of names of blueprints in the account.</p>
    ///   - [`next_token(Option<String>)`](crate::output::ListBlueprintsOutput::next_token): <p>A continuation token, if not all blueprint names have been returned.</p>
    /// - On failure, responds with [`SdkError<ListBlueprintsError>`](crate::error::ListBlueprintsError)
    pub fn list_blueprints(&self) -> fluent_builders::ListBlueprints {
        fluent_builders::ListBlueprints::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`ListCrawlers`](crate::client::fluent_builders::ListCrawlers) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::ListCrawlers::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`max_results(i32)`](crate::client::fluent_builders::ListCrawlers::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::ListCrawlers::set_max_results): <p>The maximum size of a list to return.</p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::ListCrawlers::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::ListCrawlers::set_next_token): <p>A continuation token, if this is a continuation request.</p>
    ///   - [`tags(HashMap<String, String>)`](crate::client::fluent_builders::ListCrawlers::tags) / [`set_tags(Option<HashMap<String, String>>)`](crate::client::fluent_builders::ListCrawlers::set_tags): <p>Specifies to return only these tagged resources.</p>
    /// - On success, responds with [`ListCrawlersOutput`](crate::output::ListCrawlersOutput) with field(s):
    ///   - [`crawler_names(Option<Vec<String>>)`](crate::output::ListCrawlersOutput::crawler_names): <p>The names of all crawlers in the account, or the crawlers with the specified tags.</p>
    ///   - [`next_token(Option<String>)`](crate::output::ListCrawlersOutput::next_token): <p>A continuation token, if the returned list does not contain the last metric available.</p>
    /// - On failure, responds with [`SdkError<ListCrawlersError>`](crate::error::ListCrawlersError)
    pub fn list_crawlers(&self) -> fluent_builders::ListCrawlers {
        fluent_builders::ListCrawlers::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`ListCrawls`](crate::client::fluent_builders::ListCrawls) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`crawler_name(impl Into<String>)`](crate::client::fluent_builders::ListCrawls::crawler_name) / [`set_crawler_name(Option<String>)`](crate::client::fluent_builders::ListCrawls::set_crawler_name): <p>The name of the crawler whose runs you want to retrieve.</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::ListCrawls::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::ListCrawls::set_max_results): <p>The maximum number of results to return. The default is 20, and maximum is 100.</p>
    ///   - [`filters(Vec<CrawlsFilter>)`](crate::client::fluent_builders::ListCrawls::filters) / [`set_filters(Option<Vec<CrawlsFilter>>)`](crate::client::fluent_builders::ListCrawls::set_filters): <p>Filters the crawls by the criteria you specify in a list of <code>CrawlsFilter</code> objects.</p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::ListCrawls::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::ListCrawls::set_next_token): <p>A continuation token, if this is a continuation call.</p>
    /// - On success, responds with [`ListCrawlsOutput`](crate::output::ListCrawlsOutput) with field(s):
    ///   - [`crawls(Option<Vec<CrawlerHistory>>)`](crate::output::ListCrawlsOutput::crawls): <p>A list of <code>CrawlerHistory</code> objects representing the crawl runs that meet your criteria.</p>
    ///   - [`next_token(Option<String>)`](crate::output::ListCrawlsOutput::next_token): <p>A continuation token for paginating the returned list of tokens, returned if the current segment of the list is not the last.</p>
    /// - On failure, responds with [`SdkError<ListCrawlsError>`](crate::error::ListCrawlsError)
    pub fn list_crawls(&self) -> fluent_builders::ListCrawls {
        fluent_builders::ListCrawls::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`ListCustomEntityTypes`](crate::client::fluent_builders::ListCustomEntityTypes) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::ListCustomEntityTypes::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::ListCustomEntityTypes::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::ListCustomEntityTypes::set_next_token): <p>A paginated token to offset the results.</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::ListCustomEntityTypes::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::ListCustomEntityTypes::set_max_results): <p>The maximum number of results to return.</p>
    /// - On success, responds with [`ListCustomEntityTypesOutput`](crate::output::ListCustomEntityTypesOutput) with field(s):
    ///   - [`custom_entity_types(Option<Vec<CustomEntityType>>)`](crate::output::ListCustomEntityTypesOutput::custom_entity_types): <p>A list of <code>CustomEntityType</code> objects representing custom patterns.</p>
    ///   - [`next_token(Option<String>)`](crate::output::ListCustomEntityTypesOutput::next_token): <p>A pagination token, if more results are available.</p>
    /// - On failure, responds with [`SdkError<ListCustomEntityTypesError>`](crate::error::ListCustomEntityTypesError)
    pub fn list_custom_entity_types(&self) -> fluent_builders::ListCustomEntityTypes {
        fluent_builders::ListCustomEntityTypes::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`ListDataQualityResults`](crate::client::fluent_builders::ListDataQualityResults) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::ListDataQualityResults::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`filter(DataQualityResultFilterCriteria)`](crate::client::fluent_builders::ListDataQualityResults::filter) / [`set_filter(Option<DataQualityResultFilterCriteria>)`](crate::client::fluent_builders::ListDataQualityResults::set_filter): <p>The filter criteria.</p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::ListDataQualityResults::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::ListDataQualityResults::set_next_token): <p>A paginated token to offset the results.</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::ListDataQualityResults::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::ListDataQualityResults::set_max_results): <p>The maximum number of results to return.</p>
    /// - On success, responds with [`ListDataQualityResultsOutput`](crate::output::ListDataQualityResultsOutput) with field(s):
    ///   - [`results(Option<Vec<DataQualityResultDescription>>)`](crate::output::ListDataQualityResultsOutput::results): <p>A list of <code>DataQualityResultDescription</code> objects.</p>
    ///   - [`next_token(Option<String>)`](crate::output::ListDataQualityResultsOutput::next_token): <p>A pagination token, if more results are available.</p>
    /// - On failure, responds with [`SdkError<ListDataQualityResultsError>`](crate::error::ListDataQualityResultsError)
    pub fn list_data_quality_results(&self) -> fluent_builders::ListDataQualityResults {
        fluent_builders::ListDataQualityResults::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`ListDataQualityRuleRecommendationRuns`](crate::client::fluent_builders::ListDataQualityRuleRecommendationRuns) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::ListDataQualityRuleRecommendationRuns::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`filter(DataQualityRuleRecommendationRunFilter)`](crate::client::fluent_builders::ListDataQualityRuleRecommendationRuns::filter) / [`set_filter(Option<DataQualityRuleRecommendationRunFilter>)`](crate::client::fluent_builders::ListDataQualityRuleRecommendationRuns::set_filter): <p>The filter criteria.</p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::ListDataQualityRuleRecommendationRuns::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::ListDataQualityRuleRecommendationRuns::set_next_token): <p>A paginated token to offset the results.</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::ListDataQualityRuleRecommendationRuns::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::ListDataQualityRuleRecommendationRuns::set_max_results): <p>The maximum number of results to return.</p>
    /// - On success, responds with [`ListDataQualityRuleRecommendationRunsOutput`](crate::output::ListDataQualityRuleRecommendationRunsOutput) with field(s):
    ///   - [`runs(Option<Vec<DataQualityRuleRecommendationRunDescription>>)`](crate::output::ListDataQualityRuleRecommendationRunsOutput::runs): <p>A list of <code>DataQualityRuleRecommendationRunDescription</code> objects.</p>
    ///   - [`next_token(Option<String>)`](crate::output::ListDataQualityRuleRecommendationRunsOutput::next_token): <p>A pagination token, if more results are available.</p>
    /// - On failure, responds with [`SdkError<ListDataQualityRuleRecommendationRunsError>`](crate::error::ListDataQualityRuleRecommendationRunsError)
    pub fn list_data_quality_rule_recommendation_runs(
        &self,
    ) -> fluent_builders::ListDataQualityRuleRecommendationRuns {
        fluent_builders::ListDataQualityRuleRecommendationRuns::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`ListDataQualityRulesetEvaluationRuns`](crate::client::fluent_builders::ListDataQualityRulesetEvaluationRuns) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::ListDataQualityRulesetEvaluationRuns::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`filter(DataQualityRulesetEvaluationRunFilter)`](crate::client::fluent_builders::ListDataQualityRulesetEvaluationRuns::filter) / [`set_filter(Option<DataQualityRulesetEvaluationRunFilter>)`](crate::client::fluent_builders::ListDataQualityRulesetEvaluationRuns::set_filter): <p>The filter criteria.</p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::ListDataQualityRulesetEvaluationRuns::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::ListDataQualityRulesetEvaluationRuns::set_next_token): <p>A paginated token to offset the results.</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::ListDataQualityRulesetEvaluationRuns::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::ListDataQualityRulesetEvaluationRuns::set_max_results): <p>The maximum number of results to return.</p>
    /// - On success, responds with [`ListDataQualityRulesetEvaluationRunsOutput`](crate::output::ListDataQualityRulesetEvaluationRunsOutput) with field(s):
    ///   - [`runs(Option<Vec<DataQualityRulesetEvaluationRunDescription>>)`](crate::output::ListDataQualityRulesetEvaluationRunsOutput::runs): <p>A list of <code>DataQualityRulesetEvaluationRunDescription</code> objects representing data quality ruleset runs.</p>
    ///   - [`next_token(Option<String>)`](crate::output::ListDataQualityRulesetEvaluationRunsOutput::next_token): <p>A pagination token, if more results are available.</p>
    /// - On failure, responds with [`SdkError<ListDataQualityRulesetEvaluationRunsError>`](crate::error::ListDataQualityRulesetEvaluationRunsError)
    pub fn list_data_quality_ruleset_evaluation_runs(
        &self,
    ) -> fluent_builders::ListDataQualityRulesetEvaluationRuns {
        fluent_builders::ListDataQualityRulesetEvaluationRuns::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`ListDataQualityRulesets`](crate::client::fluent_builders::ListDataQualityRulesets) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::ListDataQualityRulesets::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::ListDataQualityRulesets::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::ListDataQualityRulesets::set_next_token): <p>A paginated token to offset the results.</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::ListDataQualityRulesets::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::ListDataQualityRulesets::set_max_results): <p>The maximum number of results to return.</p>
    ///   - [`filter(DataQualityRulesetFilterCriteria)`](crate::client::fluent_builders::ListDataQualityRulesets::filter) / [`set_filter(Option<DataQualityRulesetFilterCriteria>)`](crate::client::fluent_builders::ListDataQualityRulesets::set_filter): <p>The filter criteria. </p>
    ///   - [`tags(HashMap<String, String>)`](crate::client::fluent_builders::ListDataQualityRulesets::tags) / [`set_tags(Option<HashMap<String, String>>)`](crate::client::fluent_builders::ListDataQualityRulesets::set_tags): <p>A list of key-value pair tags.</p>
    /// - On success, responds with [`ListDataQualityRulesetsOutput`](crate::output::ListDataQualityRulesetsOutput) with field(s):
    ///   - [`rulesets(Option<Vec<DataQualityRulesetListDetails>>)`](crate::output::ListDataQualityRulesetsOutput::rulesets): <p>A paginated list of rulesets for the specified list of Glue tables.</p>
    ///   - [`next_token(Option<String>)`](crate::output::ListDataQualityRulesetsOutput::next_token): <p>A pagination token, if more results are available.</p>
    /// - On failure, responds with [`SdkError<ListDataQualityRulesetsError>`](crate::error::ListDataQualityRulesetsError)
    pub fn list_data_quality_rulesets(&self) -> fluent_builders::ListDataQualityRulesets {
        fluent_builders::ListDataQualityRulesets::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`ListDevEndpoints`](crate::client::fluent_builders::ListDevEndpoints) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::ListDevEndpoints::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::ListDevEndpoints::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::ListDevEndpoints::set_next_token): <p>A continuation token, if this is a continuation request.</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::ListDevEndpoints::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::ListDevEndpoints::set_max_results): <p>The maximum size of a list to return.</p>
    ///   - [`tags(HashMap<String, String>)`](crate::client::fluent_builders::ListDevEndpoints::tags) / [`set_tags(Option<HashMap<String, String>>)`](crate::client::fluent_builders::ListDevEndpoints::set_tags): <p>Specifies to return only these tagged resources.</p>
    /// - On success, responds with [`ListDevEndpointsOutput`](crate::output::ListDevEndpointsOutput) with field(s):
    ///   - [`dev_endpoint_names(Option<Vec<String>>)`](crate::output::ListDevEndpointsOutput::dev_endpoint_names): <p>The names of all the <code>DevEndpoint</code>s in the account, or the <code>DevEndpoint</code>s with the specified tags.</p>
    ///   - [`next_token(Option<String>)`](crate::output::ListDevEndpointsOutput::next_token): <p>A continuation token, if the returned list does not contain the last metric available.</p>
    /// - On failure, responds with [`SdkError<ListDevEndpointsError>`](crate::error::ListDevEndpointsError)
    pub fn list_dev_endpoints(&self) -> fluent_builders::ListDevEndpoints {
        fluent_builders::ListDevEndpoints::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`ListJobs`](crate::client::fluent_builders::ListJobs) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::ListJobs::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::ListJobs::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::ListJobs::set_next_token): <p>A continuation token, if this is a continuation request.</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::ListJobs::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::ListJobs::set_max_results): <p>The maximum size of a list to return.</p>
    ///   - [`tags(HashMap<String, String>)`](crate::client::fluent_builders::ListJobs::tags) / [`set_tags(Option<HashMap<String, String>>)`](crate::client::fluent_builders::ListJobs::set_tags): <p>Specifies to return only these tagged resources.</p>
    /// - On success, responds with [`ListJobsOutput`](crate::output::ListJobsOutput) with field(s):
    ///   - [`job_names(Option<Vec<String>>)`](crate::output::ListJobsOutput::job_names): <p>The names of all jobs in the account, or the jobs with the specified tags.</p>
    ///   - [`next_token(Option<String>)`](crate::output::ListJobsOutput::next_token): <p>A continuation token, if the returned list does not contain the last metric available.</p>
    /// - On failure, responds with [`SdkError<ListJobsError>`](crate::error::ListJobsError)
    pub fn list_jobs(&self) -> fluent_builders::ListJobs {
        fluent_builders::ListJobs::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`ListMLTransforms`](crate::client::fluent_builders::ListMLTransforms) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::ListMLTransforms::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::ListMLTransforms::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::ListMLTransforms::set_next_token): <p>A continuation token, if this is a continuation request.</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::ListMLTransforms::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::ListMLTransforms::set_max_results): <p>The maximum size of a list to return.</p>
    ///   - [`filter(TransformFilterCriteria)`](crate::client::fluent_builders::ListMLTransforms::filter) / [`set_filter(Option<TransformFilterCriteria>)`](crate::client::fluent_builders::ListMLTransforms::set_filter): <p>A <code>TransformFilterCriteria</code> used to filter the machine learning transforms.</p>
    ///   - [`sort(TransformSortCriteria)`](crate::client::fluent_builders::ListMLTransforms::sort) / [`set_sort(Option<TransformSortCriteria>)`](crate::client::fluent_builders::ListMLTransforms::set_sort): <p>A <code>TransformSortCriteria</code> used to sort the machine learning transforms.</p>
    ///   - [`tags(HashMap<String, String>)`](crate::client::fluent_builders::ListMLTransforms::tags) / [`set_tags(Option<HashMap<String, String>>)`](crate::client::fluent_builders::ListMLTransforms::set_tags): <p>Specifies to return only these tagged resources.</p>
    /// - On success, responds with [`ListMlTransformsOutput`](crate::output::ListMlTransformsOutput) with field(s):
    ///   - [`transform_ids(Option<Vec<String>>)`](crate::output::ListMlTransformsOutput::transform_ids): <p>The identifiers of all the machine learning transforms in the account, or the machine learning transforms with the specified tags.</p>
    ///   - [`next_token(Option<String>)`](crate::output::ListMlTransformsOutput::next_token): <p>A continuation token, if the returned list does not contain the last metric available.</p>
    /// - On failure, responds with [`SdkError<ListMLTransformsError>`](crate::error::ListMLTransformsError)
    pub fn list_ml_transforms(&self) -> fluent_builders::ListMLTransforms {
        fluent_builders::ListMLTransforms::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`ListRegistries`](crate::client::fluent_builders::ListRegistries) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::ListRegistries::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`max_results(i32)`](crate::client::fluent_builders::ListRegistries::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::ListRegistries::set_max_results): <p>Maximum number of results required per page. If the value is not supplied, this will be defaulted to 25 per page.</p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::ListRegistries::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::ListRegistries::set_next_token): <p>A continuation token, if this is a continuation call.</p>
    /// - On success, responds with [`ListRegistriesOutput`](crate::output::ListRegistriesOutput) with field(s):
    ///   - [`registries(Option<Vec<RegistryListItem>>)`](crate::output::ListRegistriesOutput::registries): <p>An array of <code>RegistryDetailedListItem</code> objects containing minimal details of each registry.</p>
    ///   - [`next_token(Option<String>)`](crate::output::ListRegistriesOutput::next_token): <p>A continuation token for paginating the returned list of tokens, returned if the current segment of the list is not the last.</p>
    /// - On failure, responds with [`SdkError<ListRegistriesError>`](crate::error::ListRegistriesError)
    pub fn list_registries(&self) -> fluent_builders::ListRegistries {
        fluent_builders::ListRegistries::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`ListSchemas`](crate::client::fluent_builders::ListSchemas) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::ListSchemas::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`registry_id(RegistryId)`](crate::client::fluent_builders::ListSchemas::registry_id) / [`set_registry_id(Option<RegistryId>)`](crate::client::fluent_builders::ListSchemas::set_registry_id): <p>A wrapper structure that may contain the registry name and Amazon Resource Name (ARN).</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::ListSchemas::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::ListSchemas::set_max_results): <p>Maximum number of results required per page. If the value is not supplied, this will be defaulted to 25 per page.</p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::ListSchemas::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::ListSchemas::set_next_token): <p>A continuation token, if this is a continuation call.</p>
    /// - On success, responds with [`ListSchemasOutput`](crate::output::ListSchemasOutput) with field(s):
    ///   - [`schemas(Option<Vec<SchemaListItem>>)`](crate::output::ListSchemasOutput::schemas): <p>An array of <code>SchemaListItem</code> objects containing details of each schema.</p>
    ///   - [`next_token(Option<String>)`](crate::output::ListSchemasOutput::next_token): <p>A continuation token for paginating the returned list of tokens, returned if the current segment of the list is not the last.</p>
    /// - On failure, responds with [`SdkError<ListSchemasError>`](crate::error::ListSchemasError)
    pub fn list_schemas(&self) -> fluent_builders::ListSchemas {
        fluent_builders::ListSchemas::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`ListSchemaVersions`](crate::client::fluent_builders::ListSchemaVersions) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::ListSchemaVersions::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`schema_id(SchemaId)`](crate::client::fluent_builders::ListSchemaVersions::schema_id) / [`set_schema_id(Option<SchemaId>)`](crate::client::fluent_builders::ListSchemaVersions::set_schema_id): <p>This is a wrapper structure to contain schema identity fields. The structure contains:</p>  <ul>   <li> <p>SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema. Either <code>SchemaArn</code> or <code>SchemaName</code> and <code>RegistryName</code> has to be provided.</p> </li>   <li> <p>SchemaId$SchemaName: The name of the schema. Either <code>SchemaArn</code> or <code>SchemaName</code> and <code>RegistryName</code> has to be provided.</p> </li>  </ul>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::ListSchemaVersions::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::ListSchemaVersions::set_max_results): <p>Maximum number of results required per page. If the value is not supplied, this will be defaulted to 25 per page.</p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::ListSchemaVersions::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::ListSchemaVersions::set_next_token): <p>A continuation token, if this is a continuation call.</p>
    /// - On success, responds with [`ListSchemaVersionsOutput`](crate::output::ListSchemaVersionsOutput) with field(s):
    ///   - [`schemas(Option<Vec<SchemaVersionListItem>>)`](crate::output::ListSchemaVersionsOutput::schemas): <p>An array of <code>SchemaVersionList</code> objects containing details of each schema version.</p>
    ///   - [`next_token(Option<String>)`](crate::output::ListSchemaVersionsOutput::next_token): <p>A continuation token for paginating the returned list of tokens, returned if the current segment of the list is not the last.</p>
    /// - On failure, responds with [`SdkError<ListSchemaVersionsError>`](crate::error::ListSchemaVersionsError)
    pub fn list_schema_versions(&self) -> fluent_builders::ListSchemaVersions {
        fluent_builders::ListSchemaVersions::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`ListSessions`](crate::client::fluent_builders::ListSessions) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::ListSessions::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::ListSessions::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::ListSessions::set_next_token): <p>The token for the next set of results, or null if there are no more result. </p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::ListSessions::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::ListSessions::set_max_results): <p>The maximum number of results. </p>
    ///   - [`tags(HashMap<String, String>)`](crate::client::fluent_builders::ListSessions::tags) / [`set_tags(Option<HashMap<String, String>>)`](crate::client::fluent_builders::ListSessions::set_tags): <p>Tags belonging to the session. </p>
    ///   - [`request_origin(impl Into<String>)`](crate::client::fluent_builders::ListSessions::request_origin) / [`set_request_origin(Option<String>)`](crate::client::fluent_builders::ListSessions::set_request_origin): <p>The origin of the request. </p>
    /// - On success, responds with [`ListSessionsOutput`](crate::output::ListSessionsOutput) with field(s):
    ///   - [`ids(Option<Vec<String>>)`](crate::output::ListSessionsOutput::ids): <p>Returns the ID of the session. </p>
    ///   - [`sessions(Option<Vec<Session>>)`](crate::output::ListSessionsOutput::sessions): <p>Returns the session object. </p>
    ///   - [`next_token(Option<String>)`](crate::output::ListSessionsOutput::next_token): <p>The token for the next set of results, or null if there are no more result. </p>
    /// - On failure, responds with [`SdkError<ListSessionsError>`](crate::error::ListSessionsError)
    pub fn list_sessions(&self) -> fluent_builders::ListSessions {
        fluent_builders::ListSessions::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`ListStatements`](crate::client::fluent_builders::ListStatements) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`session_id(impl Into<String>)`](crate::client::fluent_builders::ListStatements::session_id) / [`set_session_id(Option<String>)`](crate::client::fluent_builders::ListStatements::set_session_id): <p>The Session ID of the statements.</p>
    ///   - [`request_origin(impl Into<String>)`](crate::client::fluent_builders::ListStatements::request_origin) / [`set_request_origin(Option<String>)`](crate::client::fluent_builders::ListStatements::set_request_origin): <p>The origin of the request to list statements.</p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::ListStatements::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::ListStatements::set_next_token): <p>A continuation token, if this is a continuation call.</p>
    /// - On success, responds with [`ListStatementsOutput`](crate::output::ListStatementsOutput) with field(s):
    ///   - [`statements(Option<Vec<Statement>>)`](crate::output::ListStatementsOutput::statements): <p>Returns the list of statements.</p>
    ///   - [`next_token(Option<String>)`](crate::output::ListStatementsOutput::next_token): <p>A continuation token, if not all statements have yet been returned.</p>
    /// - On failure, responds with [`SdkError<ListStatementsError>`](crate::error::ListStatementsError)
    pub fn list_statements(&self) -> fluent_builders::ListStatements {
        fluent_builders::ListStatements::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`ListTriggers`](crate::client::fluent_builders::ListTriggers) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::ListTriggers::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::ListTriggers::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::ListTriggers::set_next_token): <p>A continuation token, if this is a continuation request.</p>
    ///   - [`dependent_job_name(impl Into<String>)`](crate::client::fluent_builders::ListTriggers::dependent_job_name) / [`set_dependent_job_name(Option<String>)`](crate::client::fluent_builders::ListTriggers::set_dependent_job_name): <p> The name of the job for which to retrieve triggers. The trigger that can start this job is returned. If there is no such trigger, all triggers are returned.</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::ListTriggers::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::ListTriggers::set_max_results): <p>The maximum size of a list to return.</p>
    ///   - [`tags(HashMap<String, String>)`](crate::client::fluent_builders::ListTriggers::tags) / [`set_tags(Option<HashMap<String, String>>)`](crate::client::fluent_builders::ListTriggers::set_tags): <p>Specifies to return only these tagged resources.</p>
    /// - On success, responds with [`ListTriggersOutput`](crate::output::ListTriggersOutput) with field(s):
    ///   - [`trigger_names(Option<Vec<String>>)`](crate::output::ListTriggersOutput::trigger_names): <p>The names of all triggers in the account, or the triggers with the specified tags.</p>
    ///   - [`next_token(Option<String>)`](crate::output::ListTriggersOutput::next_token): <p>A continuation token, if the returned list does not contain the last metric available.</p>
    /// - On failure, responds with [`SdkError<ListTriggersError>`](crate::error::ListTriggersError)
    pub fn list_triggers(&self) -> fluent_builders::ListTriggers {
        fluent_builders::ListTriggers::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`ListWorkflows`](crate::client::fluent_builders::ListWorkflows) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::ListWorkflows::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::ListWorkflows::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::ListWorkflows::set_next_token): <p>A continuation token, if this is a continuation request.</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::ListWorkflows::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::ListWorkflows::set_max_results): <p>The maximum size of a list to return.</p>
    /// - On success, responds with [`ListWorkflowsOutput`](crate::output::ListWorkflowsOutput) with field(s):
    ///   - [`workflows(Option<Vec<String>>)`](crate::output::ListWorkflowsOutput::workflows): <p>List of names of workflows in the account.</p>
    ///   - [`next_token(Option<String>)`](crate::output::ListWorkflowsOutput::next_token): <p>A continuation token, if not all workflow names have been returned.</p>
    /// - On failure, responds with [`SdkError<ListWorkflowsError>`](crate::error::ListWorkflowsError)
    pub fn list_workflows(&self) -> fluent_builders::ListWorkflows {
        fluent_builders::ListWorkflows::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`PutDataCatalogEncryptionSettings`](crate::client::fluent_builders::PutDataCatalogEncryptionSettings) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::PutDataCatalogEncryptionSettings::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::PutDataCatalogEncryptionSettings::set_catalog_id): <p>The ID of the Data Catalog to set the security configuration for. If none is provided, the Amazon Web Services account ID is used by default.</p>
    ///   - [`data_catalog_encryption_settings(DataCatalogEncryptionSettings)`](crate::client::fluent_builders::PutDataCatalogEncryptionSettings::data_catalog_encryption_settings) / [`set_data_catalog_encryption_settings(Option<DataCatalogEncryptionSettings>)`](crate::client::fluent_builders::PutDataCatalogEncryptionSettings::set_data_catalog_encryption_settings): <p>The security configuration to set.</p>
    /// - On success, responds with [`PutDataCatalogEncryptionSettingsOutput`](crate::output::PutDataCatalogEncryptionSettingsOutput)

    /// - On failure, responds with [`SdkError<PutDataCatalogEncryptionSettingsError>`](crate::error::PutDataCatalogEncryptionSettingsError)
    pub fn put_data_catalog_encryption_settings(
        &self,
    ) -> fluent_builders::PutDataCatalogEncryptionSettings {
        fluent_builders::PutDataCatalogEncryptionSettings::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`PutResourcePolicy`](crate::client::fluent_builders::PutResourcePolicy) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`policy_in_json(impl Into<String>)`](crate::client::fluent_builders::PutResourcePolicy::policy_in_json) / [`set_policy_in_json(Option<String>)`](crate::client::fluent_builders::PutResourcePolicy::set_policy_in_json): <p>Contains the policy document to set, in JSON format.</p>
    ///   - [`resource_arn(impl Into<String>)`](crate::client::fluent_builders::PutResourcePolicy::resource_arn) / [`set_resource_arn(Option<String>)`](crate::client::fluent_builders::PutResourcePolicy::set_resource_arn): <p>Do not use. For internal use only.</p>
    ///   - [`policy_hash_condition(impl Into<String>)`](crate::client::fluent_builders::PutResourcePolicy::policy_hash_condition) / [`set_policy_hash_condition(Option<String>)`](crate::client::fluent_builders::PutResourcePolicy::set_policy_hash_condition): <p>The hash value returned when the previous policy was set using <code>PutResourcePolicy</code>. Its purpose is to prevent concurrent modifications of a policy. Do not use this parameter if no previous policy has been set.</p>
    ///   - [`policy_exists_condition(ExistCondition)`](crate::client::fluent_builders::PutResourcePolicy::policy_exists_condition) / [`set_policy_exists_condition(Option<ExistCondition>)`](crate::client::fluent_builders::PutResourcePolicy::set_policy_exists_condition): <p>A value of <code>MUST_EXIST</code> is used to update a policy. A value of <code>NOT_EXIST</code> is used to create a new policy. If a value of <code>NONE</code> or a null value is used, the call does not depend on the existence of a policy.</p>
    ///   - [`enable_hybrid(EnableHybridValues)`](crate::client::fluent_builders::PutResourcePolicy::enable_hybrid) / [`set_enable_hybrid(Option<EnableHybridValues>)`](crate::client::fluent_builders::PutResourcePolicy::set_enable_hybrid): <p>If <code>'TRUE'</code>, indicates that you are using both methods to grant cross-account access to Data Catalog resources:</p>  <ul>   <li> <p>By directly updating the resource policy with <code>PutResourePolicy</code> </p> </li>   <li> <p>By using the <b>Grant permissions</b> command on the Amazon Web Services Management Console.</p> </li>  </ul>  <p>Must be set to <code>'TRUE'</code> if you have already used the Management Console to grant cross-account access, otherwise the call fails. Default is 'FALSE'.</p>
    /// - On success, responds with [`PutResourcePolicyOutput`](crate::output::PutResourcePolicyOutput) with field(s):
    ///   - [`policy_hash(Option<String>)`](crate::output::PutResourcePolicyOutput::policy_hash): <p>A hash of the policy that has just been set. This must be included in a subsequent call that overwrites or updates this policy.</p>
    /// - On failure, responds with [`SdkError<PutResourcePolicyError>`](crate::error::PutResourcePolicyError)
    pub fn put_resource_policy(&self) -> fluent_builders::PutResourcePolicy {
        fluent_builders::PutResourcePolicy::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`PutSchemaVersionMetadata`](crate::client::fluent_builders::PutSchemaVersionMetadata) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`schema_id(SchemaId)`](crate::client::fluent_builders::PutSchemaVersionMetadata::schema_id) / [`set_schema_id(Option<SchemaId>)`](crate::client::fluent_builders::PutSchemaVersionMetadata::set_schema_id): <p>The unique ID for the schema.</p>
    ///   - [`schema_version_number(SchemaVersionNumber)`](crate::client::fluent_builders::PutSchemaVersionMetadata::schema_version_number) / [`set_schema_version_number(Option<SchemaVersionNumber>)`](crate::client::fluent_builders::PutSchemaVersionMetadata::set_schema_version_number): <p>The version number of the schema.</p>
    ///   - [`schema_version_id(impl Into<String>)`](crate::client::fluent_builders::PutSchemaVersionMetadata::schema_version_id) / [`set_schema_version_id(Option<String>)`](crate::client::fluent_builders::PutSchemaVersionMetadata::set_schema_version_id): <p>The unique version ID of the schema version.</p>
    ///   - [`metadata_key_value(MetadataKeyValuePair)`](crate::client::fluent_builders::PutSchemaVersionMetadata::metadata_key_value) / [`set_metadata_key_value(Option<MetadataKeyValuePair>)`](crate::client::fluent_builders::PutSchemaVersionMetadata::set_metadata_key_value): <p>The metadata key's corresponding value.</p>
    /// - On success, responds with [`PutSchemaVersionMetadataOutput`](crate::output::PutSchemaVersionMetadataOutput) with field(s):
    ///   - [`schema_arn(Option<String>)`](crate::output::PutSchemaVersionMetadataOutput::schema_arn): <p>The Amazon Resource Name (ARN) for the schema.</p>
    ///   - [`schema_name(Option<String>)`](crate::output::PutSchemaVersionMetadataOutput::schema_name): <p>The name for the schema.</p>
    ///   - [`registry_name(Option<String>)`](crate::output::PutSchemaVersionMetadataOutput::registry_name): <p>The name for the registry.</p>
    ///   - [`latest_version(bool)`](crate::output::PutSchemaVersionMetadataOutput::latest_version): <p>The latest version of the schema.</p>
    ///   - [`version_number(i64)`](crate::output::PutSchemaVersionMetadataOutput::version_number): <p>The version number of the schema.</p>
    ///   - [`schema_version_id(Option<String>)`](crate::output::PutSchemaVersionMetadataOutput::schema_version_id): <p>The unique version ID of the schema version.</p>
    ///   - [`metadata_key(Option<String>)`](crate::output::PutSchemaVersionMetadataOutput::metadata_key): <p>The metadata key.</p>
    ///   - [`metadata_value(Option<String>)`](crate::output::PutSchemaVersionMetadataOutput::metadata_value): <p>The value of the metadata key.</p>
    /// - On failure, responds with [`SdkError<PutSchemaVersionMetadataError>`](crate::error::PutSchemaVersionMetadataError)
    pub fn put_schema_version_metadata(&self) -> fluent_builders::PutSchemaVersionMetadata {
        fluent_builders::PutSchemaVersionMetadata::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`PutWorkflowRunProperties`](crate::client::fluent_builders::PutWorkflowRunProperties) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::PutWorkflowRunProperties::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::PutWorkflowRunProperties::set_name): <p>Name of the workflow which was run.</p>
    ///   - [`run_id(impl Into<String>)`](crate::client::fluent_builders::PutWorkflowRunProperties::run_id) / [`set_run_id(Option<String>)`](crate::client::fluent_builders::PutWorkflowRunProperties::set_run_id): <p>The ID of the workflow run for which the run properties should be updated.</p>
    ///   - [`run_properties(HashMap<String, String>)`](crate::client::fluent_builders::PutWorkflowRunProperties::run_properties) / [`set_run_properties(Option<HashMap<String, String>>)`](crate::client::fluent_builders::PutWorkflowRunProperties::set_run_properties): <p>The properties to put for the specified run.</p>
    /// - On success, responds with [`PutWorkflowRunPropertiesOutput`](crate::output::PutWorkflowRunPropertiesOutput)

    /// - On failure, responds with [`SdkError<PutWorkflowRunPropertiesError>`](crate::error::PutWorkflowRunPropertiesError)
    pub fn put_workflow_run_properties(&self) -> fluent_builders::PutWorkflowRunProperties {
        fluent_builders::PutWorkflowRunProperties::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`QuerySchemaVersionMetadata`](crate::client::fluent_builders::QuerySchemaVersionMetadata) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`schema_id(SchemaId)`](crate::client::fluent_builders::QuerySchemaVersionMetadata::schema_id) / [`set_schema_id(Option<SchemaId>)`](crate::client::fluent_builders::QuerySchemaVersionMetadata::set_schema_id): <p>A wrapper structure that may contain the schema name and Amazon Resource Name (ARN).</p>
    ///   - [`schema_version_number(SchemaVersionNumber)`](crate::client::fluent_builders::QuerySchemaVersionMetadata::schema_version_number) / [`set_schema_version_number(Option<SchemaVersionNumber>)`](crate::client::fluent_builders::QuerySchemaVersionMetadata::set_schema_version_number): <p>The version number of the schema.</p>
    ///   - [`schema_version_id(impl Into<String>)`](crate::client::fluent_builders::QuerySchemaVersionMetadata::schema_version_id) / [`set_schema_version_id(Option<String>)`](crate::client::fluent_builders::QuerySchemaVersionMetadata::set_schema_version_id): <p>The unique version ID of the schema version.</p>
    ///   - [`metadata_list(Vec<MetadataKeyValuePair>)`](crate::client::fluent_builders::QuerySchemaVersionMetadata::metadata_list) / [`set_metadata_list(Option<Vec<MetadataKeyValuePair>>)`](crate::client::fluent_builders::QuerySchemaVersionMetadata::set_metadata_list): <p>Search key-value pairs for metadata, if they are not provided all the metadata information will be fetched.</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::QuerySchemaVersionMetadata::max_results) / [`set_max_results(i32)`](crate::client::fluent_builders::QuerySchemaVersionMetadata::set_max_results): <p>Maximum number of results required per page. If the value is not supplied, this will be defaulted to 25 per page.</p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::QuerySchemaVersionMetadata::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::QuerySchemaVersionMetadata::set_next_token): <p>A continuation token, if this is a continuation call.</p>
    /// - On success, responds with [`QuerySchemaVersionMetadataOutput`](crate::output::QuerySchemaVersionMetadataOutput) with field(s):
    ///   - [`metadata_info_map(Option<HashMap<String, MetadataInfo>>)`](crate::output::QuerySchemaVersionMetadataOutput::metadata_info_map): <p>A map of a metadata key and associated values.</p>
    ///   - [`schema_version_id(Option<String>)`](crate::output::QuerySchemaVersionMetadataOutput::schema_version_id): <p>The unique version ID of the schema version.</p>
    ///   - [`next_token(Option<String>)`](crate::output::QuerySchemaVersionMetadataOutput::next_token): <p>A continuation token for paginating the returned list of tokens, returned if the current segment of the list is not the last.</p>
    /// - On failure, responds with [`SdkError<QuerySchemaVersionMetadataError>`](crate::error::QuerySchemaVersionMetadataError)
    pub fn query_schema_version_metadata(&self) -> fluent_builders::QuerySchemaVersionMetadata {
        fluent_builders::QuerySchemaVersionMetadata::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`RegisterSchemaVersion`](crate::client::fluent_builders::RegisterSchemaVersion) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`schema_id(SchemaId)`](crate::client::fluent_builders::RegisterSchemaVersion::schema_id) / [`set_schema_id(Option<SchemaId>)`](crate::client::fluent_builders::RegisterSchemaVersion::set_schema_id): <p>This is a wrapper structure to contain schema identity fields. The structure contains:</p>  <ul>   <li> <p>SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema. Either <code>SchemaArn</code> or <code>SchemaName</code> and <code>RegistryName</code> has to be provided.</p> </li>   <li> <p>SchemaId$SchemaName: The name of the schema. Either <code>SchemaArn</code> or <code>SchemaName</code> and <code>RegistryName</code> has to be provided.</p> </li>  </ul>
    ///   - [`schema_definition(impl Into<String>)`](crate::client::fluent_builders::RegisterSchemaVersion::schema_definition) / [`set_schema_definition(Option<String>)`](crate::client::fluent_builders::RegisterSchemaVersion::set_schema_definition): <p>The schema definition using the <code>DataFormat</code> setting for the <code>SchemaName</code>.</p>
    /// - On success, responds with [`RegisterSchemaVersionOutput`](crate::output::RegisterSchemaVersionOutput) with field(s):
    ///   - [`schema_version_id(Option<String>)`](crate::output::RegisterSchemaVersionOutput::schema_version_id): <p>The unique ID that represents the version of this schema.</p>
    ///   - [`version_number(i64)`](crate::output::RegisterSchemaVersionOutput::version_number): <p>The version of this schema (for sync flow only, in case this is the first version).</p>
    ///   - [`status(Option<SchemaVersionStatus>)`](crate::output::RegisterSchemaVersionOutput::status): <p>The status of the schema version.</p>
    /// - On failure, responds with [`SdkError<RegisterSchemaVersionError>`](crate::error::RegisterSchemaVersionError)
    pub fn register_schema_version(&self) -> fluent_builders::RegisterSchemaVersion {
        fluent_builders::RegisterSchemaVersion::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`RemoveSchemaVersionMetadata`](crate::client::fluent_builders::RemoveSchemaVersionMetadata) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`schema_id(SchemaId)`](crate::client::fluent_builders::RemoveSchemaVersionMetadata::schema_id) / [`set_schema_id(Option<SchemaId>)`](crate::client::fluent_builders::RemoveSchemaVersionMetadata::set_schema_id): <p>A wrapper structure that may contain the schema name and Amazon Resource Name (ARN).</p>
    ///   - [`schema_version_number(SchemaVersionNumber)`](crate::client::fluent_builders::RemoveSchemaVersionMetadata::schema_version_number) / [`set_schema_version_number(Option<SchemaVersionNumber>)`](crate::client::fluent_builders::RemoveSchemaVersionMetadata::set_schema_version_number): <p>The version number of the schema.</p>
    ///   - [`schema_version_id(impl Into<String>)`](crate::client::fluent_builders::RemoveSchemaVersionMetadata::schema_version_id) / [`set_schema_version_id(Option<String>)`](crate::client::fluent_builders::RemoveSchemaVersionMetadata::set_schema_version_id): <p>The unique version ID of the schema version.</p>
    ///   - [`metadata_key_value(MetadataKeyValuePair)`](crate::client::fluent_builders::RemoveSchemaVersionMetadata::metadata_key_value) / [`set_metadata_key_value(Option<MetadataKeyValuePair>)`](crate::client::fluent_builders::RemoveSchemaVersionMetadata::set_metadata_key_value): <p>The value of the metadata key.</p>
    /// - On success, responds with [`RemoveSchemaVersionMetadataOutput`](crate::output::RemoveSchemaVersionMetadataOutput) with field(s):
    ///   - [`schema_arn(Option<String>)`](crate::output::RemoveSchemaVersionMetadataOutput::schema_arn): <p>The Amazon Resource Name (ARN) of the schema.</p>
    ///   - [`schema_name(Option<String>)`](crate::output::RemoveSchemaVersionMetadataOutput::schema_name): <p>The name of the schema.</p>
    ///   - [`registry_name(Option<String>)`](crate::output::RemoveSchemaVersionMetadataOutput::registry_name): <p>The name of the registry.</p>
    ///   - [`latest_version(bool)`](crate::output::RemoveSchemaVersionMetadataOutput::latest_version): <p>The latest version of the schema.</p>
    ///   - [`version_number(i64)`](crate::output::RemoveSchemaVersionMetadataOutput::version_number): <p>The version number of the schema.</p>
    ///   - [`schema_version_id(Option<String>)`](crate::output::RemoveSchemaVersionMetadataOutput::schema_version_id): <p>The version ID for the schema version.</p>
    ///   - [`metadata_key(Option<String>)`](crate::output::RemoveSchemaVersionMetadataOutput::metadata_key): <p>The metadata key.</p>
    ///   - [`metadata_value(Option<String>)`](crate::output::RemoveSchemaVersionMetadataOutput::metadata_value): <p>The value of the metadata key.</p>
    /// - On failure, responds with [`SdkError<RemoveSchemaVersionMetadataError>`](crate::error::RemoveSchemaVersionMetadataError)
    pub fn remove_schema_version_metadata(&self) -> fluent_builders::RemoveSchemaVersionMetadata {
        fluent_builders::RemoveSchemaVersionMetadata::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`ResetJobBookmark`](crate::client::fluent_builders::ResetJobBookmark) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`job_name(impl Into<String>)`](crate::client::fluent_builders::ResetJobBookmark::job_name) / [`set_job_name(Option<String>)`](crate::client::fluent_builders::ResetJobBookmark::set_job_name): <p>The name of the job in question.</p>
    ///   - [`run_id(impl Into<String>)`](crate::client::fluent_builders::ResetJobBookmark::run_id) / [`set_run_id(Option<String>)`](crate::client::fluent_builders::ResetJobBookmark::set_run_id): <p>The unique run identifier associated with this job run.</p>
    /// - On success, responds with [`ResetJobBookmarkOutput`](crate::output::ResetJobBookmarkOutput) with field(s):
    ///   - [`job_bookmark_entry(Option<JobBookmarkEntry>)`](crate::output::ResetJobBookmarkOutput::job_bookmark_entry): <p>The reset bookmark entry.</p>
    /// - On failure, responds with [`SdkError<ResetJobBookmarkError>`](crate::error::ResetJobBookmarkError)
    pub fn reset_job_bookmark(&self) -> fluent_builders::ResetJobBookmark {
        fluent_builders::ResetJobBookmark::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`ResumeWorkflowRun`](crate::client::fluent_builders::ResumeWorkflowRun) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::ResumeWorkflowRun::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::ResumeWorkflowRun::set_name): <p>The name of the workflow to resume.</p>
    ///   - [`run_id(impl Into<String>)`](crate::client::fluent_builders::ResumeWorkflowRun::run_id) / [`set_run_id(Option<String>)`](crate::client::fluent_builders::ResumeWorkflowRun::set_run_id): <p>The ID of the workflow run to resume.</p>
    ///   - [`node_ids(Vec<String>)`](crate::client::fluent_builders::ResumeWorkflowRun::node_ids) / [`set_node_ids(Option<Vec<String>>)`](crate::client::fluent_builders::ResumeWorkflowRun::set_node_ids): <p>A list of the node IDs for the nodes you want to restart. The nodes that are to be restarted must have a run attempt in the original run.</p>
    /// - On success, responds with [`ResumeWorkflowRunOutput`](crate::output::ResumeWorkflowRunOutput) with field(s):
    ///   - [`run_id(Option<String>)`](crate::output::ResumeWorkflowRunOutput::run_id): <p>The new ID assigned to the resumed workflow run. Each resume of a workflow run will have a new run ID.</p>
    ///   - [`node_ids(Option<Vec<String>>)`](crate::output::ResumeWorkflowRunOutput::node_ids): <p>A list of the node IDs for the nodes that were actually restarted.</p>
    /// - On failure, responds with [`SdkError<ResumeWorkflowRunError>`](crate::error::ResumeWorkflowRunError)
    pub fn resume_workflow_run(&self) -> fluent_builders::ResumeWorkflowRun {
        fluent_builders::ResumeWorkflowRun::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`RunStatement`](crate::client::fluent_builders::RunStatement) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`session_id(impl Into<String>)`](crate::client::fluent_builders::RunStatement::session_id) / [`set_session_id(Option<String>)`](crate::client::fluent_builders::RunStatement::set_session_id): <p>The Session Id of the statement to be run.</p>
    ///   - [`code(impl Into<String>)`](crate::client::fluent_builders::RunStatement::code) / [`set_code(Option<String>)`](crate::client::fluent_builders::RunStatement::set_code): <p>The statement code to be run.</p>
    ///   - [`request_origin(impl Into<String>)`](crate::client::fluent_builders::RunStatement::request_origin) / [`set_request_origin(Option<String>)`](crate::client::fluent_builders::RunStatement::set_request_origin): <p>The origin of the request.</p>
    /// - On success, responds with [`RunStatementOutput`](crate::output::RunStatementOutput) with field(s):
    ///   - [`id(i32)`](crate::output::RunStatementOutput::id): <p>Returns the Id of the statement that was run.</p>
    /// - On failure, responds with [`SdkError<RunStatementError>`](crate::error::RunStatementError)
    pub fn run_statement(&self) -> fluent_builders::RunStatement {
        fluent_builders::RunStatement::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`SearchTables`](crate::client::fluent_builders::SearchTables) operation.
    /// This operation supports pagination; See [`into_paginator()`](crate::client::fluent_builders::SearchTables::into_paginator).
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::SearchTables::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::SearchTables::set_catalog_id): <p>A unique identifier, consisting of <code> <i>account_id</i> </code>.</p>
    ///   - [`next_token(impl Into<String>)`](crate::client::fluent_builders::SearchTables::next_token) / [`set_next_token(Option<String>)`](crate::client::fluent_builders::SearchTables::set_next_token): <p>A continuation token, included if this is a continuation call.</p>
    ///   - [`filters(Vec<PropertyPredicate>)`](crate::client::fluent_builders::SearchTables::filters) / [`set_filters(Option<Vec<PropertyPredicate>>)`](crate::client::fluent_builders::SearchTables::set_filters): <p>A list of key-value pairs, and a comparator used to filter the search results. Returns all entities matching the predicate.</p>  <p>The <code>Comparator</code> member of the <code>PropertyPredicate</code> struct is used only for time fields, and can be omitted for other field types. Also, when comparing string values, such as when <code>Key=Name</code>, a fuzzy match algorithm is used. The <code>Key</code> field (for example, the value of the <code>Name</code> field) is split on certain punctuation characters, for example, -, :, #, etc. into tokens. Then each token is exact-match compared with the <code>Value</code> member of <code>PropertyPredicate</code>. For example, if <code>Key=Name</code> and <code>Value=link</code>, tables named <code>customer-link</code> and <code>xx-link-yy</code> are returned, but <code>xxlinkyy</code> is not returned.</p>
    ///   - [`search_text(impl Into<String>)`](crate::client::fluent_builders::SearchTables::search_text) / [`set_search_text(Option<String>)`](crate::client::fluent_builders::SearchTables::set_search_text): <p>A string used for a text search.</p>  <p>Specifying a value in quotes filters based on an exact match to the value.</p>
    ///   - [`sort_criteria(Vec<SortCriterion>)`](crate::client::fluent_builders::SearchTables::sort_criteria) / [`set_sort_criteria(Option<Vec<SortCriterion>>)`](crate::client::fluent_builders::SearchTables::set_sort_criteria): <p>A list of criteria for sorting the results by a field name, in an ascending or descending order.</p>
    ///   - [`max_results(i32)`](crate::client::fluent_builders::SearchTables::max_results) / [`set_max_results(Option<i32>)`](crate::client::fluent_builders::SearchTables::set_max_results): <p>The maximum number of tables to return in a single response.</p>
    ///   - [`resource_share_type(ResourceShareType)`](crate::client::fluent_builders::SearchTables::resource_share_type) / [`set_resource_share_type(Option<ResourceShareType>)`](crate::client::fluent_builders::SearchTables::set_resource_share_type): <p>Allows you to specify that you want to search the tables shared with your account. The allowable values are <code>FOREIGN</code> or <code>ALL</code>. </p>  <ul>   <li> <p>If set to <code>FOREIGN</code>, will search the tables shared with your account. </p> </li>   <li> <p>If set to <code>ALL</code>, will search the tables shared with your account, as well as the tables in yor local account. </p> </li>  </ul>
    /// - On success, responds with [`SearchTablesOutput`](crate::output::SearchTablesOutput) with field(s):
    ///   - [`next_token(Option<String>)`](crate::output::SearchTablesOutput::next_token): <p>A continuation token, present if the current list segment is not the last.</p>
    ///   - [`table_list(Option<Vec<Table>>)`](crate::output::SearchTablesOutput::table_list): <p>A list of the requested <code>Table</code> objects. The <code>SearchTables</code> response returns only the tables that you have access to.</p>
    /// - On failure, responds with [`SdkError<SearchTablesError>`](crate::error::SearchTablesError)
    pub fn search_tables(&self) -> fluent_builders::SearchTables {
        fluent_builders::SearchTables::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`StartBlueprintRun`](crate::client::fluent_builders::StartBlueprintRun) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`blueprint_name(impl Into<String>)`](crate::client::fluent_builders::StartBlueprintRun::blueprint_name) / [`set_blueprint_name(Option<String>)`](crate::client::fluent_builders::StartBlueprintRun::set_blueprint_name): <p>The name of the blueprint.</p>
    ///   - [`parameters(impl Into<String>)`](crate::client::fluent_builders::StartBlueprintRun::parameters) / [`set_parameters(Option<String>)`](crate::client::fluent_builders::StartBlueprintRun::set_parameters): <p>Specifies the parameters as a <code>BlueprintParameters</code> object.</p>
    ///   - [`role_arn(impl Into<String>)`](crate::client::fluent_builders::StartBlueprintRun::role_arn) / [`set_role_arn(Option<String>)`](crate::client::fluent_builders::StartBlueprintRun::set_role_arn): <p>Specifies the IAM role used to create the workflow.</p>
    /// - On success, responds with [`StartBlueprintRunOutput`](crate::output::StartBlueprintRunOutput) with field(s):
    ///   - [`run_id(Option<String>)`](crate::output::StartBlueprintRunOutput::run_id): <p>The run ID for this blueprint run.</p>
    /// - On failure, responds with [`SdkError<StartBlueprintRunError>`](crate::error::StartBlueprintRunError)
    pub fn start_blueprint_run(&self) -> fluent_builders::StartBlueprintRun {
        fluent_builders::StartBlueprintRun::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`StartCrawler`](crate::client::fluent_builders::StartCrawler) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::StartCrawler::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::StartCrawler::set_name): <p>Name of the crawler to start.</p>
    /// - On success, responds with [`StartCrawlerOutput`](crate::output::StartCrawlerOutput)

    /// - On failure, responds with [`SdkError<StartCrawlerError>`](crate::error::StartCrawlerError)
    pub fn start_crawler(&self) -> fluent_builders::StartCrawler {
        fluent_builders::StartCrawler::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`StartCrawlerSchedule`](crate::client::fluent_builders::StartCrawlerSchedule) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`crawler_name(impl Into<String>)`](crate::client::fluent_builders::StartCrawlerSchedule::crawler_name) / [`set_crawler_name(Option<String>)`](crate::client::fluent_builders::StartCrawlerSchedule::set_crawler_name): <p>Name of the crawler to schedule.</p>
    /// - On success, responds with [`StartCrawlerScheduleOutput`](crate::output::StartCrawlerScheduleOutput)

    /// - On failure, responds with [`SdkError<StartCrawlerScheduleError>`](crate::error::StartCrawlerScheduleError)
    pub fn start_crawler_schedule(&self) -> fluent_builders::StartCrawlerSchedule {
        fluent_builders::StartCrawlerSchedule::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`StartDataQualityRuleRecommendationRun`](crate::client::fluent_builders::StartDataQualityRuleRecommendationRun) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`data_source(DataSource)`](crate::client::fluent_builders::StartDataQualityRuleRecommendationRun::data_source) / [`set_data_source(Option<DataSource>)`](crate::client::fluent_builders::StartDataQualityRuleRecommendationRun::set_data_source): <p>The data source (Glue table) associated with this run.</p>
    ///   - [`role(impl Into<String>)`](crate::client::fluent_builders::StartDataQualityRuleRecommendationRun::role) / [`set_role(Option<String>)`](crate::client::fluent_builders::StartDataQualityRuleRecommendationRun::set_role): <p>An IAM role supplied to encrypt the results of the run.</p>
    ///   - [`number_of_workers(i32)`](crate::client::fluent_builders::StartDataQualityRuleRecommendationRun::number_of_workers) / [`set_number_of_workers(Option<i32>)`](crate::client::fluent_builders::StartDataQualityRuleRecommendationRun::set_number_of_workers): <p>The number of <code>G.1X</code> workers to be used in the run. The default is 5.</p>
    ///   - [`timeout(i32)`](crate::client::fluent_builders::StartDataQualityRuleRecommendationRun::timeout) / [`set_timeout(Option<i32>)`](crate::client::fluent_builders::StartDataQualityRuleRecommendationRun::set_timeout): <p>The timeout for a run in minutes. This is the maximum time that a run can consume resources before it is terminated and enters <code>TIMEOUT</code> status. The default is 2,880 minutes (48 hours).</p>
    ///   - [`created_ruleset_name(impl Into<String>)`](crate::client::fluent_builders::StartDataQualityRuleRecommendationRun::created_ruleset_name) / [`set_created_ruleset_name(Option<String>)`](crate::client::fluent_builders::StartDataQualityRuleRecommendationRun::set_created_ruleset_name): <p>A name for the ruleset.</p>
    ///   - [`client_token(impl Into<String>)`](crate::client::fluent_builders::StartDataQualityRuleRecommendationRun::client_token) / [`set_client_token(Option<String>)`](crate::client::fluent_builders::StartDataQualityRuleRecommendationRun::set_client_token): <p>Used for idempotency and is recommended to be set to a random ID (such as a UUID) to avoid creating or starting multiple instances of the same resource.</p>
    /// - On success, responds with [`StartDataQualityRuleRecommendationRunOutput`](crate::output::StartDataQualityRuleRecommendationRunOutput) with field(s):
    ///   - [`run_id(Option<String>)`](crate::output::StartDataQualityRuleRecommendationRunOutput::run_id): <p>The unique run identifier associated with this run.</p>
    /// - On failure, responds with [`SdkError<StartDataQualityRuleRecommendationRunError>`](crate::error::StartDataQualityRuleRecommendationRunError)
    pub fn start_data_quality_rule_recommendation_run(
        &self,
    ) -> fluent_builders::StartDataQualityRuleRecommendationRun {
        fluent_builders::StartDataQualityRuleRecommendationRun::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`StartDataQualityRulesetEvaluationRun`](crate::client::fluent_builders::StartDataQualityRulesetEvaluationRun) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`data_source(DataSource)`](crate::client::fluent_builders::StartDataQualityRulesetEvaluationRun::data_source) / [`set_data_source(Option<DataSource>)`](crate::client::fluent_builders::StartDataQualityRulesetEvaluationRun::set_data_source): <p>The data source (Glue table) associated with this run.</p>
    ///   - [`role(impl Into<String>)`](crate::client::fluent_builders::StartDataQualityRulesetEvaluationRun::role) / [`set_role(Option<String>)`](crate::client::fluent_builders::StartDataQualityRulesetEvaluationRun::set_role): <p>An IAM role supplied to encrypt the results of the run.</p>
    ///   - [`number_of_workers(i32)`](crate::client::fluent_builders::StartDataQualityRulesetEvaluationRun::number_of_workers) / [`set_number_of_workers(Option<i32>)`](crate::client::fluent_builders::StartDataQualityRulesetEvaluationRun::set_number_of_workers): <p>The number of <code>G.1X</code> workers to be used in the run. The default is 5.</p>
    ///   - [`timeout(i32)`](crate::client::fluent_builders::StartDataQualityRulesetEvaluationRun::timeout) / [`set_timeout(Option<i32>)`](crate::client::fluent_builders::StartDataQualityRulesetEvaluationRun::set_timeout): <p>The timeout for a run in minutes. This is the maximum time that a run can consume resources before it is terminated and enters <code>TIMEOUT</code> status. The default is 2,880 minutes (48 hours).</p>
    ///   - [`client_token(impl Into<String>)`](crate::client::fluent_builders::StartDataQualityRulesetEvaluationRun::client_token) / [`set_client_token(Option<String>)`](crate::client::fluent_builders::StartDataQualityRulesetEvaluationRun::set_client_token): <p>Used for idempotency and is recommended to be set to a random ID (such as a UUID) to avoid creating or starting multiple instances of the same resource.</p>
    ///   - [`additional_run_options(DataQualityEvaluationRunAdditionalRunOptions)`](crate::client::fluent_builders::StartDataQualityRulesetEvaluationRun::additional_run_options) / [`set_additional_run_options(Option<DataQualityEvaluationRunAdditionalRunOptions>)`](crate::client::fluent_builders::StartDataQualityRulesetEvaluationRun::set_additional_run_options): <p>Additional run options you can specify for an evaluation run.</p>
    ///   - [`ruleset_names(Vec<String>)`](crate::client::fluent_builders::StartDataQualityRulesetEvaluationRun::ruleset_names) / [`set_ruleset_names(Option<Vec<String>>)`](crate::client::fluent_builders::StartDataQualityRulesetEvaluationRun::set_ruleset_names): <p>A list of ruleset names.</p>
    /// - On success, responds with [`StartDataQualityRulesetEvaluationRunOutput`](crate::output::StartDataQualityRulesetEvaluationRunOutput) with field(s):
    ///   - [`run_id(Option<String>)`](crate::output::StartDataQualityRulesetEvaluationRunOutput::run_id): <p>The unique run identifier associated with this run.</p>
    /// - On failure, responds with [`SdkError<StartDataQualityRulesetEvaluationRunError>`](crate::error::StartDataQualityRulesetEvaluationRunError)
    pub fn start_data_quality_ruleset_evaluation_run(
        &self,
    ) -> fluent_builders::StartDataQualityRulesetEvaluationRun {
        fluent_builders::StartDataQualityRulesetEvaluationRun::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`StartExportLabelsTaskRun`](crate::client::fluent_builders::StartExportLabelsTaskRun) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`transform_id(impl Into<String>)`](crate::client::fluent_builders::StartExportLabelsTaskRun::transform_id) / [`set_transform_id(Option<String>)`](crate::client::fluent_builders::StartExportLabelsTaskRun::set_transform_id): <p>The unique identifier of the machine learning transform.</p>
    ///   - [`output_s3_path(impl Into<String>)`](crate::client::fluent_builders::StartExportLabelsTaskRun::output_s3_path) / [`set_output_s3_path(Option<String>)`](crate::client::fluent_builders::StartExportLabelsTaskRun::set_output_s3_path): <p>The Amazon S3 path where you export the labels.</p>
    /// - On success, responds with [`StartExportLabelsTaskRunOutput`](crate::output::StartExportLabelsTaskRunOutput) with field(s):
    ///   - [`task_run_id(Option<String>)`](crate::output::StartExportLabelsTaskRunOutput::task_run_id): <p>The unique identifier for the task run.</p>
    /// - On failure, responds with [`SdkError<StartExportLabelsTaskRunError>`](crate::error::StartExportLabelsTaskRunError)
    pub fn start_export_labels_task_run(&self) -> fluent_builders::StartExportLabelsTaskRun {
        fluent_builders::StartExportLabelsTaskRun::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`StartImportLabelsTaskRun`](crate::client::fluent_builders::StartImportLabelsTaskRun) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`transform_id(impl Into<String>)`](crate::client::fluent_builders::StartImportLabelsTaskRun::transform_id) / [`set_transform_id(Option<String>)`](crate::client::fluent_builders::StartImportLabelsTaskRun::set_transform_id): <p>The unique identifier of the machine learning transform.</p>
    ///   - [`input_s3_path(impl Into<String>)`](crate::client::fluent_builders::StartImportLabelsTaskRun::input_s3_path) / [`set_input_s3_path(Option<String>)`](crate::client::fluent_builders::StartImportLabelsTaskRun::set_input_s3_path): <p>The Amazon Simple Storage Service (Amazon S3) path from where you import the labels.</p>
    ///   - [`replace_all_labels(bool)`](crate::client::fluent_builders::StartImportLabelsTaskRun::replace_all_labels) / [`set_replace_all_labels(bool)`](crate::client::fluent_builders::StartImportLabelsTaskRun::set_replace_all_labels): <p>Indicates whether to overwrite your existing labels.</p>
    /// - On success, responds with [`StartImportLabelsTaskRunOutput`](crate::output::StartImportLabelsTaskRunOutput) with field(s):
    ///   - [`task_run_id(Option<String>)`](crate::output::StartImportLabelsTaskRunOutput::task_run_id): <p>The unique identifier for the task run.</p>
    /// - On failure, responds with [`SdkError<StartImportLabelsTaskRunError>`](crate::error::StartImportLabelsTaskRunError)
    pub fn start_import_labels_task_run(&self) -> fluent_builders::StartImportLabelsTaskRun {
        fluent_builders::StartImportLabelsTaskRun::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`StartJobRun`](crate::client::fluent_builders::StartJobRun) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`job_name(impl Into<String>)`](crate::client::fluent_builders::StartJobRun::job_name) / [`set_job_name(Option<String>)`](crate::client::fluent_builders::StartJobRun::set_job_name): <p>The name of the job definition to use.</p>
    ///   - [`job_run_id(impl Into<String>)`](crate::client::fluent_builders::StartJobRun::job_run_id) / [`set_job_run_id(Option<String>)`](crate::client::fluent_builders::StartJobRun::set_job_run_id): <p>The ID of a previous <code>JobRun</code> to retry.</p>
    ///   - [`arguments(HashMap<String, String>)`](crate::client::fluent_builders::StartJobRun::arguments) / [`set_arguments(Option<HashMap<String, String>>)`](crate::client::fluent_builders::StartJobRun::set_arguments): <p>The job arguments specifically for this run. For this job run, they replace the default arguments set in the job definition itself.</p>  <p>You can specify arguments here that your own job-execution script consumes, as well as arguments that Glue itself consumes.</p>  <p>Job arguments may be logged. Do not pass plaintext secrets as arguments. Retrieve secrets from a Glue Connection, Secrets Manager or other secret management mechanism if you intend to keep them within the Job. </p>  <p>For information about how to specify and consume your own Job arguments, see the <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html">Calling Glue APIs in Python</a> topic in the developer guide.</p>  <p>For information about the key-value pairs that Glue consumes to set up your job, see the <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html">Special Parameters Used by Glue</a> topic in the developer guide.</p>
    ///   - [`allocated_capacity(i32)`](crate::client::fluent_builders::StartJobRun::allocated_capacity) / [`set_allocated_capacity(i32)`](crate::client::fluent_builders::StartJobRun::set_allocated_capacity): <p>This field is deprecated. Use <code>MaxCapacity</code> instead.</p>  <p>The number of Glue data processing units (DPUs) to allocate to this JobRun. You can allocate a minimum of 2 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the <a href="https://aws.amazon.com/glue/pricing/">Glue pricing page</a>.</p>
    ///   - [`timeout(i32)`](crate::client::fluent_builders::StartJobRun::timeout) / [`set_timeout(Option<i32>)`](crate::client::fluent_builders::StartJobRun::set_timeout): <p>The <code>JobRun</code> timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters <code>TIMEOUT</code> status. This value overrides the timeout value set in the parent job.</p>  <p>Streaming jobs do not have a timeout. The default for non-streaming jobs is 2,880 minutes (48 hours).</p>
    ///   - [`max_capacity(f64)`](crate::client::fluent_builders::StartJobRun::max_capacity) / [`set_max_capacity(Option<f64>)`](crate::client::fluent_builders::StartJobRun::set_max_capacity): <p>The number of Glue data processing units (DPUs) that can be allocated when this job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the <a href="https://aws.amazon.com/glue/pricing/">Glue pricing page</a>.</p>  <p>Do not set <code>Max Capacity</code> if using <code>WorkerType</code> and <code>NumberOfWorkers</code>.</p>  <p>The value that can be allocated for <code>MaxCapacity</code> depends on whether you are running a Python shell job, or an Apache Spark ETL job:</p>  <ul>   <li> <p>When you specify a Python shell job (<code>JobCommand.Name</code>="pythonshell"), you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.</p> </li>   <li> <p>When you specify an Apache Spark ETL job (<code>JobCommand.Name</code>="glueetl"), you can allocate a minimum of 2 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU allocation.</p> </li>  </ul>
    ///   - [`security_configuration(impl Into<String>)`](crate::client::fluent_builders::StartJobRun::security_configuration) / [`set_security_configuration(Option<String>)`](crate::client::fluent_builders::StartJobRun::set_security_configuration): <p>The name of the <code>SecurityConfiguration</code> structure to be used with this job run.</p>
    ///   - [`notification_property(NotificationProperty)`](crate::client::fluent_builders::StartJobRun::notification_property) / [`set_notification_property(Option<NotificationProperty>)`](crate::client::fluent_builders::StartJobRun::set_notification_property): <p>Specifies configuration properties of a job run notification.</p>
    ///   - [`worker_type(WorkerType)`](crate::client::fluent_builders::StartJobRun::worker_type) / [`set_worker_type(Option<WorkerType>)`](crate::client::fluent_builders::StartJobRun::set_worker_type): <p>The type of predefined worker that is allocated when a job runs. Accepts a value of Standard, G.1X, G.2X, or G.025X.</p>  <ul>   <li> <p>For the <code>Standard</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.</p> </li>   <li> <p>For the <code>G.1X</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 64GB disk, and 1 executor per worker.</p> </li>   <li> <p>For the <code>G.2X</code> worker type, each worker provides 8 vCPU, 32 GB of memory and a 128GB disk, and 1 executor per worker.</p> </li>   <li> <p>For the <code>G.025X</code> worker type, each worker maps to 0.25 DPU (2 vCPU, 4 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for low volume streaming jobs. This worker type is only available for Glue version 3.0 streaming jobs.</p> </li>  </ul>
    ///   - [`number_of_workers(i32)`](crate::client::fluent_builders::StartJobRun::number_of_workers) / [`set_number_of_workers(Option<i32>)`](crate::client::fluent_builders::StartJobRun::set_number_of_workers): <p>The number of workers of a defined <code>workerType</code> that are allocated when a job runs.</p>
    ///   - [`execution_class(ExecutionClass)`](crate::client::fluent_builders::StartJobRun::execution_class) / [`set_execution_class(Option<ExecutionClass>)`](crate::client::fluent_builders::StartJobRun::set_execution_class): <p>Indicates whether the job is run with a standard or flexible execution class. The standard execution-class is ideal for time-sensitive workloads that require fast job startup and dedicated resources.</p>  <p>The flexible execution class is appropriate for time-insensitive jobs whose start and completion times may vary. </p>  <p>Only jobs with Glue version 3.0 and above and command type <code>glueetl</code> will be allowed to set <code>ExecutionClass</code> to <code>FLEX</code>. The flexible execution class is available for Spark jobs.</p>
    /// - On success, responds with [`StartJobRunOutput`](crate::output::StartJobRunOutput) with field(s):
    ///   - [`job_run_id(Option<String>)`](crate::output::StartJobRunOutput::job_run_id): <p>The ID assigned to this job run.</p>
    /// - On failure, responds with [`SdkError<StartJobRunError>`](crate::error::StartJobRunError)
    pub fn start_job_run(&self) -> fluent_builders::StartJobRun {
        fluent_builders::StartJobRun::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`StartMLEvaluationTaskRun`](crate::client::fluent_builders::StartMLEvaluationTaskRun) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`transform_id(impl Into<String>)`](crate::client::fluent_builders::StartMLEvaluationTaskRun::transform_id) / [`set_transform_id(Option<String>)`](crate::client::fluent_builders::StartMLEvaluationTaskRun::set_transform_id): <p>The unique identifier of the machine learning transform.</p>
    /// - On success, responds with [`StartMlEvaluationTaskRunOutput`](crate::output::StartMlEvaluationTaskRunOutput) with field(s):
    ///   - [`task_run_id(Option<String>)`](crate::output::StartMlEvaluationTaskRunOutput::task_run_id): <p>The unique identifier associated with this run.</p>
    /// - On failure, responds with [`SdkError<StartMLEvaluationTaskRunError>`](crate::error::StartMLEvaluationTaskRunError)
    pub fn start_ml_evaluation_task_run(&self) -> fluent_builders::StartMLEvaluationTaskRun {
        fluent_builders::StartMLEvaluationTaskRun::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`StartMLLabelingSetGenerationTaskRun`](crate::client::fluent_builders::StartMLLabelingSetGenerationTaskRun) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`transform_id(impl Into<String>)`](crate::client::fluent_builders::StartMLLabelingSetGenerationTaskRun::transform_id) / [`set_transform_id(Option<String>)`](crate::client::fluent_builders::StartMLLabelingSetGenerationTaskRun::set_transform_id): <p>The unique identifier of the machine learning transform.</p>
    ///   - [`output_s3_path(impl Into<String>)`](crate::client::fluent_builders::StartMLLabelingSetGenerationTaskRun::output_s3_path) / [`set_output_s3_path(Option<String>)`](crate::client::fluent_builders::StartMLLabelingSetGenerationTaskRun::set_output_s3_path): <p>The Amazon Simple Storage Service (Amazon S3) path where you generate the labeling set.</p>
    /// - On success, responds with [`StartMlLabelingSetGenerationTaskRunOutput`](crate::output::StartMlLabelingSetGenerationTaskRunOutput) with field(s):
    ///   - [`task_run_id(Option<String>)`](crate::output::StartMlLabelingSetGenerationTaskRunOutput::task_run_id): <p>The unique run identifier that is associated with this task run.</p>
    /// - On failure, responds with [`SdkError<StartMLLabelingSetGenerationTaskRunError>`](crate::error::StartMLLabelingSetGenerationTaskRunError)
    pub fn start_ml_labeling_set_generation_task_run(
        &self,
    ) -> fluent_builders::StartMLLabelingSetGenerationTaskRun {
        fluent_builders::StartMLLabelingSetGenerationTaskRun::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`StartTrigger`](crate::client::fluent_builders::StartTrigger) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::StartTrigger::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::StartTrigger::set_name): <p>The name of the trigger to start.</p>
    /// - On success, responds with [`StartTriggerOutput`](crate::output::StartTriggerOutput) with field(s):
    ///   - [`name(Option<String>)`](crate::output::StartTriggerOutput::name): <p>The name of the trigger that was started.</p>
    /// - On failure, responds with [`SdkError<StartTriggerError>`](crate::error::StartTriggerError)
    pub fn start_trigger(&self) -> fluent_builders::StartTrigger {
        fluent_builders::StartTrigger::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`StartWorkflowRun`](crate::client::fluent_builders::StartWorkflowRun) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::StartWorkflowRun::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::StartWorkflowRun::set_name): <p>The name of the workflow to start.</p>
    ///   - [`run_properties(HashMap<String, String>)`](crate::client::fluent_builders::StartWorkflowRun::run_properties) / [`set_run_properties(Option<HashMap<String, String>>)`](crate::client::fluent_builders::StartWorkflowRun::set_run_properties): <p>The workflow run properties for the new workflow run.</p>
    /// - On success, responds with [`StartWorkflowRunOutput`](crate::output::StartWorkflowRunOutput) with field(s):
    ///   - [`run_id(Option<String>)`](crate::output::StartWorkflowRunOutput::run_id): <p>An Id for the new run.</p>
    /// - On failure, responds with [`SdkError<StartWorkflowRunError>`](crate::error::StartWorkflowRunError)
    pub fn start_workflow_run(&self) -> fluent_builders::StartWorkflowRun {
        fluent_builders::StartWorkflowRun::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`StopCrawler`](crate::client::fluent_builders::StopCrawler) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::StopCrawler::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::StopCrawler::set_name): <p>Name of the crawler to stop.</p>
    /// - On success, responds with [`StopCrawlerOutput`](crate::output::StopCrawlerOutput)

    /// - On failure, responds with [`SdkError<StopCrawlerError>`](crate::error::StopCrawlerError)
    pub fn stop_crawler(&self) -> fluent_builders::StopCrawler {
        fluent_builders::StopCrawler::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`StopCrawlerSchedule`](crate::client::fluent_builders::StopCrawlerSchedule) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`crawler_name(impl Into<String>)`](crate::client::fluent_builders::StopCrawlerSchedule::crawler_name) / [`set_crawler_name(Option<String>)`](crate::client::fluent_builders::StopCrawlerSchedule::set_crawler_name): <p>Name of the crawler whose schedule state to set.</p>
    /// - On success, responds with [`StopCrawlerScheduleOutput`](crate::output::StopCrawlerScheduleOutput)

    /// - On failure, responds with [`SdkError<StopCrawlerScheduleError>`](crate::error::StopCrawlerScheduleError)
    pub fn stop_crawler_schedule(&self) -> fluent_builders::StopCrawlerSchedule {
        fluent_builders::StopCrawlerSchedule::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`StopSession`](crate::client::fluent_builders::StopSession) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`id(impl Into<String>)`](crate::client::fluent_builders::StopSession::id) / [`set_id(Option<String>)`](crate::client::fluent_builders::StopSession::set_id): <p>The ID of the session to be stopped.</p>
    ///   - [`request_origin(impl Into<String>)`](crate::client::fluent_builders::StopSession::request_origin) / [`set_request_origin(Option<String>)`](crate::client::fluent_builders::StopSession::set_request_origin): <p>The origin of the request.</p>
    /// - On success, responds with [`StopSessionOutput`](crate::output::StopSessionOutput) with field(s):
    ///   - [`id(Option<String>)`](crate::output::StopSessionOutput::id): <p>Returns the Id of the stopped session.</p>
    /// - On failure, responds with [`SdkError<StopSessionError>`](crate::error::StopSessionError)
    pub fn stop_session(&self) -> fluent_builders::StopSession {
        fluent_builders::StopSession::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`StopTrigger`](crate::client::fluent_builders::StopTrigger) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::StopTrigger::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::StopTrigger::set_name): <p>The name of the trigger to stop.</p>
    /// - On success, responds with [`StopTriggerOutput`](crate::output::StopTriggerOutput) with field(s):
    ///   - [`name(Option<String>)`](crate::output::StopTriggerOutput::name): <p>The name of the trigger that was stopped.</p>
    /// - On failure, responds with [`SdkError<StopTriggerError>`](crate::error::StopTriggerError)
    pub fn stop_trigger(&self) -> fluent_builders::StopTrigger {
        fluent_builders::StopTrigger::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`StopWorkflowRun`](crate::client::fluent_builders::StopWorkflowRun) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::StopWorkflowRun::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::StopWorkflowRun::set_name): <p>The name of the workflow to stop.</p>
    ///   - [`run_id(impl Into<String>)`](crate::client::fluent_builders::StopWorkflowRun::run_id) / [`set_run_id(Option<String>)`](crate::client::fluent_builders::StopWorkflowRun::set_run_id): <p>The ID of the workflow run to stop.</p>
    /// - On success, responds with [`StopWorkflowRunOutput`](crate::output::StopWorkflowRunOutput)

    /// - On failure, responds with [`SdkError<StopWorkflowRunError>`](crate::error::StopWorkflowRunError)
    pub fn stop_workflow_run(&self) -> fluent_builders::StopWorkflowRun {
        fluent_builders::StopWorkflowRun::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`TagResource`](crate::client::fluent_builders::TagResource) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`resource_arn(impl Into<String>)`](crate::client::fluent_builders::TagResource::resource_arn) / [`set_resource_arn(Option<String>)`](crate::client::fluent_builders::TagResource::set_resource_arn): <p>The ARN of the Glue resource to which to add the tags. For more information about Glue resource ARNs, see the <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-common.html#aws-glue-api-regex-aws-glue-arn-id">Glue ARN string pattern</a>.</p>
    ///   - [`tags_to_add(HashMap<String, String>)`](crate::client::fluent_builders::TagResource::tags_to_add) / [`set_tags_to_add(Option<HashMap<String, String>>)`](crate::client::fluent_builders::TagResource::set_tags_to_add): <p>Tags to add to this resource.</p>
    /// - On success, responds with [`TagResourceOutput`](crate::output::TagResourceOutput)

    /// - On failure, responds with [`SdkError<TagResourceError>`](crate::error::TagResourceError)
    pub fn tag_resource(&self) -> fluent_builders::TagResource {
        fluent_builders::TagResource::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`UntagResource`](crate::client::fluent_builders::UntagResource) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`resource_arn(impl Into<String>)`](crate::client::fluent_builders::UntagResource::resource_arn) / [`set_resource_arn(Option<String>)`](crate::client::fluent_builders::UntagResource::set_resource_arn): <p>The Amazon Resource Name (ARN) of the resource from which to remove the tags.</p>
    ///   - [`tags_to_remove(Vec<String>)`](crate::client::fluent_builders::UntagResource::tags_to_remove) / [`set_tags_to_remove(Option<Vec<String>>)`](crate::client::fluent_builders::UntagResource::set_tags_to_remove): <p>Tags to remove from this resource.</p>
    /// - On success, responds with [`UntagResourceOutput`](crate::output::UntagResourceOutput)

    /// - On failure, responds with [`SdkError<UntagResourceError>`](crate::error::UntagResourceError)
    pub fn untag_resource(&self) -> fluent_builders::UntagResource {
        fluent_builders::UntagResource::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`UpdateBlueprint`](crate::client::fluent_builders::UpdateBlueprint) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::UpdateBlueprint::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::UpdateBlueprint::set_name): <p>The name of the blueprint.</p>
    ///   - [`description(impl Into<String>)`](crate::client::fluent_builders::UpdateBlueprint::description) / [`set_description(Option<String>)`](crate::client::fluent_builders::UpdateBlueprint::set_description): <p>A description of the blueprint.</p>
    ///   - [`blueprint_location(impl Into<String>)`](crate::client::fluent_builders::UpdateBlueprint::blueprint_location) / [`set_blueprint_location(Option<String>)`](crate::client::fluent_builders::UpdateBlueprint::set_blueprint_location): <p>Specifies a path in Amazon S3 where the blueprint is published.</p>
    /// - On success, responds with [`UpdateBlueprintOutput`](crate::output::UpdateBlueprintOutput) with field(s):
    ///   - [`name(Option<String>)`](crate::output::UpdateBlueprintOutput::name): <p>Returns the name of the blueprint that was updated.</p>
    /// - On failure, responds with [`SdkError<UpdateBlueprintError>`](crate::error::UpdateBlueprintError)
    pub fn update_blueprint(&self) -> fluent_builders::UpdateBlueprint {
        fluent_builders::UpdateBlueprint::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`UpdateClassifier`](crate::client::fluent_builders::UpdateClassifier) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`grok_classifier(UpdateGrokClassifierRequest)`](crate::client::fluent_builders::UpdateClassifier::grok_classifier) / [`set_grok_classifier(Option<UpdateGrokClassifierRequest>)`](crate::client::fluent_builders::UpdateClassifier::set_grok_classifier): <p>A <code>GrokClassifier</code> object with updated fields.</p>
    ///   - [`xml_classifier(UpdateXmlClassifierRequest)`](crate::client::fluent_builders::UpdateClassifier::xml_classifier) / [`set_xml_classifier(Option<UpdateXmlClassifierRequest>)`](crate::client::fluent_builders::UpdateClassifier::set_xml_classifier): <p>An <code>XMLClassifier</code> object with updated fields.</p>
    ///   - [`json_classifier(UpdateJsonClassifierRequest)`](crate::client::fluent_builders::UpdateClassifier::json_classifier) / [`set_json_classifier(Option<UpdateJsonClassifierRequest>)`](crate::client::fluent_builders::UpdateClassifier::set_json_classifier): <p>A <code>JsonClassifier</code> object with updated fields.</p>
    ///   - [`csv_classifier(UpdateCsvClassifierRequest)`](crate::client::fluent_builders::UpdateClassifier::csv_classifier) / [`set_csv_classifier(Option<UpdateCsvClassifierRequest>)`](crate::client::fluent_builders::UpdateClassifier::set_csv_classifier): <p>A <code>CsvClassifier</code> object with updated fields.</p>
    /// - On success, responds with [`UpdateClassifierOutput`](crate::output::UpdateClassifierOutput)

    /// - On failure, responds with [`SdkError<UpdateClassifierError>`](crate::error::UpdateClassifierError)
    pub fn update_classifier(&self) -> fluent_builders::UpdateClassifier {
        fluent_builders::UpdateClassifier::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`UpdateColumnStatisticsForPartition`](crate::client::fluent_builders::UpdateColumnStatisticsForPartition) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::UpdateColumnStatisticsForPartition::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::UpdateColumnStatisticsForPartition::set_catalog_id): <p>The ID of the Data Catalog where the partitions in question reside. If none is supplied, the Amazon Web Services account ID is used by default.</p>
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::UpdateColumnStatisticsForPartition::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::UpdateColumnStatisticsForPartition::set_database_name): <p>The name of the catalog database where the partitions reside.</p>
    ///   - [`table_name(impl Into<String>)`](crate::client::fluent_builders::UpdateColumnStatisticsForPartition::table_name) / [`set_table_name(Option<String>)`](crate::client::fluent_builders::UpdateColumnStatisticsForPartition::set_table_name): <p>The name of the partitions' table.</p>
    ///   - [`partition_values(Vec<String>)`](crate::client::fluent_builders::UpdateColumnStatisticsForPartition::partition_values) / [`set_partition_values(Option<Vec<String>>)`](crate::client::fluent_builders::UpdateColumnStatisticsForPartition::set_partition_values): <p>A list of partition values identifying the partition.</p>
    ///   - [`column_statistics_list(Vec<ColumnStatistics>)`](crate::client::fluent_builders::UpdateColumnStatisticsForPartition::column_statistics_list) / [`set_column_statistics_list(Option<Vec<ColumnStatistics>>)`](crate::client::fluent_builders::UpdateColumnStatisticsForPartition::set_column_statistics_list): <p>A list of the column statistics.</p>
    /// - On success, responds with [`UpdateColumnStatisticsForPartitionOutput`](crate::output::UpdateColumnStatisticsForPartitionOutput) with field(s):
    ///   - [`errors(Option<Vec<ColumnStatisticsError>>)`](crate::output::UpdateColumnStatisticsForPartitionOutput::errors): <p>Error occurred during updating column statistics data.</p>
    /// - On failure, responds with [`SdkError<UpdateColumnStatisticsForPartitionError>`](crate::error::UpdateColumnStatisticsForPartitionError)
    pub fn update_column_statistics_for_partition(
        &self,
    ) -> fluent_builders::UpdateColumnStatisticsForPartition {
        fluent_builders::UpdateColumnStatisticsForPartition::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`UpdateColumnStatisticsForTable`](crate::client::fluent_builders::UpdateColumnStatisticsForTable) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::UpdateColumnStatisticsForTable::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::UpdateColumnStatisticsForTable::set_catalog_id): <p>The ID of the Data Catalog where the partitions in question reside. If none is supplied, the Amazon Web Services account ID is used by default.</p>
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::UpdateColumnStatisticsForTable::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::UpdateColumnStatisticsForTable::set_database_name): <p>The name of the catalog database where the partitions reside.</p>
    ///   - [`table_name(impl Into<String>)`](crate::client::fluent_builders::UpdateColumnStatisticsForTable::table_name) / [`set_table_name(Option<String>)`](crate::client::fluent_builders::UpdateColumnStatisticsForTable::set_table_name): <p>The name of the partitions' table.</p>
    ///   - [`column_statistics_list(Vec<ColumnStatistics>)`](crate::client::fluent_builders::UpdateColumnStatisticsForTable::column_statistics_list) / [`set_column_statistics_list(Option<Vec<ColumnStatistics>>)`](crate::client::fluent_builders::UpdateColumnStatisticsForTable::set_column_statistics_list): <p>A list of the column statistics.</p>
    /// - On success, responds with [`UpdateColumnStatisticsForTableOutput`](crate::output::UpdateColumnStatisticsForTableOutput) with field(s):
    ///   - [`errors(Option<Vec<ColumnStatisticsError>>)`](crate::output::UpdateColumnStatisticsForTableOutput::errors): <p>List of ColumnStatisticsErrors.</p>
    /// - On failure, responds with [`SdkError<UpdateColumnStatisticsForTableError>`](crate::error::UpdateColumnStatisticsForTableError)
    pub fn update_column_statistics_for_table(
        &self,
    ) -> fluent_builders::UpdateColumnStatisticsForTable {
        fluent_builders::UpdateColumnStatisticsForTable::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`UpdateConnection`](crate::client::fluent_builders::UpdateConnection) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::UpdateConnection::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::UpdateConnection::set_catalog_id): <p>The ID of the Data Catalog in which the connection resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::UpdateConnection::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::UpdateConnection::set_name): <p>The name of the connection definition to update.</p>
    ///   - [`connection_input(ConnectionInput)`](crate::client::fluent_builders::UpdateConnection::connection_input) / [`set_connection_input(Option<ConnectionInput>)`](crate::client::fluent_builders::UpdateConnection::set_connection_input): <p>A <code>ConnectionInput</code> object that redefines the connection in question.</p>
    /// - On success, responds with [`UpdateConnectionOutput`](crate::output::UpdateConnectionOutput)

    /// - On failure, responds with [`SdkError<UpdateConnectionError>`](crate::error::UpdateConnectionError)
    pub fn update_connection(&self) -> fluent_builders::UpdateConnection {
        fluent_builders::UpdateConnection::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`UpdateCrawler`](crate::client::fluent_builders::UpdateCrawler) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::UpdateCrawler::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::UpdateCrawler::set_name): <p>Name of the new crawler.</p>
    ///   - [`role(impl Into<String>)`](crate::client::fluent_builders::UpdateCrawler::role) / [`set_role(Option<String>)`](crate::client::fluent_builders::UpdateCrawler::set_role): <p>The IAM role or Amazon Resource Name (ARN) of an IAM role that is used by the new crawler to access customer resources.</p>
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::UpdateCrawler::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::UpdateCrawler::set_database_name): <p>The Glue database where results are stored, such as: <code>arn:aws:daylight:us-east-1::database/sometable/*</code>.</p>
    ///   - [`description(impl Into<String>)`](crate::client::fluent_builders::UpdateCrawler::description) / [`set_description(Option<String>)`](crate::client::fluent_builders::UpdateCrawler::set_description): <p>A description of the new crawler.</p>
    ///   - [`targets(CrawlerTargets)`](crate::client::fluent_builders::UpdateCrawler::targets) / [`set_targets(Option<CrawlerTargets>)`](crate::client::fluent_builders::UpdateCrawler::set_targets): <p>A list of targets to crawl.</p>
    ///   - [`schedule(impl Into<String>)`](crate::client::fluent_builders::UpdateCrawler::schedule) / [`set_schedule(Option<String>)`](crate::client::fluent_builders::UpdateCrawler::set_schedule): <p>A <code>cron</code> expression used to specify the schedule (see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html">Time-Based Schedules for Jobs and Crawlers</a>. For example, to run something every day at 12:15 UTC, you would specify: <code>cron(15 12 * * ? *)</code>.</p>
    ///   - [`classifiers(Vec<String>)`](crate::client::fluent_builders::UpdateCrawler::classifiers) / [`set_classifiers(Option<Vec<String>>)`](crate::client::fluent_builders::UpdateCrawler::set_classifiers): <p>A list of custom classifiers that the user has registered. By default, all built-in classifiers are included in a crawl, but these custom classifiers always override the default classifiers for a given classification.</p>
    ///   - [`table_prefix(impl Into<String>)`](crate::client::fluent_builders::UpdateCrawler::table_prefix) / [`set_table_prefix(Option<String>)`](crate::client::fluent_builders::UpdateCrawler::set_table_prefix): <p>The table prefix used for catalog tables that are created.</p>
    ///   - [`schema_change_policy(SchemaChangePolicy)`](crate::client::fluent_builders::UpdateCrawler::schema_change_policy) / [`set_schema_change_policy(Option<SchemaChangePolicy>)`](crate::client::fluent_builders::UpdateCrawler::set_schema_change_policy): <p>The policy for the crawler's update and deletion behavior.</p>
    ///   - [`recrawl_policy(RecrawlPolicy)`](crate::client::fluent_builders::UpdateCrawler::recrawl_policy) / [`set_recrawl_policy(Option<RecrawlPolicy>)`](crate::client::fluent_builders::UpdateCrawler::set_recrawl_policy): <p>A policy that specifies whether to crawl the entire dataset again, or to crawl only folders that were added since the last crawler run.</p>
    ///   - [`lineage_configuration(LineageConfiguration)`](crate::client::fluent_builders::UpdateCrawler::lineage_configuration) / [`set_lineage_configuration(Option<LineageConfiguration>)`](crate::client::fluent_builders::UpdateCrawler::set_lineage_configuration): <p>Specifies data lineage configuration settings for the crawler.</p>
    ///   - [`lake_formation_configuration(LakeFormationConfiguration)`](crate::client::fluent_builders::UpdateCrawler::lake_formation_configuration) / [`set_lake_formation_configuration(Option<LakeFormationConfiguration>)`](crate::client::fluent_builders::UpdateCrawler::set_lake_formation_configuration): <p>Specifies Lake Formation configuration settings for the crawler.</p>
    ///   - [`configuration(impl Into<String>)`](crate::client::fluent_builders::UpdateCrawler::configuration) / [`set_configuration(Option<String>)`](crate::client::fluent_builders::UpdateCrawler::set_configuration): <p>Crawler configuration information. This versioned JSON string allows users to specify aspects of a crawler's behavior. For more information, see <a href="https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html">Setting crawler configuration options</a>.</p>
    ///   - [`crawler_security_configuration(impl Into<String>)`](crate::client::fluent_builders::UpdateCrawler::crawler_security_configuration) / [`set_crawler_security_configuration(Option<String>)`](crate::client::fluent_builders::UpdateCrawler::set_crawler_security_configuration): <p>The name of the <code>SecurityConfiguration</code> structure to be used by this crawler.</p>
    /// - On success, responds with [`UpdateCrawlerOutput`](crate::output::UpdateCrawlerOutput)

    /// - On failure, responds with [`SdkError<UpdateCrawlerError>`](crate::error::UpdateCrawlerError)
    pub fn update_crawler(&self) -> fluent_builders::UpdateCrawler {
        fluent_builders::UpdateCrawler::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`UpdateCrawlerSchedule`](crate::client::fluent_builders::UpdateCrawlerSchedule) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`crawler_name(impl Into<String>)`](crate::client::fluent_builders::UpdateCrawlerSchedule::crawler_name) / [`set_crawler_name(Option<String>)`](crate::client::fluent_builders::UpdateCrawlerSchedule::set_crawler_name): <p>The name of the crawler whose schedule to update.</p>
    ///   - [`schedule(impl Into<String>)`](crate::client::fluent_builders::UpdateCrawlerSchedule::schedule) / [`set_schedule(Option<String>)`](crate::client::fluent_builders::UpdateCrawlerSchedule::set_schedule): <p>The updated <code>cron</code> expression used to specify the schedule (see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html">Time-Based Schedules for Jobs and Crawlers</a>. For example, to run something every day at 12:15 UTC, you would specify: <code>cron(15 12 * * ? *)</code>.</p>
    /// - On success, responds with [`UpdateCrawlerScheduleOutput`](crate::output::UpdateCrawlerScheduleOutput)

    /// - On failure, responds with [`SdkError<UpdateCrawlerScheduleError>`](crate::error::UpdateCrawlerScheduleError)
    pub fn update_crawler_schedule(&self) -> fluent_builders::UpdateCrawlerSchedule {
        fluent_builders::UpdateCrawlerSchedule::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`UpdateDatabase`](crate::client::fluent_builders::UpdateDatabase) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::UpdateDatabase::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::UpdateDatabase::set_catalog_id): <p>The ID of the Data Catalog in which the metadata database resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::UpdateDatabase::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::UpdateDatabase::set_name): <p>The name of the database to update in the catalog. For Hive compatibility, this is folded to lowercase.</p>
    ///   - [`database_input(DatabaseInput)`](crate::client::fluent_builders::UpdateDatabase::database_input) / [`set_database_input(Option<DatabaseInput>)`](crate::client::fluent_builders::UpdateDatabase::set_database_input): <p>A <code>DatabaseInput</code> object specifying the new definition of the metadata database in the catalog.</p>
    /// - On success, responds with [`UpdateDatabaseOutput`](crate::output::UpdateDatabaseOutput)

    /// - On failure, responds with [`SdkError<UpdateDatabaseError>`](crate::error::UpdateDatabaseError)
    pub fn update_database(&self) -> fluent_builders::UpdateDatabase {
        fluent_builders::UpdateDatabase::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`UpdateDataQualityRuleset`](crate::client::fluent_builders::UpdateDataQualityRuleset) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::UpdateDataQualityRuleset::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::UpdateDataQualityRuleset::set_name): <p>The name of the data quality ruleset.</p>
    ///   - [`updated_name(impl Into<String>)`](crate::client::fluent_builders::UpdateDataQualityRuleset::updated_name) / [`set_updated_name(Option<String>)`](crate::client::fluent_builders::UpdateDataQualityRuleset::set_updated_name): <p>The new name of the ruleset, if you are renaming it.</p>
    ///   - [`description(impl Into<String>)`](crate::client::fluent_builders::UpdateDataQualityRuleset::description) / [`set_description(Option<String>)`](crate::client::fluent_builders::UpdateDataQualityRuleset::set_description): <p>A description of the ruleset.</p>
    ///   - [`ruleset(impl Into<String>)`](crate::client::fluent_builders::UpdateDataQualityRuleset::ruleset) / [`set_ruleset(Option<String>)`](crate::client::fluent_builders::UpdateDataQualityRuleset::set_ruleset): <p>A Data Quality Definition Language (DQDL) ruleset. For more information, see the Glue developer guide.</p>
    /// - On success, responds with [`UpdateDataQualityRulesetOutput`](crate::output::UpdateDataQualityRulesetOutput) with field(s):
    ///   - [`name(Option<String>)`](crate::output::UpdateDataQualityRulesetOutput::name): <p>The name of the data quality ruleset.</p>
    ///   - [`description(Option<String>)`](crate::output::UpdateDataQualityRulesetOutput::description): <p>A description of the ruleset.</p>
    ///   - [`ruleset(Option<String>)`](crate::output::UpdateDataQualityRulesetOutput::ruleset): <p>A Data Quality Definition Language (DQDL) ruleset. For more information, see the Glue developer guide.</p>
    /// - On failure, responds with [`SdkError<UpdateDataQualityRulesetError>`](crate::error::UpdateDataQualityRulesetError)
    pub fn update_data_quality_ruleset(&self) -> fluent_builders::UpdateDataQualityRuleset {
        fluent_builders::UpdateDataQualityRuleset::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`UpdateDevEndpoint`](crate::client::fluent_builders::UpdateDevEndpoint) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`endpoint_name(impl Into<String>)`](crate::client::fluent_builders::UpdateDevEndpoint::endpoint_name) / [`set_endpoint_name(Option<String>)`](crate::client::fluent_builders::UpdateDevEndpoint::set_endpoint_name): <p>The name of the <code>DevEndpoint</code> to be updated.</p>
    ///   - [`public_key(impl Into<String>)`](crate::client::fluent_builders::UpdateDevEndpoint::public_key) / [`set_public_key(Option<String>)`](crate::client::fluent_builders::UpdateDevEndpoint::set_public_key): <p>The public key for the <code>DevEndpoint</code> to use.</p>
    ///   - [`add_public_keys(Vec<String>)`](crate::client::fluent_builders::UpdateDevEndpoint::add_public_keys) / [`set_add_public_keys(Option<Vec<String>>)`](crate::client::fluent_builders::UpdateDevEndpoint::set_add_public_keys): <p>The list of public keys for the <code>DevEndpoint</code> to use.</p>
    ///   - [`delete_public_keys(Vec<String>)`](crate::client::fluent_builders::UpdateDevEndpoint::delete_public_keys) / [`set_delete_public_keys(Option<Vec<String>>)`](crate::client::fluent_builders::UpdateDevEndpoint::set_delete_public_keys): <p>The list of public keys to be deleted from the <code>DevEndpoint</code>.</p>
    ///   - [`custom_libraries(DevEndpointCustomLibraries)`](crate::client::fluent_builders::UpdateDevEndpoint::custom_libraries) / [`set_custom_libraries(Option<DevEndpointCustomLibraries>)`](crate::client::fluent_builders::UpdateDevEndpoint::set_custom_libraries): <p>Custom Python or Java libraries to be loaded in the <code>DevEndpoint</code>.</p>
    ///   - [`update_etl_libraries(bool)`](crate::client::fluent_builders::UpdateDevEndpoint::update_etl_libraries) / [`set_update_etl_libraries(bool)`](crate::client::fluent_builders::UpdateDevEndpoint::set_update_etl_libraries): <p> <code>True</code> if the list of custom libraries to be loaded in the development endpoint needs to be updated, or <code>False</code> if otherwise.</p>
    ///   - [`delete_arguments(Vec<String>)`](crate::client::fluent_builders::UpdateDevEndpoint::delete_arguments) / [`set_delete_arguments(Option<Vec<String>>)`](crate::client::fluent_builders::UpdateDevEndpoint::set_delete_arguments): <p>The list of argument keys to be deleted from the map of arguments used to configure the <code>DevEndpoint</code>.</p>
    ///   - [`add_arguments(HashMap<String, String>)`](crate::client::fluent_builders::UpdateDevEndpoint::add_arguments) / [`set_add_arguments(Option<HashMap<String, String>>)`](crate::client::fluent_builders::UpdateDevEndpoint::set_add_arguments): <p>The map of arguments to add the map of arguments used to configure the <code>DevEndpoint</code>.</p>  <p>Valid arguments are:</p>  <ul>   <li> <p> <code>"--enable-glue-datacatalog": ""</code> </p> </li>  </ul>  <p>You can specify a version of Python support for development endpoints by using the <code>Arguments</code> parameter in the <code>CreateDevEndpoint</code> or <code>UpdateDevEndpoint</code> APIs. If no arguments are provided, the version defaults to Python 2.</p>
    /// - On success, responds with [`UpdateDevEndpointOutput`](crate::output::UpdateDevEndpointOutput)

    /// - On failure, responds with [`SdkError<UpdateDevEndpointError>`](crate::error::UpdateDevEndpointError)
    pub fn update_dev_endpoint(&self) -> fluent_builders::UpdateDevEndpoint {
        fluent_builders::UpdateDevEndpoint::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`UpdateJob`](crate::client::fluent_builders::UpdateJob) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`job_name(impl Into<String>)`](crate::client::fluent_builders::UpdateJob::job_name) / [`set_job_name(Option<String>)`](crate::client::fluent_builders::UpdateJob::set_job_name): <p>The name of the job definition to update.</p>
    ///   - [`job_update(JobUpdate)`](crate::client::fluent_builders::UpdateJob::job_update) / [`set_job_update(Option<JobUpdate>)`](crate::client::fluent_builders::UpdateJob::set_job_update): <p>Specifies the values with which to update the job definition. Unspecified configuration is removed or reset to default values.</p>
    /// - On success, responds with [`UpdateJobOutput`](crate::output::UpdateJobOutput) with field(s):
    ///   - [`job_name(Option<String>)`](crate::output::UpdateJobOutput::job_name): <p>Returns the name of the updated job definition.</p>
    /// - On failure, responds with [`SdkError<UpdateJobError>`](crate::error::UpdateJobError)
    pub fn update_job(&self) -> fluent_builders::UpdateJob {
        fluent_builders::UpdateJob::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`UpdateJobFromSourceControl`](crate::client::fluent_builders::UpdateJobFromSourceControl) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`job_name(impl Into<String>)`](crate::client::fluent_builders::UpdateJobFromSourceControl::job_name) / [`set_job_name(Option<String>)`](crate::client::fluent_builders::UpdateJobFromSourceControl::set_job_name): <p>The name of the Glue job to be synchronized to or from the remote repository.</p>
    ///   - [`provider(SourceControlProvider)`](crate::client::fluent_builders::UpdateJobFromSourceControl::provider) / [`set_provider(Option<SourceControlProvider>)`](crate::client::fluent_builders::UpdateJobFromSourceControl::set_provider): <p>The provider for the remote repository.</p>
    ///   - [`repository_name(impl Into<String>)`](crate::client::fluent_builders::UpdateJobFromSourceControl::repository_name) / [`set_repository_name(Option<String>)`](crate::client::fluent_builders::UpdateJobFromSourceControl::set_repository_name): <p>The name of the remote repository that contains the job artifacts.</p>
    ///   - [`repository_owner(impl Into<String>)`](crate::client::fluent_builders::UpdateJobFromSourceControl::repository_owner) / [`set_repository_owner(Option<String>)`](crate::client::fluent_builders::UpdateJobFromSourceControl::set_repository_owner): <p>The owner of the remote repository that contains the job artifacts.</p>
    ///   - [`branch_name(impl Into<String>)`](crate::client::fluent_builders::UpdateJobFromSourceControl::branch_name) / [`set_branch_name(Option<String>)`](crate::client::fluent_builders::UpdateJobFromSourceControl::set_branch_name): <p>An optional branch in the remote repository.</p>
    ///   - [`folder(impl Into<String>)`](crate::client::fluent_builders::UpdateJobFromSourceControl::folder) / [`set_folder(Option<String>)`](crate::client::fluent_builders::UpdateJobFromSourceControl::set_folder): <p>An optional folder in the remote repository.</p>
    ///   - [`commit_id(impl Into<String>)`](crate::client::fluent_builders::UpdateJobFromSourceControl::commit_id) / [`set_commit_id(Option<String>)`](crate::client::fluent_builders::UpdateJobFromSourceControl::set_commit_id): <p>A commit ID for a commit in the remote repository.</p>
    ///   - [`auth_strategy(SourceControlAuthStrategy)`](crate::client::fluent_builders::UpdateJobFromSourceControl::auth_strategy) / [`set_auth_strategy(Option<SourceControlAuthStrategy>)`](crate::client::fluent_builders::UpdateJobFromSourceControl::set_auth_strategy): <p>The type of authentication, which can be an authentication token stored in Amazon Web Services Secrets Manager, or a personal access token.</p>
    ///   - [`auth_token(impl Into<String>)`](crate::client::fluent_builders::UpdateJobFromSourceControl::auth_token) / [`set_auth_token(Option<String>)`](crate::client::fluent_builders::UpdateJobFromSourceControl::set_auth_token): <p>The value of the authorization token.</p>
    /// - On success, responds with [`UpdateJobFromSourceControlOutput`](crate::output::UpdateJobFromSourceControlOutput) with field(s):
    ///   - [`job_name(Option<String>)`](crate::output::UpdateJobFromSourceControlOutput::job_name): <p>The name of the Glue job.</p>
    /// - On failure, responds with [`SdkError<UpdateJobFromSourceControlError>`](crate::error::UpdateJobFromSourceControlError)
    pub fn update_job_from_source_control(&self) -> fluent_builders::UpdateJobFromSourceControl {
        fluent_builders::UpdateJobFromSourceControl::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`UpdateMLTransform`](crate::client::fluent_builders::UpdateMLTransform) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`transform_id(impl Into<String>)`](crate::client::fluent_builders::UpdateMLTransform::transform_id) / [`set_transform_id(Option<String>)`](crate::client::fluent_builders::UpdateMLTransform::set_transform_id): <p>A unique identifier that was generated when the transform was created.</p>
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::UpdateMLTransform::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::UpdateMLTransform::set_name): <p>The unique name that you gave the transform when you created it.</p>
    ///   - [`description(impl Into<String>)`](crate::client::fluent_builders::UpdateMLTransform::description) / [`set_description(Option<String>)`](crate::client::fluent_builders::UpdateMLTransform::set_description): <p>A description of the transform. The default is an empty string.</p>
    ///   - [`parameters(TransformParameters)`](crate::client::fluent_builders::UpdateMLTransform::parameters) / [`set_parameters(Option<TransformParameters>)`](crate::client::fluent_builders::UpdateMLTransform::set_parameters): <p>The configuration parameters that are specific to the transform type (algorithm) used. Conditionally dependent on the transform type.</p>
    ///   - [`role(impl Into<String>)`](crate::client::fluent_builders::UpdateMLTransform::role) / [`set_role(Option<String>)`](crate::client::fluent_builders::UpdateMLTransform::set_role): <p>The name or Amazon Resource Name (ARN) of the IAM role with the required permissions.</p>
    ///   - [`glue_version(impl Into<String>)`](crate::client::fluent_builders::UpdateMLTransform::glue_version) / [`set_glue_version(Option<String>)`](crate::client::fluent_builders::UpdateMLTransform::set_glue_version): <p>This value determines which version of Glue this machine learning transform is compatible with. Glue 1.0 is recommended for most customers. If the value is not set, the Glue compatibility defaults to Glue 0.9. For more information, see <a href="https://docs.aws.amazon.com/glue/latest/dg/release-notes.html#release-notes-versions">Glue Versions</a> in the developer guide.</p>
    ///   - [`max_capacity(f64)`](crate::client::fluent_builders::UpdateMLTransform::max_capacity) / [`set_max_capacity(Option<f64>)`](crate::client::fluent_builders::UpdateMLTransform::set_max_capacity): <p>The number of Glue data processing units (DPUs) that are allocated to task runs for this transform. You can allocate from 2 to 100 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the <a href="https://aws.amazon.com/glue/pricing/">Glue pricing page</a>. </p>  <p>When the <code>WorkerType</code> field is set to a value other than <code>Standard</code>, the <code>MaxCapacity</code> field is set automatically and becomes read-only.</p>
    ///   - [`worker_type(WorkerType)`](crate::client::fluent_builders::UpdateMLTransform::worker_type) / [`set_worker_type(Option<WorkerType>)`](crate::client::fluent_builders::UpdateMLTransform::set_worker_type): <p>The type of predefined worker that is allocated when this task runs. Accepts a value of Standard, G.1X, or G.2X.</p>  <ul>   <li> <p>For the <code>Standard</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.</p> </li>   <li> <p>For the <code>G.1X</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 64GB disk, and 1 executor per worker.</p> </li>   <li> <p>For the <code>G.2X</code> worker type, each worker provides 8 vCPU, 32 GB of memory and a 128GB disk, and 1 executor per worker.</p> </li>  </ul>
    ///   - [`number_of_workers(i32)`](crate::client::fluent_builders::UpdateMLTransform::number_of_workers) / [`set_number_of_workers(Option<i32>)`](crate::client::fluent_builders::UpdateMLTransform::set_number_of_workers): <p>The number of workers of a defined <code>workerType</code> that are allocated when this task runs.</p>
    ///   - [`timeout(i32)`](crate::client::fluent_builders::UpdateMLTransform::timeout) / [`set_timeout(Option<i32>)`](crate::client::fluent_builders::UpdateMLTransform::set_timeout): <p>The timeout for a task run for this transform in minutes. This is the maximum time that a task run for this transform can consume resources before it is terminated and enters <code>TIMEOUT</code> status. The default is 2,880 minutes (48 hours).</p>
    ///   - [`max_retries(i32)`](crate::client::fluent_builders::UpdateMLTransform::max_retries) / [`set_max_retries(Option<i32>)`](crate::client::fluent_builders::UpdateMLTransform::set_max_retries): <p>The maximum number of times to retry a task for this transform after a task run fails.</p>
    /// - On success, responds with [`UpdateMlTransformOutput`](crate::output::UpdateMlTransformOutput) with field(s):
    ///   - [`transform_id(Option<String>)`](crate::output::UpdateMlTransformOutput::transform_id): <p>The unique identifier for the transform that was updated.</p>
    /// - On failure, responds with [`SdkError<UpdateMLTransformError>`](crate::error::UpdateMLTransformError)
    pub fn update_ml_transform(&self) -> fluent_builders::UpdateMLTransform {
        fluent_builders::UpdateMLTransform::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`UpdatePartition`](crate::client::fluent_builders::UpdatePartition) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::UpdatePartition::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::UpdatePartition::set_catalog_id): <p>The ID of the Data Catalog where the partition to be updated resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::UpdatePartition::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::UpdatePartition::set_database_name): <p>The name of the catalog database in which the table in question resides.</p>
    ///   - [`table_name(impl Into<String>)`](crate::client::fluent_builders::UpdatePartition::table_name) / [`set_table_name(Option<String>)`](crate::client::fluent_builders::UpdatePartition::set_table_name): <p>The name of the table in which the partition to be updated is located.</p>
    ///   - [`partition_value_list(Vec<String>)`](crate::client::fluent_builders::UpdatePartition::partition_value_list) / [`set_partition_value_list(Option<Vec<String>>)`](crate::client::fluent_builders::UpdatePartition::set_partition_value_list): <p>List of partition key values that define the partition to update.</p>
    ///   - [`partition_input(PartitionInput)`](crate::client::fluent_builders::UpdatePartition::partition_input) / [`set_partition_input(Option<PartitionInput>)`](crate::client::fluent_builders::UpdatePartition::set_partition_input): <p>The new partition object to update the partition to.</p>  <p>The <code>Values</code> property can't be changed. If you want to change the partition key values for a partition, delete and recreate the partition.</p>
    /// - On success, responds with [`UpdatePartitionOutput`](crate::output::UpdatePartitionOutput)

    /// - On failure, responds with [`SdkError<UpdatePartitionError>`](crate::error::UpdatePartitionError)
    pub fn update_partition(&self) -> fluent_builders::UpdatePartition {
        fluent_builders::UpdatePartition::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`UpdateRegistry`](crate::client::fluent_builders::UpdateRegistry) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`registry_id(RegistryId)`](crate::client::fluent_builders::UpdateRegistry::registry_id) / [`set_registry_id(Option<RegistryId>)`](crate::client::fluent_builders::UpdateRegistry::set_registry_id): <p>This is a wrapper structure that may contain the registry name and Amazon Resource Name (ARN).</p>
    ///   - [`description(impl Into<String>)`](crate::client::fluent_builders::UpdateRegistry::description) / [`set_description(Option<String>)`](crate::client::fluent_builders::UpdateRegistry::set_description): <p>A description of the registry. If description is not provided, this field will not be updated.</p>
    /// - On success, responds with [`UpdateRegistryOutput`](crate::output::UpdateRegistryOutput) with field(s):
    ///   - [`registry_name(Option<String>)`](crate::output::UpdateRegistryOutput::registry_name): <p>The name of the updated registry.</p>
    ///   - [`registry_arn(Option<String>)`](crate::output::UpdateRegistryOutput::registry_arn): <p>The Amazon Resource name (ARN) of the updated registry.</p>
    /// - On failure, responds with [`SdkError<UpdateRegistryError>`](crate::error::UpdateRegistryError)
    pub fn update_registry(&self) -> fluent_builders::UpdateRegistry {
        fluent_builders::UpdateRegistry::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`UpdateSchema`](crate::client::fluent_builders::UpdateSchema) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`schema_id(SchemaId)`](crate::client::fluent_builders::UpdateSchema::schema_id) / [`set_schema_id(Option<SchemaId>)`](crate::client::fluent_builders::UpdateSchema::set_schema_id): <p>This is a wrapper structure to contain schema identity fields. The structure contains:</p>  <ul>   <li> <p>SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.</p> </li>   <li> <p>SchemaId$SchemaName: The name of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.</p> </li>  </ul>
    ///   - [`schema_version_number(SchemaVersionNumber)`](crate::client::fluent_builders::UpdateSchema::schema_version_number) / [`set_schema_version_number(Option<SchemaVersionNumber>)`](crate::client::fluent_builders::UpdateSchema::set_schema_version_number): <p>Version number required for check pointing. One of <code>VersionNumber</code> or <code>Compatibility</code> has to be provided.</p>
    ///   - [`compatibility(Compatibility)`](crate::client::fluent_builders::UpdateSchema::compatibility) / [`set_compatibility(Option<Compatibility>)`](crate::client::fluent_builders::UpdateSchema::set_compatibility): <p>The new compatibility setting for the schema.</p>
    ///   - [`description(impl Into<String>)`](crate::client::fluent_builders::UpdateSchema::description) / [`set_description(Option<String>)`](crate::client::fluent_builders::UpdateSchema::set_description): <p>The new description for the schema.</p>
    /// - On success, responds with [`UpdateSchemaOutput`](crate::output::UpdateSchemaOutput) with field(s):
    ///   - [`schema_arn(Option<String>)`](crate::output::UpdateSchemaOutput::schema_arn): <p>The Amazon Resource Name (ARN) of the schema.</p>
    ///   - [`schema_name(Option<String>)`](crate::output::UpdateSchemaOutput::schema_name): <p>The name of the schema.</p>
    ///   - [`registry_name(Option<String>)`](crate::output::UpdateSchemaOutput::registry_name): <p>The name of the registry that contains the schema.</p>
    /// - On failure, responds with [`SdkError<UpdateSchemaError>`](crate::error::UpdateSchemaError)
    pub fn update_schema(&self) -> fluent_builders::UpdateSchema {
        fluent_builders::UpdateSchema::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`UpdateSourceControlFromJob`](crate::client::fluent_builders::UpdateSourceControlFromJob) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`job_name(impl Into<String>)`](crate::client::fluent_builders::UpdateSourceControlFromJob::job_name) / [`set_job_name(Option<String>)`](crate::client::fluent_builders::UpdateSourceControlFromJob::set_job_name): <p>The name of the Glue job to be synchronized to or from the remote repository.</p>
    ///   - [`provider(SourceControlProvider)`](crate::client::fluent_builders::UpdateSourceControlFromJob::provider) / [`set_provider(Option<SourceControlProvider>)`](crate::client::fluent_builders::UpdateSourceControlFromJob::set_provider): <p>The provider for the remote repository.</p>
    ///   - [`repository_name(impl Into<String>)`](crate::client::fluent_builders::UpdateSourceControlFromJob::repository_name) / [`set_repository_name(Option<String>)`](crate::client::fluent_builders::UpdateSourceControlFromJob::set_repository_name): <p>The name of the remote repository that contains the job artifacts.</p>
    ///   - [`repository_owner(impl Into<String>)`](crate::client::fluent_builders::UpdateSourceControlFromJob::repository_owner) / [`set_repository_owner(Option<String>)`](crate::client::fluent_builders::UpdateSourceControlFromJob::set_repository_owner): <p>The owner of the remote repository that contains the job artifacts.</p>
    ///   - [`branch_name(impl Into<String>)`](crate::client::fluent_builders::UpdateSourceControlFromJob::branch_name) / [`set_branch_name(Option<String>)`](crate::client::fluent_builders::UpdateSourceControlFromJob::set_branch_name): <p>An optional branch in the remote repository.</p>
    ///   - [`folder(impl Into<String>)`](crate::client::fluent_builders::UpdateSourceControlFromJob::folder) / [`set_folder(Option<String>)`](crate::client::fluent_builders::UpdateSourceControlFromJob::set_folder): <p>An optional folder in the remote repository.</p>
    ///   - [`commit_id(impl Into<String>)`](crate::client::fluent_builders::UpdateSourceControlFromJob::commit_id) / [`set_commit_id(Option<String>)`](crate::client::fluent_builders::UpdateSourceControlFromJob::set_commit_id): <p>A commit ID for a commit in the remote repository.</p>
    ///   - [`auth_strategy(SourceControlAuthStrategy)`](crate::client::fluent_builders::UpdateSourceControlFromJob::auth_strategy) / [`set_auth_strategy(Option<SourceControlAuthStrategy>)`](crate::client::fluent_builders::UpdateSourceControlFromJob::set_auth_strategy): <p>The type of authentication, which can be an authentication token stored in Amazon Web Services Secrets Manager, or a personal access token.</p>
    ///   - [`auth_token(impl Into<String>)`](crate::client::fluent_builders::UpdateSourceControlFromJob::auth_token) / [`set_auth_token(Option<String>)`](crate::client::fluent_builders::UpdateSourceControlFromJob::set_auth_token): <p>The value of the authorization token.</p>
    /// - On success, responds with [`UpdateSourceControlFromJobOutput`](crate::output::UpdateSourceControlFromJobOutput) with field(s):
    ///   - [`job_name(Option<String>)`](crate::output::UpdateSourceControlFromJobOutput::job_name): <p>The name of the Glue job.</p>
    /// - On failure, responds with [`SdkError<UpdateSourceControlFromJobError>`](crate::error::UpdateSourceControlFromJobError)
    pub fn update_source_control_from_job(&self) -> fluent_builders::UpdateSourceControlFromJob {
        fluent_builders::UpdateSourceControlFromJob::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`UpdateTable`](crate::client::fluent_builders::UpdateTable) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::UpdateTable::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::UpdateTable::set_catalog_id): <p>The ID of the Data Catalog where the table resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::UpdateTable::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::UpdateTable::set_database_name): <p>The name of the catalog database in which the table resides. For Hive compatibility, this name is entirely lowercase.</p>
    ///   - [`table_input(TableInput)`](crate::client::fluent_builders::UpdateTable::table_input) / [`set_table_input(Option<TableInput>)`](crate::client::fluent_builders::UpdateTable::set_table_input): <p>An updated <code>TableInput</code> object to define the metadata table in the catalog.</p>
    ///   - [`skip_archive(bool)`](crate::client::fluent_builders::UpdateTable::skip_archive) / [`set_skip_archive(Option<bool>)`](crate::client::fluent_builders::UpdateTable::set_skip_archive): <p>By default, <code>UpdateTable</code> always creates an archived version of the table before updating it. However, if <code>skipArchive</code> is set to true, <code>UpdateTable</code> does not create the archived version.</p>
    ///   - [`transaction_id(impl Into<String>)`](crate::client::fluent_builders::UpdateTable::transaction_id) / [`set_transaction_id(Option<String>)`](crate::client::fluent_builders::UpdateTable::set_transaction_id): <p>The transaction ID at which to update the table contents. </p>
    ///   - [`version_id(impl Into<String>)`](crate::client::fluent_builders::UpdateTable::version_id) / [`set_version_id(Option<String>)`](crate::client::fluent_builders::UpdateTable::set_version_id): <p>The version ID at which to update the table contents. </p>
    /// - On success, responds with [`UpdateTableOutput`](crate::output::UpdateTableOutput)

    /// - On failure, responds with [`SdkError<UpdateTableError>`](crate::error::UpdateTableError)
    pub fn update_table(&self) -> fluent_builders::UpdateTable {
        fluent_builders::UpdateTable::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`UpdateTrigger`](crate::client::fluent_builders::UpdateTrigger) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::UpdateTrigger::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::UpdateTrigger::set_name): <p>The name of the trigger to update.</p>
    ///   - [`trigger_update(TriggerUpdate)`](crate::client::fluent_builders::UpdateTrigger::trigger_update) / [`set_trigger_update(Option<TriggerUpdate>)`](crate::client::fluent_builders::UpdateTrigger::set_trigger_update): <p>The new values with which to update the trigger.</p>
    /// - On success, responds with [`UpdateTriggerOutput`](crate::output::UpdateTriggerOutput) with field(s):
    ///   - [`trigger(Option<Trigger>)`](crate::output::UpdateTriggerOutput::trigger): <p>The resulting trigger definition.</p>
    /// - On failure, responds with [`SdkError<UpdateTriggerError>`](crate::error::UpdateTriggerError)
    pub fn update_trigger(&self) -> fluent_builders::UpdateTrigger {
        fluent_builders::UpdateTrigger::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`UpdateUserDefinedFunction`](crate::client::fluent_builders::UpdateUserDefinedFunction) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`catalog_id(impl Into<String>)`](crate::client::fluent_builders::UpdateUserDefinedFunction::catalog_id) / [`set_catalog_id(Option<String>)`](crate::client::fluent_builders::UpdateUserDefinedFunction::set_catalog_id): <p>The ID of the Data Catalog where the function to be updated is located. If none is provided, the Amazon Web Services account ID is used by default.</p>
    ///   - [`database_name(impl Into<String>)`](crate::client::fluent_builders::UpdateUserDefinedFunction::database_name) / [`set_database_name(Option<String>)`](crate::client::fluent_builders::UpdateUserDefinedFunction::set_database_name): <p>The name of the catalog database where the function to be updated is located.</p>
    ///   - [`function_name(impl Into<String>)`](crate::client::fluent_builders::UpdateUserDefinedFunction::function_name) / [`set_function_name(Option<String>)`](crate::client::fluent_builders::UpdateUserDefinedFunction::set_function_name): <p>The name of the function.</p>
    ///   - [`function_input(UserDefinedFunctionInput)`](crate::client::fluent_builders::UpdateUserDefinedFunction::function_input) / [`set_function_input(Option<UserDefinedFunctionInput>)`](crate::client::fluent_builders::UpdateUserDefinedFunction::set_function_input): <p>A <code>FunctionInput</code> object that redefines the function in the Data Catalog.</p>
    /// - On success, responds with [`UpdateUserDefinedFunctionOutput`](crate::output::UpdateUserDefinedFunctionOutput)

    /// - On failure, responds with [`SdkError<UpdateUserDefinedFunctionError>`](crate::error::UpdateUserDefinedFunctionError)
    pub fn update_user_defined_function(&self) -> fluent_builders::UpdateUserDefinedFunction {
        fluent_builders::UpdateUserDefinedFunction::new(self.handle.clone())
    }
    /// Constructs a fluent builder for the [`UpdateWorkflow`](crate::client::fluent_builders::UpdateWorkflow) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::client::fluent_builders::UpdateWorkflow::name) / [`set_name(Option<String>)`](crate::client::fluent_builders::UpdateWorkflow::set_name): <p>Name of the workflow to be updated.</p>
    ///   - [`description(impl Into<String>)`](crate::client::fluent_builders::UpdateWorkflow::description) / [`set_description(Option<String>)`](crate::client::fluent_builders::UpdateWorkflow::set_description): <p>The description of the workflow.</p>
    ///   - [`default_run_properties(HashMap<String, String>)`](crate::client::fluent_builders::UpdateWorkflow::default_run_properties) / [`set_default_run_properties(Option<HashMap<String, String>>)`](crate::client::fluent_builders::UpdateWorkflow::set_default_run_properties): <p>A collection of properties to be used as part of each execution of the workflow.</p>
    ///   - [`max_concurrent_runs(i32)`](crate::client::fluent_builders::UpdateWorkflow::max_concurrent_runs) / [`set_max_concurrent_runs(Option<i32>)`](crate::client::fluent_builders::UpdateWorkflow::set_max_concurrent_runs): <p>You can use this parameter to prevent unwanted multiple updates to data, to control costs, or in some cases, to prevent exceeding the maximum number of concurrent runs of any of the component jobs. If you leave this parameter blank, there is no limit to the number of concurrent workflow runs.</p>
    /// - On success, responds with [`UpdateWorkflowOutput`](crate::output::UpdateWorkflowOutput) with field(s):
    ///   - [`name(Option<String>)`](crate::output::UpdateWorkflowOutput::name): <p>The name of the workflow which was specified in input.</p>
    /// - On failure, responds with [`SdkError<UpdateWorkflowError>`](crate::error::UpdateWorkflowError)
    pub fn update_workflow(&self) -> fluent_builders::UpdateWorkflow {
        fluent_builders::UpdateWorkflow::new(self.handle.clone())
    }
}
pub mod fluent_builders {

    //! Utilities to ergonomically construct a request to the service.
    //!
    //! Fluent builders are created through the [`Client`](crate::client::Client) by calling
    //! one if its operation methods. After parameters are set using the builder methods,
    //! the `send` method can be called to initiate the request.
    /// Fluent builder constructing a request to `BatchCreatePartition`.
    ///
    /// <p>Creates one or more partitions in a batch operation.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct BatchCreatePartition {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::batch_create_partition_input::Builder,
    }
    impl BatchCreatePartition {
        /// Creates a new `BatchCreatePartition`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::BatchCreatePartition,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::BatchCreatePartitionError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::BatchCreatePartitionOutput,
            aws_smithy_http::result::SdkError<crate::error::BatchCreatePartitionError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the catalog in which the partition is to be created. Currently, this should be the Amazon Web Services account ID.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the catalog in which the partition is to be created. Currently, this should be the Amazon Web Services account ID.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The name of the metadata database in which the partition is to be created.</p>
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        /// <p>The name of the metadata database in which the partition is to be created.</p>
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        /// <p>The name of the metadata table in which the partition is to be created.</p>
        pub fn table_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.table_name(input.into());
            self
        }
        /// <p>The name of the metadata table in which the partition is to be created.</p>
        pub fn set_table_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_table_name(input);
            self
        }
        /// Appends an item to `PartitionInputList`.
        ///
        /// To override the contents of this collection use [`set_partition_input_list`](Self::set_partition_input_list).
        ///
        /// <p>A list of <code>PartitionInput</code> structures that define the partitions to be created.</p>
        pub fn partition_input_list(mut self, input: crate::model::PartitionInput) -> Self {
            self.inner = self.inner.partition_input_list(input);
            self
        }
        /// <p>A list of <code>PartitionInput</code> structures that define the partitions to be created.</p>
        pub fn set_partition_input_list(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::PartitionInput>>,
        ) -> Self {
            self.inner = self.inner.set_partition_input_list(input);
            self
        }
    }
    /// Fluent builder constructing a request to `BatchDeleteConnection`.
    ///
    /// <p>Deletes a list of connection definitions from the Data Catalog.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct BatchDeleteConnection {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::batch_delete_connection_input::Builder,
    }
    impl BatchDeleteConnection {
        /// Creates a new `BatchDeleteConnection`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::BatchDeleteConnection,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::BatchDeleteConnectionError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::BatchDeleteConnectionOutput,
            aws_smithy_http::result::SdkError<crate::error::BatchDeleteConnectionError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the Data Catalog in which the connections reside. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog in which the connections reside. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// Appends an item to `ConnectionNameList`.
        ///
        /// To override the contents of this collection use [`set_connection_name_list`](Self::set_connection_name_list).
        ///
        /// <p>A list of names of the connections to delete.</p>
        pub fn connection_name_list(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.connection_name_list(input.into());
            self
        }
        /// <p>A list of names of the connections to delete.</p>
        pub fn set_connection_name_list(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.inner = self.inner.set_connection_name_list(input);
            self
        }
    }
    /// Fluent builder constructing a request to `BatchDeletePartition`.
    ///
    /// <p>Deletes one or more partitions in a batch operation.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct BatchDeletePartition {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::batch_delete_partition_input::Builder,
    }
    impl BatchDeletePartition {
        /// Creates a new `BatchDeletePartition`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::BatchDeletePartition,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::BatchDeletePartitionError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::BatchDeletePartitionOutput,
            aws_smithy_http::result::SdkError<crate::error::BatchDeletePartitionError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the Data Catalog where the partition to be deleted resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog where the partition to be deleted resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The name of the catalog database in which the table in question resides.</p>
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        /// <p>The name of the catalog database in which the table in question resides.</p>
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        /// <p>The name of the table that contains the partitions to be deleted.</p>
        pub fn table_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.table_name(input.into());
            self
        }
        /// <p>The name of the table that contains the partitions to be deleted.</p>
        pub fn set_table_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_table_name(input);
            self
        }
        /// Appends an item to `PartitionsToDelete`.
        ///
        /// To override the contents of this collection use [`set_partitions_to_delete`](Self::set_partitions_to_delete).
        ///
        /// <p>A list of <code>PartitionInput</code> structures that define the partitions to be deleted.</p>
        pub fn partitions_to_delete(mut self, input: crate::model::PartitionValueList) -> Self {
            self.inner = self.inner.partitions_to_delete(input);
            self
        }
        /// <p>A list of <code>PartitionInput</code> structures that define the partitions to be deleted.</p>
        pub fn set_partitions_to_delete(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::PartitionValueList>>,
        ) -> Self {
            self.inner = self.inner.set_partitions_to_delete(input);
            self
        }
    }
    /// Fluent builder constructing a request to `BatchDeleteTable`.
    ///
    /// <p>Deletes multiple tables at once.</p> <note>
    /// <p>After completing this operation, you no longer have access to the table versions and partitions that belong to the deleted table. Glue deletes these "orphaned" resources asynchronously in a timely manner, at the discretion of the service.</p>
    /// <p>To ensure the immediate deletion of all related resources, before calling <code>BatchDeleteTable</code>, use <code>DeleteTableVersion</code> or <code>BatchDeleteTableVersion</code>, and <code>DeletePartition</code> or <code>BatchDeletePartition</code>, to delete any resources that belong to the table.</p>
    /// </note>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct BatchDeleteTable {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::batch_delete_table_input::Builder,
    }
    impl BatchDeleteTable {
        /// Creates a new `BatchDeleteTable`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::BatchDeleteTable,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::BatchDeleteTableError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::BatchDeleteTableOutput,
            aws_smithy_http::result::SdkError<crate::error::BatchDeleteTableError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the Data Catalog where the table resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog where the table resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The name of the catalog database in which the tables to delete reside. For Hive compatibility, this name is entirely lowercase.</p>
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        /// <p>The name of the catalog database in which the tables to delete reside. For Hive compatibility, this name is entirely lowercase.</p>
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        /// Appends an item to `TablesToDelete`.
        ///
        /// To override the contents of this collection use [`set_tables_to_delete`](Self::set_tables_to_delete).
        ///
        /// <p>A list of the table to delete.</p>
        pub fn tables_to_delete(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.tables_to_delete(input.into());
            self
        }
        /// <p>A list of the table to delete.</p>
        pub fn set_tables_to_delete(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.inner = self.inner.set_tables_to_delete(input);
            self
        }
        /// <p>The transaction ID at which to delete the table contents.</p>
        pub fn transaction_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.transaction_id(input.into());
            self
        }
        /// <p>The transaction ID at which to delete the table contents.</p>
        pub fn set_transaction_id(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_transaction_id(input);
            self
        }
    }
    /// Fluent builder constructing a request to `BatchDeleteTableVersion`.
    ///
    /// <p>Deletes a specified batch of versions of a table.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct BatchDeleteTableVersion {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::batch_delete_table_version_input::Builder,
    }
    impl BatchDeleteTableVersion {
        /// Creates a new `BatchDeleteTableVersion`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::BatchDeleteTableVersion,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::BatchDeleteTableVersionError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::BatchDeleteTableVersionOutput,
            aws_smithy_http::result::SdkError<crate::error::BatchDeleteTableVersionError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the Data Catalog where the tables reside. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog where the tables reside. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The database in the catalog in which the table resides. For Hive compatibility, this name is entirely lowercase.</p>
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        /// <p>The database in the catalog in which the table resides. For Hive compatibility, this name is entirely lowercase.</p>
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        /// <p>The name of the table. For Hive compatibility, this name is entirely lowercase.</p>
        pub fn table_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.table_name(input.into());
            self
        }
        /// <p>The name of the table. For Hive compatibility, this name is entirely lowercase.</p>
        pub fn set_table_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_table_name(input);
            self
        }
        /// Appends an item to `VersionIds`.
        ///
        /// To override the contents of this collection use [`set_version_ids`](Self::set_version_ids).
        ///
        /// <p>A list of the IDs of versions to be deleted. A <code>VersionId</code> is a string representation of an integer. Each version is incremented by 1.</p>
        pub fn version_ids(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.version_ids(input.into());
            self
        }
        /// <p>A list of the IDs of versions to be deleted. A <code>VersionId</code> is a string representation of an integer. Each version is incremented by 1.</p>
        pub fn set_version_ids(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.inner = self.inner.set_version_ids(input);
            self
        }
    }
    /// Fluent builder constructing a request to `BatchGetBlueprints`.
    ///
    /// <p>Retrieves information about a list of blueprints.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct BatchGetBlueprints {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::batch_get_blueprints_input::Builder,
    }
    impl BatchGetBlueprints {
        /// Creates a new `BatchGetBlueprints`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::BatchGetBlueprints,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::BatchGetBlueprintsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::BatchGetBlueprintsOutput,
            aws_smithy_http::result::SdkError<crate::error::BatchGetBlueprintsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Appends an item to `Names`.
        ///
        /// To override the contents of this collection use [`set_names`](Self::set_names).
        ///
        /// <p>A list of blueprint names.</p>
        pub fn names(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.names(input.into());
            self
        }
        /// <p>A list of blueprint names.</p>
        pub fn set_names(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.inner = self.inner.set_names(input);
            self
        }
        /// <p>Specifies whether or not to include the blueprint in the response.</p>
        pub fn include_blueprint(mut self, input: bool) -> Self {
            self.inner = self.inner.include_blueprint(input);
            self
        }
        /// <p>Specifies whether or not to include the blueprint in the response.</p>
        pub fn set_include_blueprint(mut self, input: std::option::Option<bool>) -> Self {
            self.inner = self.inner.set_include_blueprint(input);
            self
        }
        /// <p>Specifies whether or not to include the parameters, as a JSON string, for the blueprint in the response.</p>
        pub fn include_parameter_spec(mut self, input: bool) -> Self {
            self.inner = self.inner.include_parameter_spec(input);
            self
        }
        /// <p>Specifies whether or not to include the parameters, as a JSON string, for the blueprint in the response.</p>
        pub fn set_include_parameter_spec(mut self, input: std::option::Option<bool>) -> Self {
            self.inner = self.inner.set_include_parameter_spec(input);
            self
        }
    }
    /// Fluent builder constructing a request to `BatchGetCrawlers`.
    ///
    /// <p>Returns a list of resource metadata for a given list of crawler names. After calling the <code>ListCrawlers</code> operation, you can call this operation to access the data to which you have been granted permissions. This operation supports all IAM permissions, including permission conditions that uses tags.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct BatchGetCrawlers {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::batch_get_crawlers_input::Builder,
    }
    impl BatchGetCrawlers {
        /// Creates a new `BatchGetCrawlers`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::BatchGetCrawlers,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::BatchGetCrawlersError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::BatchGetCrawlersOutput,
            aws_smithy_http::result::SdkError<crate::error::BatchGetCrawlersError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Appends an item to `CrawlerNames`.
        ///
        /// To override the contents of this collection use [`set_crawler_names`](Self::set_crawler_names).
        ///
        /// <p>A list of crawler names, which might be the names returned from the <code>ListCrawlers</code> operation.</p>
        pub fn crawler_names(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.crawler_names(input.into());
            self
        }
        /// <p>A list of crawler names, which might be the names returned from the <code>ListCrawlers</code> operation.</p>
        pub fn set_crawler_names(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.inner = self.inner.set_crawler_names(input);
            self
        }
    }
    /// Fluent builder constructing a request to `BatchGetCustomEntityTypes`.
    ///
    /// <p>Retrieves the details for the custom patterns specified by a list of names.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct BatchGetCustomEntityTypes {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::batch_get_custom_entity_types_input::Builder,
    }
    impl BatchGetCustomEntityTypes {
        /// Creates a new `BatchGetCustomEntityTypes`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::BatchGetCustomEntityTypes,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::BatchGetCustomEntityTypesError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::BatchGetCustomEntityTypesOutput,
            aws_smithy_http::result::SdkError<crate::error::BatchGetCustomEntityTypesError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Appends an item to `Names`.
        ///
        /// To override the contents of this collection use [`set_names`](Self::set_names).
        ///
        /// <p>A list of names of the custom patterns that you want to retrieve.</p>
        pub fn names(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.names(input.into());
            self
        }
        /// <p>A list of names of the custom patterns that you want to retrieve.</p>
        pub fn set_names(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.inner = self.inner.set_names(input);
            self
        }
    }
    /// Fluent builder constructing a request to `BatchGetDataQualityResult`.
    ///
    /// <p>Retrieves a list of data quality results for the specified result IDs.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct BatchGetDataQualityResult {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::batch_get_data_quality_result_input::Builder,
    }
    impl BatchGetDataQualityResult {
        /// Creates a new `BatchGetDataQualityResult`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::BatchGetDataQualityResult,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::BatchGetDataQualityResultError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::BatchGetDataQualityResultOutput,
            aws_smithy_http::result::SdkError<crate::error::BatchGetDataQualityResultError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Appends an item to `ResultIds`.
        ///
        /// To override the contents of this collection use [`set_result_ids`](Self::set_result_ids).
        ///
        /// <p>A list of unique result IDs for the data quality results.</p>
        pub fn result_ids(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.result_ids(input.into());
            self
        }
        /// <p>A list of unique result IDs for the data quality results.</p>
        pub fn set_result_ids(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.inner = self.inner.set_result_ids(input);
            self
        }
    }
    /// Fluent builder constructing a request to `BatchGetDevEndpoints`.
    ///
    /// <p>Returns a list of resource metadata for a given list of development endpoint names. After calling the <code>ListDevEndpoints</code> operation, you can call this operation to access the data to which you have been granted permissions. This operation supports all IAM permissions, including permission conditions that uses tags.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct BatchGetDevEndpoints {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::batch_get_dev_endpoints_input::Builder,
    }
    impl BatchGetDevEndpoints {
        /// Creates a new `BatchGetDevEndpoints`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::BatchGetDevEndpoints,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::BatchGetDevEndpointsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::BatchGetDevEndpointsOutput,
            aws_smithy_http::result::SdkError<crate::error::BatchGetDevEndpointsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Appends an item to `DevEndpointNames`.
        ///
        /// To override the contents of this collection use [`set_dev_endpoint_names`](Self::set_dev_endpoint_names).
        ///
        /// <p>The list of <code>DevEndpoint</code> names, which might be the names returned from the <code>ListDevEndpoint</code> operation.</p>
        pub fn dev_endpoint_names(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.dev_endpoint_names(input.into());
            self
        }
        /// <p>The list of <code>DevEndpoint</code> names, which might be the names returned from the <code>ListDevEndpoint</code> operation.</p>
        pub fn set_dev_endpoint_names(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.inner = self.inner.set_dev_endpoint_names(input);
            self
        }
    }
    /// Fluent builder constructing a request to `BatchGetJobs`.
    ///
    /// <p>Returns a list of resource metadata for a given list of job names. After calling the <code>ListJobs</code> operation, you can call this operation to access the data to which you have been granted permissions. This operation supports all IAM permissions, including permission conditions that uses tags. </p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct BatchGetJobs {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::batch_get_jobs_input::Builder,
    }
    impl BatchGetJobs {
        /// Creates a new `BatchGetJobs`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::BatchGetJobs,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::BatchGetJobsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::BatchGetJobsOutput,
            aws_smithy_http::result::SdkError<crate::error::BatchGetJobsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Appends an item to `JobNames`.
        ///
        /// To override the contents of this collection use [`set_job_names`](Self::set_job_names).
        ///
        /// <p>A list of job names, which might be the names returned from the <code>ListJobs</code> operation.</p>
        pub fn job_names(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.job_names(input.into());
            self
        }
        /// <p>A list of job names, which might be the names returned from the <code>ListJobs</code> operation.</p>
        pub fn set_job_names(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.inner = self.inner.set_job_names(input);
            self
        }
    }
    /// Fluent builder constructing a request to `BatchGetPartition`.
    ///
    /// <p>Retrieves partitions in a batch request.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct BatchGetPartition {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::batch_get_partition_input::Builder,
    }
    impl BatchGetPartition {
        /// Creates a new `BatchGetPartition`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::BatchGetPartition,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::BatchGetPartitionError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::BatchGetPartitionOutput,
            aws_smithy_http::result::SdkError<crate::error::BatchGetPartitionError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the Data Catalog where the partitions in question reside. If none is supplied, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog where the partitions in question reside. If none is supplied, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The name of the catalog database where the partitions reside.</p>
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        /// <p>The name of the catalog database where the partitions reside.</p>
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        /// <p>The name of the partitions' table.</p>
        pub fn table_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.table_name(input.into());
            self
        }
        /// <p>The name of the partitions' table.</p>
        pub fn set_table_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_table_name(input);
            self
        }
        /// Appends an item to `PartitionsToGet`.
        ///
        /// To override the contents of this collection use [`set_partitions_to_get`](Self::set_partitions_to_get).
        ///
        /// <p>A list of partition values identifying the partitions to retrieve.</p>
        pub fn partitions_to_get(mut self, input: crate::model::PartitionValueList) -> Self {
            self.inner = self.inner.partitions_to_get(input);
            self
        }
        /// <p>A list of partition values identifying the partitions to retrieve.</p>
        pub fn set_partitions_to_get(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::PartitionValueList>>,
        ) -> Self {
            self.inner = self.inner.set_partitions_to_get(input);
            self
        }
    }
    /// Fluent builder constructing a request to `BatchGetTriggers`.
    ///
    /// <p>Returns a list of resource metadata for a given list of trigger names. After calling the <code>ListTriggers</code> operation, you can call this operation to access the data to which you have been granted permissions. This operation supports all IAM permissions, including permission conditions that uses tags.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct BatchGetTriggers {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::batch_get_triggers_input::Builder,
    }
    impl BatchGetTriggers {
        /// Creates a new `BatchGetTriggers`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::BatchGetTriggers,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::BatchGetTriggersError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::BatchGetTriggersOutput,
            aws_smithy_http::result::SdkError<crate::error::BatchGetTriggersError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Appends an item to `TriggerNames`.
        ///
        /// To override the contents of this collection use [`set_trigger_names`](Self::set_trigger_names).
        ///
        /// <p>A list of trigger names, which may be the names returned from the <code>ListTriggers</code> operation.</p>
        pub fn trigger_names(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.trigger_names(input.into());
            self
        }
        /// <p>A list of trigger names, which may be the names returned from the <code>ListTriggers</code> operation.</p>
        pub fn set_trigger_names(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.inner = self.inner.set_trigger_names(input);
            self
        }
    }
    /// Fluent builder constructing a request to `BatchGetWorkflows`.
    ///
    /// <p>Returns a list of resource metadata for a given list of workflow names. After calling the <code>ListWorkflows</code> operation, you can call this operation to access the data to which you have been granted permissions. This operation supports all IAM permissions, including permission conditions that uses tags.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct BatchGetWorkflows {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::batch_get_workflows_input::Builder,
    }
    impl BatchGetWorkflows {
        /// Creates a new `BatchGetWorkflows`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::BatchGetWorkflows,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::BatchGetWorkflowsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::BatchGetWorkflowsOutput,
            aws_smithy_http::result::SdkError<crate::error::BatchGetWorkflowsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Appends an item to `Names`.
        ///
        /// To override the contents of this collection use [`set_names`](Self::set_names).
        ///
        /// <p>A list of workflow names, which may be the names returned from the <code>ListWorkflows</code> operation.</p>
        pub fn names(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.names(input.into());
            self
        }
        /// <p>A list of workflow names, which may be the names returned from the <code>ListWorkflows</code> operation.</p>
        pub fn set_names(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.inner = self.inner.set_names(input);
            self
        }
        /// <p>Specifies whether to include a graph when returning the workflow resource metadata.</p>
        pub fn include_graph(mut self, input: bool) -> Self {
            self.inner = self.inner.include_graph(input);
            self
        }
        /// <p>Specifies whether to include a graph when returning the workflow resource metadata.</p>
        pub fn set_include_graph(mut self, input: std::option::Option<bool>) -> Self {
            self.inner = self.inner.set_include_graph(input);
            self
        }
    }
    /// Fluent builder constructing a request to `BatchStopJobRun`.
    ///
    /// <p>Stops one or more job runs for a specified job definition.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct BatchStopJobRun {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::batch_stop_job_run_input::Builder,
    }
    impl BatchStopJobRun {
        /// Creates a new `BatchStopJobRun`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::BatchStopJobRun,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::BatchStopJobRunError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::BatchStopJobRunOutput,
            aws_smithy_http::result::SdkError<crate::error::BatchStopJobRunError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the job definition for which to stop job runs.</p>
        pub fn job_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.job_name(input.into());
            self
        }
        /// <p>The name of the job definition for which to stop job runs.</p>
        pub fn set_job_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_job_name(input);
            self
        }
        /// Appends an item to `JobRunIds`.
        ///
        /// To override the contents of this collection use [`set_job_run_ids`](Self::set_job_run_ids).
        ///
        /// <p>A list of the <code>JobRunIds</code> that should be stopped for that job definition.</p>
        pub fn job_run_ids(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.job_run_ids(input.into());
            self
        }
        /// <p>A list of the <code>JobRunIds</code> that should be stopped for that job definition.</p>
        pub fn set_job_run_ids(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.inner = self.inner.set_job_run_ids(input);
            self
        }
    }
    /// Fluent builder constructing a request to `BatchUpdatePartition`.
    ///
    /// <p>Updates one or more partitions in a batch operation.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct BatchUpdatePartition {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::batch_update_partition_input::Builder,
    }
    impl BatchUpdatePartition {
        /// Creates a new `BatchUpdatePartition`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::BatchUpdatePartition,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::BatchUpdatePartitionError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::BatchUpdatePartitionOutput,
            aws_smithy_http::result::SdkError<crate::error::BatchUpdatePartitionError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the catalog in which the partition is to be updated. Currently, this should be the Amazon Web Services account ID.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the catalog in which the partition is to be updated. Currently, this should be the Amazon Web Services account ID.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The name of the metadata database in which the partition is to be updated.</p>
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        /// <p>The name of the metadata database in which the partition is to be updated.</p>
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        /// <p>The name of the metadata table in which the partition is to be updated.</p>
        pub fn table_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.table_name(input.into());
            self
        }
        /// <p>The name of the metadata table in which the partition is to be updated.</p>
        pub fn set_table_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_table_name(input);
            self
        }
        /// Appends an item to `Entries`.
        ///
        /// To override the contents of this collection use [`set_entries`](Self::set_entries).
        ///
        /// <p>A list of up to 100 <code>BatchUpdatePartitionRequestEntry</code> objects to update.</p>
        pub fn entries(mut self, input: crate::model::BatchUpdatePartitionRequestEntry) -> Self {
            self.inner = self.inner.entries(input);
            self
        }
        /// <p>A list of up to 100 <code>BatchUpdatePartitionRequestEntry</code> objects to update.</p>
        pub fn set_entries(
            mut self,
            input: std::option::Option<
                std::vec::Vec<crate::model::BatchUpdatePartitionRequestEntry>,
            >,
        ) -> Self {
            self.inner = self.inner.set_entries(input);
            self
        }
    }
    /// Fluent builder constructing a request to `CancelDataQualityRuleRecommendationRun`.
    ///
    /// <p>Cancels the specified recommendation run that was being used to generate rules.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct CancelDataQualityRuleRecommendationRun {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::cancel_data_quality_rule_recommendation_run_input::Builder,
    }
    impl CancelDataQualityRuleRecommendationRun {
        /// Creates a new `CancelDataQualityRuleRecommendationRun`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::CancelDataQualityRuleRecommendationRun,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<
                crate::error::CancelDataQualityRuleRecommendationRunError,
            >,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::CancelDataQualityRuleRecommendationRunOutput,
            aws_smithy_http::result::SdkError<
                crate::error::CancelDataQualityRuleRecommendationRunError,
            >,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The unique run identifier associated with this run.</p>
        pub fn run_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.run_id(input.into());
            self
        }
        /// <p>The unique run identifier associated with this run.</p>
        pub fn set_run_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_run_id(input);
            self
        }
    }
    /// Fluent builder constructing a request to `CancelDataQualityRulesetEvaluationRun`.
    ///
    /// <p>Cancels a run where a ruleset is being evaluated against a data source.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct CancelDataQualityRulesetEvaluationRun {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::cancel_data_quality_ruleset_evaluation_run_input::Builder,
    }
    impl CancelDataQualityRulesetEvaluationRun {
        /// Creates a new `CancelDataQualityRulesetEvaluationRun`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::CancelDataQualityRulesetEvaluationRun,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<
                crate::error::CancelDataQualityRulesetEvaluationRunError,
            >,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::CancelDataQualityRulesetEvaluationRunOutput,
            aws_smithy_http::result::SdkError<
                crate::error::CancelDataQualityRulesetEvaluationRunError,
            >,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The unique run identifier associated with this run.</p>
        pub fn run_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.run_id(input.into());
            self
        }
        /// <p>The unique run identifier associated with this run.</p>
        pub fn set_run_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_run_id(input);
            self
        }
    }
    /// Fluent builder constructing a request to `CancelMLTaskRun`.
    ///
    /// <p>Cancels (stops) a task run. Machine learning task runs are asynchronous tasks that Glue runs on your behalf as part of various machine learning workflows. You can cancel a machine learning task run at any time by calling <code>CancelMLTaskRun</code> with a task run's parent transform's <code>TransformID</code> and the task run's <code>TaskRunId</code>. </p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct CancelMLTaskRun {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::cancel_ml_task_run_input::Builder,
    }
    impl CancelMLTaskRun {
        /// Creates a new `CancelMLTaskRun`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::CancelMLTaskRun,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::CancelMLTaskRunError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::CancelMlTaskRunOutput,
            aws_smithy_http::result::SdkError<crate::error::CancelMLTaskRunError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The unique identifier of the machine learning transform.</p>
        pub fn transform_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.transform_id(input.into());
            self
        }
        /// <p>The unique identifier of the machine learning transform.</p>
        pub fn set_transform_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_transform_id(input);
            self
        }
        /// <p>A unique identifier for the task run.</p>
        pub fn task_run_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.task_run_id(input.into());
            self
        }
        /// <p>A unique identifier for the task run.</p>
        pub fn set_task_run_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_task_run_id(input);
            self
        }
    }
    /// Fluent builder constructing a request to `CancelStatement`.
    ///
    /// <p>Cancels the statement.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct CancelStatement {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::cancel_statement_input::Builder,
    }
    impl CancelStatement {
        /// Creates a new `CancelStatement`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::CancelStatement,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::CancelStatementError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::CancelStatementOutput,
            aws_smithy_http::result::SdkError<crate::error::CancelStatementError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The Session ID of the statement to be cancelled.</p>
        pub fn session_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.session_id(input.into());
            self
        }
        /// <p>The Session ID of the statement to be cancelled.</p>
        pub fn set_session_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_session_id(input);
            self
        }
        /// <p>The ID of the statement to be cancelled.</p>
        pub fn id(mut self, input: i32) -> Self {
            self.inner = self.inner.id(input);
            self
        }
        /// <p>The ID of the statement to be cancelled.</p>
        pub fn set_id(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_id(input);
            self
        }
        /// <p>The origin of the request to cancel the statement.</p>
        pub fn request_origin(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.request_origin(input.into());
            self
        }
        /// <p>The origin of the request to cancel the statement.</p>
        pub fn set_request_origin(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_request_origin(input);
            self
        }
    }
    /// Fluent builder constructing a request to `CheckSchemaVersionValidity`.
    ///
    /// <p>Validates the supplied schema. This call has no side effects, it simply validates using the supplied schema using <code>DataFormat</code> as the format. Since it does not take a schema set name, no compatibility checks are performed.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct CheckSchemaVersionValidity {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::check_schema_version_validity_input::Builder,
    }
    impl CheckSchemaVersionValidity {
        /// Creates a new `CheckSchemaVersionValidity`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::CheckSchemaVersionValidity,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::CheckSchemaVersionValidityError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::CheckSchemaVersionValidityOutput,
            aws_smithy_http::result::SdkError<crate::error::CheckSchemaVersionValidityError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The data format of the schema definition. Currently <code>AVRO</code>, <code>JSON</code> and <code>PROTOBUF</code> are supported.</p>
        pub fn data_format(mut self, input: crate::model::DataFormat) -> Self {
            self.inner = self.inner.data_format(input);
            self
        }
        /// <p>The data format of the schema definition. Currently <code>AVRO</code>, <code>JSON</code> and <code>PROTOBUF</code> are supported.</p>
        pub fn set_data_format(
            mut self,
            input: std::option::Option<crate::model::DataFormat>,
        ) -> Self {
            self.inner = self.inner.set_data_format(input);
            self
        }
        /// <p>The definition of the schema that has to be validated.</p>
        pub fn schema_definition(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.schema_definition(input.into());
            self
        }
        /// <p>The definition of the schema that has to be validated.</p>
        pub fn set_schema_definition(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_schema_definition(input);
            self
        }
    }
    /// Fluent builder constructing a request to `CreateBlueprint`.
    ///
    /// <p>Registers a blueprint with Glue.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct CreateBlueprint {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::create_blueprint_input::Builder,
    }
    impl CreateBlueprint {
        /// Creates a new `CreateBlueprint`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::CreateBlueprint,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::CreateBlueprintError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::CreateBlueprintOutput,
            aws_smithy_http::result::SdkError<crate::error::CreateBlueprintError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the blueprint.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The name of the blueprint.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
        /// <p>A description of the blueprint.</p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.description(input.into());
            self
        }
        /// <p>A description of the blueprint.</p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_description(input);
            self
        }
        /// <p>Specifies a path in Amazon S3 where the blueprint is published.</p>
        pub fn blueprint_location(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.blueprint_location(input.into());
            self
        }
        /// <p>Specifies a path in Amazon S3 where the blueprint is published.</p>
        pub fn set_blueprint_location(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_blueprint_location(input);
            self
        }
        /// Adds a key-value pair to `Tags`.
        ///
        /// To override the contents of this collection use [`set_tags`](Self::set_tags).
        ///
        /// <p>The tags to be applied to this blueprint.</p>
        pub fn tags(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.tags(k.into(), v.into());
            self
        }
        /// <p>The tags to be applied to this blueprint.</p>
        pub fn set_tags(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.inner = self.inner.set_tags(input);
            self
        }
    }
    /// Fluent builder constructing a request to `CreateClassifier`.
    ///
    /// <p>Creates a classifier in the user's account. This can be a <code>GrokClassifier</code>, an <code>XMLClassifier</code>, a <code>JsonClassifier</code>, or a <code>CsvClassifier</code>, depending on which field of the request is present.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct CreateClassifier {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::create_classifier_input::Builder,
    }
    impl CreateClassifier {
        /// Creates a new `CreateClassifier`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::CreateClassifier,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::CreateClassifierError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::CreateClassifierOutput,
            aws_smithy_http::result::SdkError<crate::error::CreateClassifierError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>A <code>GrokClassifier</code> object specifying the classifier to create.</p>
        pub fn grok_classifier(mut self, input: crate::model::CreateGrokClassifierRequest) -> Self {
            self.inner = self.inner.grok_classifier(input);
            self
        }
        /// <p>A <code>GrokClassifier</code> object specifying the classifier to create.</p>
        pub fn set_grok_classifier(
            mut self,
            input: std::option::Option<crate::model::CreateGrokClassifierRequest>,
        ) -> Self {
            self.inner = self.inner.set_grok_classifier(input);
            self
        }
        /// <p>An <code>XMLClassifier</code> object specifying the classifier to create.</p>
        pub fn xml_classifier(mut self, input: crate::model::CreateXmlClassifierRequest) -> Self {
            self.inner = self.inner.xml_classifier(input);
            self
        }
        /// <p>An <code>XMLClassifier</code> object specifying the classifier to create.</p>
        pub fn set_xml_classifier(
            mut self,
            input: std::option::Option<crate::model::CreateXmlClassifierRequest>,
        ) -> Self {
            self.inner = self.inner.set_xml_classifier(input);
            self
        }
        /// <p>A <code>JsonClassifier</code> object specifying the classifier to create.</p>
        pub fn json_classifier(mut self, input: crate::model::CreateJsonClassifierRequest) -> Self {
            self.inner = self.inner.json_classifier(input);
            self
        }
        /// <p>A <code>JsonClassifier</code> object specifying the classifier to create.</p>
        pub fn set_json_classifier(
            mut self,
            input: std::option::Option<crate::model::CreateJsonClassifierRequest>,
        ) -> Self {
            self.inner = self.inner.set_json_classifier(input);
            self
        }
        /// <p>A <code>CsvClassifier</code> object specifying the classifier to create.</p>
        pub fn csv_classifier(mut self, input: crate::model::CreateCsvClassifierRequest) -> Self {
            self.inner = self.inner.csv_classifier(input);
            self
        }
        /// <p>A <code>CsvClassifier</code> object specifying the classifier to create.</p>
        pub fn set_csv_classifier(
            mut self,
            input: std::option::Option<crate::model::CreateCsvClassifierRequest>,
        ) -> Self {
            self.inner = self.inner.set_csv_classifier(input);
            self
        }
    }
    /// Fluent builder constructing a request to `CreateConnection`.
    ///
    /// <p>Creates a connection definition in the Data Catalog.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct CreateConnection {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::create_connection_input::Builder,
    }
    impl CreateConnection {
        /// Creates a new `CreateConnection`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::CreateConnection,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::CreateConnectionError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::CreateConnectionOutput,
            aws_smithy_http::result::SdkError<crate::error::CreateConnectionError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the Data Catalog in which to create the connection. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog in which to create the connection. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>A <code>ConnectionInput</code> object defining the connection to create.</p>
        pub fn connection_input(mut self, input: crate::model::ConnectionInput) -> Self {
            self.inner = self.inner.connection_input(input);
            self
        }
        /// <p>A <code>ConnectionInput</code> object defining the connection to create.</p>
        pub fn set_connection_input(
            mut self,
            input: std::option::Option<crate::model::ConnectionInput>,
        ) -> Self {
            self.inner = self.inner.set_connection_input(input);
            self
        }
        /// Adds a key-value pair to `Tags`.
        ///
        /// To override the contents of this collection use [`set_tags`](Self::set_tags).
        ///
        /// <p>The tags you assign to the connection.</p>
        pub fn tags(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.tags(k.into(), v.into());
            self
        }
        /// <p>The tags you assign to the connection.</p>
        pub fn set_tags(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.inner = self.inner.set_tags(input);
            self
        }
    }
    /// Fluent builder constructing a request to `CreateCrawler`.
    ///
    /// <p>Creates a new crawler with specified targets, role, configuration, and optional schedule. At least one crawl target must be specified, in the <code>s3Targets</code> field, the <code>jdbcTargets</code> field, or the <code>DynamoDBTargets</code> field.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct CreateCrawler {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::create_crawler_input::Builder,
    }
    impl CreateCrawler {
        /// Creates a new `CreateCrawler`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::CreateCrawler,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::CreateCrawlerError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::CreateCrawlerOutput,
            aws_smithy_http::result::SdkError<crate::error::CreateCrawlerError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>Name of the new crawler.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>Name of the new crawler.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
        /// <p>The IAM role or Amazon Resource Name (ARN) of an IAM role used by the new crawler to access customer resources.</p>
        pub fn role(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.role(input.into());
            self
        }
        /// <p>The IAM role or Amazon Resource Name (ARN) of an IAM role used by the new crawler to access customer resources.</p>
        pub fn set_role(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_role(input);
            self
        }
        /// <p>The Glue database where results are written, such as: <code>arn:aws:daylight:us-east-1::database/sometable/*</code>.</p>
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        /// <p>The Glue database where results are written, such as: <code>arn:aws:daylight:us-east-1::database/sometable/*</code>.</p>
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        /// <p>A description of the new crawler.</p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.description(input.into());
            self
        }
        /// <p>A description of the new crawler.</p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_description(input);
            self
        }
        /// <p>A list of collection of targets to crawl.</p>
        pub fn targets(mut self, input: crate::model::CrawlerTargets) -> Self {
            self.inner = self.inner.targets(input);
            self
        }
        /// <p>A list of collection of targets to crawl.</p>
        pub fn set_targets(
            mut self,
            input: std::option::Option<crate::model::CrawlerTargets>,
        ) -> Self {
            self.inner = self.inner.set_targets(input);
            self
        }
        /// <p>A <code>cron</code> expression used to specify the schedule (see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html">Time-Based Schedules for Jobs and Crawlers</a>. For example, to run something every day at 12:15 UTC, you would specify: <code>cron(15 12 * * ? *)</code>.</p>
        pub fn schedule(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.schedule(input.into());
            self
        }
        /// <p>A <code>cron</code> expression used to specify the schedule (see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html">Time-Based Schedules for Jobs and Crawlers</a>. For example, to run something every day at 12:15 UTC, you would specify: <code>cron(15 12 * * ? *)</code>.</p>
        pub fn set_schedule(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_schedule(input);
            self
        }
        /// Appends an item to `Classifiers`.
        ///
        /// To override the contents of this collection use [`set_classifiers`](Self::set_classifiers).
        ///
        /// <p>A list of custom classifiers that the user has registered. By default, all built-in classifiers are included in a crawl, but these custom classifiers always override the default classifiers for a given classification.</p>
        pub fn classifiers(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.classifiers(input.into());
            self
        }
        /// <p>A list of custom classifiers that the user has registered. By default, all built-in classifiers are included in a crawl, but these custom classifiers always override the default classifiers for a given classification.</p>
        pub fn set_classifiers(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.inner = self.inner.set_classifiers(input);
            self
        }
        /// <p>The table prefix used for catalog tables that are created.</p>
        pub fn table_prefix(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.table_prefix(input.into());
            self
        }
        /// <p>The table prefix used for catalog tables that are created.</p>
        pub fn set_table_prefix(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_table_prefix(input);
            self
        }
        /// <p>The policy for the crawler's update and deletion behavior.</p>
        pub fn schema_change_policy(mut self, input: crate::model::SchemaChangePolicy) -> Self {
            self.inner = self.inner.schema_change_policy(input);
            self
        }
        /// <p>The policy for the crawler's update and deletion behavior.</p>
        pub fn set_schema_change_policy(
            mut self,
            input: std::option::Option<crate::model::SchemaChangePolicy>,
        ) -> Self {
            self.inner = self.inner.set_schema_change_policy(input);
            self
        }
        /// <p>A policy that specifies whether to crawl the entire dataset again, or to crawl only folders that were added since the last crawler run.</p>
        pub fn recrawl_policy(mut self, input: crate::model::RecrawlPolicy) -> Self {
            self.inner = self.inner.recrawl_policy(input);
            self
        }
        /// <p>A policy that specifies whether to crawl the entire dataset again, or to crawl only folders that were added since the last crawler run.</p>
        pub fn set_recrawl_policy(
            mut self,
            input: std::option::Option<crate::model::RecrawlPolicy>,
        ) -> Self {
            self.inner = self.inner.set_recrawl_policy(input);
            self
        }
        /// <p>Specifies data lineage configuration settings for the crawler.</p>
        pub fn lineage_configuration(mut self, input: crate::model::LineageConfiguration) -> Self {
            self.inner = self.inner.lineage_configuration(input);
            self
        }
        /// <p>Specifies data lineage configuration settings for the crawler.</p>
        pub fn set_lineage_configuration(
            mut self,
            input: std::option::Option<crate::model::LineageConfiguration>,
        ) -> Self {
            self.inner = self.inner.set_lineage_configuration(input);
            self
        }
        /// <p>Specifies Lake Formation configuration settings for the crawler.</p>
        pub fn lake_formation_configuration(
            mut self,
            input: crate::model::LakeFormationConfiguration,
        ) -> Self {
            self.inner = self.inner.lake_formation_configuration(input);
            self
        }
        /// <p>Specifies Lake Formation configuration settings for the crawler.</p>
        pub fn set_lake_formation_configuration(
            mut self,
            input: std::option::Option<crate::model::LakeFormationConfiguration>,
        ) -> Self {
            self.inner = self.inner.set_lake_formation_configuration(input);
            self
        }
        /// <p>Crawler configuration information. This versioned JSON string allows users to specify aspects of a crawler's behavior. For more information, see <a href="https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html">Setting crawler configuration options</a>.</p>
        pub fn configuration(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.configuration(input.into());
            self
        }
        /// <p>Crawler configuration information. This versioned JSON string allows users to specify aspects of a crawler's behavior. For more information, see <a href="https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html">Setting crawler configuration options</a>.</p>
        pub fn set_configuration(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_configuration(input);
            self
        }
        /// <p>The name of the <code>SecurityConfiguration</code> structure to be used by this crawler.</p>
        pub fn crawler_security_configuration(
            mut self,
            input: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.crawler_security_configuration(input.into());
            self
        }
        /// <p>The name of the <code>SecurityConfiguration</code> structure to be used by this crawler.</p>
        pub fn set_crawler_security_configuration(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_crawler_security_configuration(input);
            self
        }
        /// Adds a key-value pair to `Tags`.
        ///
        /// To override the contents of this collection use [`set_tags`](Self::set_tags).
        ///
        /// <p>The tags to use with this crawler request. You may use tags to limit access to the crawler. For more information about tags in Glue, see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html">Amazon Web Services Tags in Glue</a> in the developer guide.</p>
        pub fn tags(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.tags(k.into(), v.into());
            self
        }
        /// <p>The tags to use with this crawler request. You may use tags to limit access to the crawler. For more information about tags in Glue, see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html">Amazon Web Services Tags in Glue</a> in the developer guide.</p>
        pub fn set_tags(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.inner = self.inner.set_tags(input);
            self
        }
    }
    /// Fluent builder constructing a request to `CreateCustomEntityType`.
    ///
    /// <p>Creates a custom pattern that is used to detect sensitive data across the columns and rows of your structured data.</p>
    /// <p>Each custom pattern you create specifies a regular expression and an optional list of context words. If no context words are passed only a regular expression is checked.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct CreateCustomEntityType {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::create_custom_entity_type_input::Builder,
    }
    impl CreateCustomEntityType {
        /// Creates a new `CreateCustomEntityType`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::CreateCustomEntityType,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::CreateCustomEntityTypeError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::CreateCustomEntityTypeOutput,
            aws_smithy_http::result::SdkError<crate::error::CreateCustomEntityTypeError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>A name for the custom pattern that allows it to be retrieved or deleted later. This name must be unique per Amazon Web Services account.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>A name for the custom pattern that allows it to be retrieved or deleted later. This name must be unique per Amazon Web Services account.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
        /// <p>A regular expression string that is used for detecting sensitive data in a custom pattern.</p>
        pub fn regex_string(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.regex_string(input.into());
            self
        }
        /// <p>A regular expression string that is used for detecting sensitive data in a custom pattern.</p>
        pub fn set_regex_string(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_regex_string(input);
            self
        }
        /// Appends an item to `ContextWords`.
        ///
        /// To override the contents of this collection use [`set_context_words`](Self::set_context_words).
        ///
        /// <p>A list of context words. If none of these context words are found within the vicinity of the regular expression the data will not be detected as sensitive data.</p>
        /// <p>If no context words are passed only a regular expression is checked.</p>
        pub fn context_words(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.context_words(input.into());
            self
        }
        /// <p>A list of context words. If none of these context words are found within the vicinity of the regular expression the data will not be detected as sensitive data.</p>
        /// <p>If no context words are passed only a regular expression is checked.</p>
        pub fn set_context_words(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.inner = self.inner.set_context_words(input);
            self
        }
    }
    /// Fluent builder constructing a request to `CreateDatabase`.
    ///
    /// <p>Creates a new database in a Data Catalog.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct CreateDatabase {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::create_database_input::Builder,
    }
    impl CreateDatabase {
        /// Creates a new `CreateDatabase`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::CreateDatabase,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::CreateDatabaseError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::CreateDatabaseOutput,
            aws_smithy_http::result::SdkError<crate::error::CreateDatabaseError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the Data Catalog in which to create the database. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog in which to create the database. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The metadata for the database.</p>
        pub fn database_input(mut self, input: crate::model::DatabaseInput) -> Self {
            self.inner = self.inner.database_input(input);
            self
        }
        /// <p>The metadata for the database.</p>
        pub fn set_database_input(
            mut self,
            input: std::option::Option<crate::model::DatabaseInput>,
        ) -> Self {
            self.inner = self.inner.set_database_input(input);
            self
        }
        /// Adds a key-value pair to `Tags`.
        ///
        /// To override the contents of this collection use [`set_tags`](Self::set_tags).
        ///
        /// <p>The tags you assign to the database.</p>
        pub fn tags(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.tags(k.into(), v.into());
            self
        }
        /// <p>The tags you assign to the database.</p>
        pub fn set_tags(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.inner = self.inner.set_tags(input);
            self
        }
    }
    /// Fluent builder constructing a request to `CreateDataQualityRuleset`.
    ///
    /// <p>Creates a data quality ruleset with DQDL rules applied to a specified Glue table.</p>
    /// <p>You create the ruleset using the Data Quality Definition Language (DQDL). For more information, see the Glue developer guide.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct CreateDataQualityRuleset {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::create_data_quality_ruleset_input::Builder,
    }
    impl CreateDataQualityRuleset {
        /// Creates a new `CreateDataQualityRuleset`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::CreateDataQualityRuleset,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::CreateDataQualityRulesetError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::CreateDataQualityRulesetOutput,
            aws_smithy_http::result::SdkError<crate::error::CreateDataQualityRulesetError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>A unique name for the data quality ruleset.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>A unique name for the data quality ruleset.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
        /// <p>A description of the data quality ruleset.</p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.description(input.into());
            self
        }
        /// <p>A description of the data quality ruleset.</p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_description(input);
            self
        }
        /// <p>A Data Quality Definition Language (DQDL) ruleset. For more information, see the Glue developer guide.</p>
        pub fn ruleset(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.ruleset(input.into());
            self
        }
        /// <p>A Data Quality Definition Language (DQDL) ruleset. For more information, see the Glue developer guide.</p>
        pub fn set_ruleset(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_ruleset(input);
            self
        }
        /// Adds a key-value pair to `Tags`.
        ///
        /// To override the contents of this collection use [`set_tags`](Self::set_tags).
        ///
        /// <p>A list of tags applied to the data quality ruleset.</p>
        pub fn tags(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.tags(k.into(), v.into());
            self
        }
        /// <p>A list of tags applied to the data quality ruleset.</p>
        pub fn set_tags(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.inner = self.inner.set_tags(input);
            self
        }
        /// <p>A target table associated with the data quality ruleset.</p>
        pub fn target_table(mut self, input: crate::model::DataQualityTargetTable) -> Self {
            self.inner = self.inner.target_table(input);
            self
        }
        /// <p>A target table associated with the data quality ruleset.</p>
        pub fn set_target_table(
            mut self,
            input: std::option::Option<crate::model::DataQualityTargetTable>,
        ) -> Self {
            self.inner = self.inner.set_target_table(input);
            self
        }
        /// <p>Used for idempotency and is recommended to be set to a random ID (such as a UUID) to avoid creating or starting multiple instances of the same resource.</p>
        pub fn client_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.client_token(input.into());
            self
        }
        /// <p>Used for idempotency and is recommended to be set to a random ID (such as a UUID) to avoid creating or starting multiple instances of the same resource.</p>
        pub fn set_client_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_client_token(input);
            self
        }
    }
    /// Fluent builder constructing a request to `CreateDevEndpoint`.
    ///
    /// <p>Creates a new development endpoint.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct CreateDevEndpoint {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::create_dev_endpoint_input::Builder,
    }
    impl CreateDevEndpoint {
        /// Creates a new `CreateDevEndpoint`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::CreateDevEndpoint,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::CreateDevEndpointError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::CreateDevEndpointOutput,
            aws_smithy_http::result::SdkError<crate::error::CreateDevEndpointError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name to be assigned to the new <code>DevEndpoint</code>.</p>
        pub fn endpoint_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.endpoint_name(input.into());
            self
        }
        /// <p>The name to be assigned to the new <code>DevEndpoint</code>.</p>
        pub fn set_endpoint_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_endpoint_name(input);
            self
        }
        /// <p>The IAM role for the <code>DevEndpoint</code>.</p>
        pub fn role_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.role_arn(input.into());
            self
        }
        /// <p>The IAM role for the <code>DevEndpoint</code>.</p>
        pub fn set_role_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_role_arn(input);
            self
        }
        /// Appends an item to `SecurityGroupIds`.
        ///
        /// To override the contents of this collection use [`set_security_group_ids`](Self::set_security_group_ids).
        ///
        /// <p>Security group IDs for the security groups to be used by the new <code>DevEndpoint</code>.</p>
        pub fn security_group_ids(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.security_group_ids(input.into());
            self
        }
        /// <p>Security group IDs for the security groups to be used by the new <code>DevEndpoint</code>.</p>
        pub fn set_security_group_ids(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.inner = self.inner.set_security_group_ids(input);
            self
        }
        /// <p>The subnet ID for the new <code>DevEndpoint</code> to use.</p>
        pub fn subnet_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.subnet_id(input.into());
            self
        }
        /// <p>The subnet ID for the new <code>DevEndpoint</code> to use.</p>
        pub fn set_subnet_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_subnet_id(input);
            self
        }
        /// <p>The public key to be used by this <code>DevEndpoint</code> for authentication. This attribute is provided for backward compatibility because the recommended attribute to use is public keys.</p>
        pub fn public_key(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.public_key(input.into());
            self
        }
        /// <p>The public key to be used by this <code>DevEndpoint</code> for authentication. This attribute is provided for backward compatibility because the recommended attribute to use is public keys.</p>
        pub fn set_public_key(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_public_key(input);
            self
        }
        /// Appends an item to `PublicKeys`.
        ///
        /// To override the contents of this collection use [`set_public_keys`](Self::set_public_keys).
        ///
        /// <p>A list of public keys to be used by the development endpoints for authentication. The use of this attribute is preferred over a single public key because the public keys allow you to have a different private key per client.</p> <note>
        /// <p>If you previously created an endpoint with a public key, you must remove that key to be able to set a list of public keys. Call the <code>UpdateDevEndpoint</code> API with the public key content in the <code>deletePublicKeys</code> attribute, and the list of new keys in the <code>addPublicKeys</code> attribute.</p>
        /// </note>
        pub fn public_keys(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.public_keys(input.into());
            self
        }
        /// <p>A list of public keys to be used by the development endpoints for authentication. The use of this attribute is preferred over a single public key because the public keys allow you to have a different private key per client.</p> <note>
        /// <p>If you previously created an endpoint with a public key, you must remove that key to be able to set a list of public keys. Call the <code>UpdateDevEndpoint</code> API with the public key content in the <code>deletePublicKeys</code> attribute, and the list of new keys in the <code>addPublicKeys</code> attribute.</p>
        /// </note>
        pub fn set_public_keys(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.inner = self.inner.set_public_keys(input);
            self
        }
        /// <p>The number of Glue Data Processing Units (DPUs) to allocate to this <code>DevEndpoint</code>.</p>
        pub fn number_of_nodes(mut self, input: i32) -> Self {
            self.inner = self.inner.number_of_nodes(input);
            self
        }
        /// <p>The number of Glue Data Processing Units (DPUs) to allocate to this <code>DevEndpoint</code>.</p>
        pub fn set_number_of_nodes(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_number_of_nodes(input);
            self
        }
        /// <p>The type of predefined worker that is allocated to the development endpoint. Accepts a value of Standard, G.1X, or G.2X.</p>
        /// <ul>
        /// <li> <p>For the <code>Standard</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.</p> </li>
        /// <li> <p>For the <code>G.1X</code> worker type, each worker maps to 1 DPU (4 vCPU, 16 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs.</p> </li>
        /// <li> <p>For the <code>G.2X</code> worker type, each worker maps to 2 DPU (8 vCPU, 32 GB of memory, 128 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs.</p> </li>
        /// </ul>
        /// <p>Known issue: when a development endpoint is created with the <code>G.2X</code> <code>WorkerType</code> configuration, the Spark drivers for the development endpoint will run on 4 vCPU, 16 GB of memory, and a 64 GB disk. </p>
        pub fn worker_type(mut self, input: crate::model::WorkerType) -> Self {
            self.inner = self.inner.worker_type(input);
            self
        }
        /// <p>The type of predefined worker that is allocated to the development endpoint. Accepts a value of Standard, G.1X, or G.2X.</p>
        /// <ul>
        /// <li> <p>For the <code>Standard</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.</p> </li>
        /// <li> <p>For the <code>G.1X</code> worker type, each worker maps to 1 DPU (4 vCPU, 16 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs.</p> </li>
        /// <li> <p>For the <code>G.2X</code> worker type, each worker maps to 2 DPU (8 vCPU, 32 GB of memory, 128 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs.</p> </li>
        /// </ul>
        /// <p>Known issue: when a development endpoint is created with the <code>G.2X</code> <code>WorkerType</code> configuration, the Spark drivers for the development endpoint will run on 4 vCPU, 16 GB of memory, and a 64 GB disk. </p>
        pub fn set_worker_type(
            mut self,
            input: std::option::Option<crate::model::WorkerType>,
        ) -> Self {
            self.inner = self.inner.set_worker_type(input);
            self
        }
        /// <p>Glue version determines the versions of Apache Spark and Python that Glue supports. The Python version indicates the version supported for running your ETL scripts on development endpoints. </p>
        /// <p>For more information about the available Glue versions and corresponding Spark and Python versions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Glue version</a> in the developer guide.</p>
        /// <p>Development endpoints that are created without specifying a Glue version default to Glue 0.9.</p>
        /// <p>You can specify a version of Python support for development endpoints by using the <code>Arguments</code> parameter in the <code>CreateDevEndpoint</code> or <code>UpdateDevEndpoint</code> APIs. If no arguments are provided, the version defaults to Python 2.</p>
        pub fn glue_version(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.glue_version(input.into());
            self
        }
        /// <p>Glue version determines the versions of Apache Spark and Python that Glue supports. The Python version indicates the version supported for running your ETL scripts on development endpoints. </p>
        /// <p>For more information about the available Glue versions and corresponding Spark and Python versions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Glue version</a> in the developer guide.</p>
        /// <p>Development endpoints that are created without specifying a Glue version default to Glue 0.9.</p>
        /// <p>You can specify a version of Python support for development endpoints by using the <code>Arguments</code> parameter in the <code>CreateDevEndpoint</code> or <code>UpdateDevEndpoint</code> APIs. If no arguments are provided, the version defaults to Python 2.</p>
        pub fn set_glue_version(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_glue_version(input);
            self
        }
        /// <p>The number of workers of a defined <code>workerType</code> that are allocated to the development endpoint.</p>
        /// <p>The maximum number of workers you can define are 299 for <code>G.1X</code>, and 149 for <code>G.2X</code>. </p>
        pub fn number_of_workers(mut self, input: i32) -> Self {
            self.inner = self.inner.number_of_workers(input);
            self
        }
        /// <p>The number of workers of a defined <code>workerType</code> that are allocated to the development endpoint.</p>
        /// <p>The maximum number of workers you can define are 299 for <code>G.1X</code>, and 149 for <code>G.2X</code>. </p>
        pub fn set_number_of_workers(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_number_of_workers(input);
            self
        }
        /// <p>The paths to one or more Python libraries in an Amazon S3 bucket that should be loaded in your <code>DevEndpoint</code>. Multiple values must be complete paths separated by a comma.</p> <note>
        /// <p>You can only use pure Python libraries with a <code>DevEndpoint</code>. Libraries that rely on C extensions, such as the <a href="http://pandas.pydata.org/">pandas</a> Python data analysis library, are not yet supported.</p>
        /// </note>
        pub fn extra_python_libs_s3_path(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.extra_python_libs_s3_path(input.into());
            self
        }
        /// <p>The paths to one or more Python libraries in an Amazon S3 bucket that should be loaded in your <code>DevEndpoint</code>. Multiple values must be complete paths separated by a comma.</p> <note>
        /// <p>You can only use pure Python libraries with a <code>DevEndpoint</code>. Libraries that rely on C extensions, such as the <a href="http://pandas.pydata.org/">pandas</a> Python data analysis library, are not yet supported.</p>
        /// </note>
        pub fn set_extra_python_libs_s3_path(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_extra_python_libs_s3_path(input);
            self
        }
        /// <p>The path to one or more Java <code>.jar</code> files in an S3 bucket that should be loaded in your <code>DevEndpoint</code>.</p>
        pub fn extra_jars_s3_path(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.extra_jars_s3_path(input.into());
            self
        }
        /// <p>The path to one or more Java <code>.jar</code> files in an S3 bucket that should be loaded in your <code>DevEndpoint</code>.</p>
        pub fn set_extra_jars_s3_path(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_extra_jars_s3_path(input);
            self
        }
        /// <p>The name of the <code>SecurityConfiguration</code> structure to be used with this <code>DevEndpoint</code>.</p>
        pub fn security_configuration(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.security_configuration(input.into());
            self
        }
        /// <p>The name of the <code>SecurityConfiguration</code> structure to be used with this <code>DevEndpoint</code>.</p>
        pub fn set_security_configuration(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_security_configuration(input);
            self
        }
        /// Adds a key-value pair to `Tags`.
        ///
        /// To override the contents of this collection use [`set_tags`](Self::set_tags).
        ///
        /// <p>The tags to use with this DevEndpoint. You may use tags to limit access to the DevEndpoint. For more information about tags in Glue, see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html">Amazon Web Services Tags in Glue</a> in the developer guide.</p>
        pub fn tags(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.tags(k.into(), v.into());
            self
        }
        /// <p>The tags to use with this DevEndpoint. You may use tags to limit access to the DevEndpoint. For more information about tags in Glue, see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html">Amazon Web Services Tags in Glue</a> in the developer guide.</p>
        pub fn set_tags(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.inner = self.inner.set_tags(input);
            self
        }
        /// Adds a key-value pair to `Arguments`.
        ///
        /// To override the contents of this collection use [`set_arguments`](Self::set_arguments).
        ///
        /// <p>A map of arguments used to configure the <code>DevEndpoint</code>.</p>
        pub fn arguments(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.arguments(k.into(), v.into());
            self
        }
        /// <p>A map of arguments used to configure the <code>DevEndpoint</code>.</p>
        pub fn set_arguments(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.inner = self.inner.set_arguments(input);
            self
        }
    }
    /// Fluent builder constructing a request to `CreateJob`.
    ///
    /// <p>Creates a new job definition.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct CreateJob {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::create_job_input::Builder,
    }
    impl CreateJob {
        /// Creates a new `CreateJob`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::CreateJob,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::CreateJobError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::CreateJobOutput,
            aws_smithy_http::result::SdkError<crate::error::CreateJobError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name you assign to this job definition. It must be unique in your account.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The name you assign to this job definition. It must be unique in your account.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
        /// <p>Description of the job being defined.</p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.description(input.into());
            self
        }
        /// <p>Description of the job being defined.</p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_description(input);
            self
        }
        /// <p>This field is reserved for future use.</p>
        pub fn log_uri(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.log_uri(input.into());
            self
        }
        /// <p>This field is reserved for future use.</p>
        pub fn set_log_uri(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_log_uri(input);
            self
        }
        /// <p>The name or Amazon Resource Name (ARN) of the IAM role associated with this job.</p>
        pub fn role(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.role(input.into());
            self
        }
        /// <p>The name or Amazon Resource Name (ARN) of the IAM role associated with this job.</p>
        pub fn set_role(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_role(input);
            self
        }
        /// <p>An <code>ExecutionProperty</code> specifying the maximum number of concurrent runs allowed for this job.</p>
        pub fn execution_property(mut self, input: crate::model::ExecutionProperty) -> Self {
            self.inner = self.inner.execution_property(input);
            self
        }
        /// <p>An <code>ExecutionProperty</code> specifying the maximum number of concurrent runs allowed for this job.</p>
        pub fn set_execution_property(
            mut self,
            input: std::option::Option<crate::model::ExecutionProperty>,
        ) -> Self {
            self.inner = self.inner.set_execution_property(input);
            self
        }
        /// <p>The <code>JobCommand</code> that runs this job.</p>
        pub fn command(mut self, input: crate::model::JobCommand) -> Self {
            self.inner = self.inner.command(input);
            self
        }
        /// <p>The <code>JobCommand</code> that runs this job.</p>
        pub fn set_command(mut self, input: std::option::Option<crate::model::JobCommand>) -> Self {
            self.inner = self.inner.set_command(input);
            self
        }
        /// Adds a key-value pair to `DefaultArguments`.
        ///
        /// To override the contents of this collection use [`set_default_arguments`](Self::set_default_arguments).
        ///
        /// <p>The default arguments for this job.</p>
        /// <p>You can specify arguments here that your own job-execution script consumes, as well as arguments that Glue itself consumes.</p>
        /// <p>Job arguments may be logged. Do not pass plaintext secrets as arguments. Retrieve secrets from a Glue Connection, Secrets Manager or other secret management mechanism if you intend to keep them within the Job. </p>
        /// <p>For information about how to specify and consume your own Job arguments, see the <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html">Calling Glue APIs in Python</a> topic in the developer guide.</p>
        /// <p>For information about the key-value pairs that Glue consumes to set up your job, see the <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html">Special Parameters Used by Glue</a> topic in the developer guide.</p>
        pub fn default_arguments(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.default_arguments(k.into(), v.into());
            self
        }
        /// <p>The default arguments for this job.</p>
        /// <p>You can specify arguments here that your own job-execution script consumes, as well as arguments that Glue itself consumes.</p>
        /// <p>Job arguments may be logged. Do not pass plaintext secrets as arguments. Retrieve secrets from a Glue Connection, Secrets Manager or other secret management mechanism if you intend to keep them within the Job. </p>
        /// <p>For information about how to specify and consume your own Job arguments, see the <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html">Calling Glue APIs in Python</a> topic in the developer guide.</p>
        /// <p>For information about the key-value pairs that Glue consumes to set up your job, see the <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html">Special Parameters Used by Glue</a> topic in the developer guide.</p>
        pub fn set_default_arguments(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.inner = self.inner.set_default_arguments(input);
            self
        }
        /// Adds a key-value pair to `NonOverridableArguments`.
        ///
        /// To override the contents of this collection use [`set_non_overridable_arguments`](Self::set_non_overridable_arguments).
        ///
        /// <p>Non-overridable arguments for this job, specified as name-value pairs.</p>
        pub fn non_overridable_arguments(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.non_overridable_arguments(k.into(), v.into());
            self
        }
        /// <p>Non-overridable arguments for this job, specified as name-value pairs.</p>
        pub fn set_non_overridable_arguments(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.inner = self.inner.set_non_overridable_arguments(input);
            self
        }
        /// <p>The connections used for this job.</p>
        pub fn connections(mut self, input: crate::model::ConnectionsList) -> Self {
            self.inner = self.inner.connections(input);
            self
        }
        /// <p>The connections used for this job.</p>
        pub fn set_connections(
            mut self,
            input: std::option::Option<crate::model::ConnectionsList>,
        ) -> Self {
            self.inner = self.inner.set_connections(input);
            self
        }
        /// <p>The maximum number of times to retry this job if it fails.</p>
        pub fn max_retries(mut self, input: i32) -> Self {
            self.inner = self.inner.max_retries(input);
            self
        }
        /// <p>The maximum number of times to retry this job if it fails.</p>
        pub fn set_max_retries(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_retries(input);
            self
        }
        /// <p>This parameter is deprecated. Use <code>MaxCapacity</code> instead.</p>
        /// <p>The number of Glue data processing units (DPUs) to allocate to this Job. You can allocate a minimum of 2 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the <a href="https://aws.amazon.com/glue/pricing/">Glue pricing page</a>.</p>
        #[deprecated(note = "This property is deprecated, use MaxCapacity instead.")]
        pub fn allocated_capacity(mut self, input: i32) -> Self {
            self.inner = self.inner.allocated_capacity(input);
            self
        }
        /// <p>This parameter is deprecated. Use <code>MaxCapacity</code> instead.</p>
        /// <p>The number of Glue data processing units (DPUs) to allocate to this Job. You can allocate a minimum of 2 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the <a href="https://aws.amazon.com/glue/pricing/">Glue pricing page</a>.</p>
        #[deprecated(note = "This property is deprecated, use MaxCapacity instead.")]
        pub fn set_allocated_capacity(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_allocated_capacity(input);
            self
        }
        /// <p>The job timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters <code>TIMEOUT</code> status. The default is 2,880 minutes (48 hours).</p>
        pub fn timeout(mut self, input: i32) -> Self {
            self.inner = self.inner.timeout(input);
            self
        }
        /// <p>The job timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters <code>TIMEOUT</code> status. The default is 2,880 minutes (48 hours).</p>
        pub fn set_timeout(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_timeout(input);
            self
        }
        /// <p>For Glue version 1.0 or earlier jobs, using the standard worker type, the number of Glue data processing units (DPUs) that can be allocated when this job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the <a href="https://aws.amazon.com/glue/pricing/">Glue pricing page</a>.</p>
        /// <p>Do not set <code>Max Capacity</code> if using <code>WorkerType</code> and <code>NumberOfWorkers</code>.</p>
        /// <p>The value that can be allocated for <code>MaxCapacity</code> depends on whether you are running a Python shell job or an Apache Spark ETL job:</p>
        /// <ul>
        /// <li> <p>When you specify a Python shell job (<code>JobCommand.Name</code>="pythonshell"), you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.</p> </li>
        /// <li> <p>When you specify an Apache Spark ETL job (<code>JobCommand.Name</code>="glueetl") or Apache Spark streaming ETL job (<code>JobCommand.Name</code>="gluestreaming"), you can allocate a minimum of 2 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU allocation.</p> </li>
        /// </ul>
        /// <p>For Glue version 2.0 jobs, you cannot instead specify a <code>Maximum capacity</code>. Instead, you should specify a <code>Worker type</code> and the <code>Number of workers</code>.</p>
        pub fn max_capacity(mut self, input: f64) -> Self {
            self.inner = self.inner.max_capacity(input);
            self
        }
        /// <p>For Glue version 1.0 or earlier jobs, using the standard worker type, the number of Glue data processing units (DPUs) that can be allocated when this job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the <a href="https://aws.amazon.com/glue/pricing/">Glue pricing page</a>.</p>
        /// <p>Do not set <code>Max Capacity</code> if using <code>WorkerType</code> and <code>NumberOfWorkers</code>.</p>
        /// <p>The value that can be allocated for <code>MaxCapacity</code> depends on whether you are running a Python shell job or an Apache Spark ETL job:</p>
        /// <ul>
        /// <li> <p>When you specify a Python shell job (<code>JobCommand.Name</code>="pythonshell"), you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.</p> </li>
        /// <li> <p>When you specify an Apache Spark ETL job (<code>JobCommand.Name</code>="glueetl") or Apache Spark streaming ETL job (<code>JobCommand.Name</code>="gluestreaming"), you can allocate a minimum of 2 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU allocation.</p> </li>
        /// </ul>
        /// <p>For Glue version 2.0 jobs, you cannot instead specify a <code>Maximum capacity</code>. Instead, you should specify a <code>Worker type</code> and the <code>Number of workers</code>.</p>
        pub fn set_max_capacity(mut self, input: std::option::Option<f64>) -> Self {
            self.inner = self.inner.set_max_capacity(input);
            self
        }
        /// <p>The name of the <code>SecurityConfiguration</code> structure to be used with this job.</p>
        pub fn security_configuration(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.security_configuration(input.into());
            self
        }
        /// <p>The name of the <code>SecurityConfiguration</code> structure to be used with this job.</p>
        pub fn set_security_configuration(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_security_configuration(input);
            self
        }
        /// Adds a key-value pair to `Tags`.
        ///
        /// To override the contents of this collection use [`set_tags`](Self::set_tags).
        ///
        /// <p>The tags to use with this job. You may use tags to limit access to the job. For more information about tags in Glue, see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html">Amazon Web Services Tags in Glue</a> in the developer guide.</p>
        pub fn tags(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.tags(k.into(), v.into());
            self
        }
        /// <p>The tags to use with this job. You may use tags to limit access to the job. For more information about tags in Glue, see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html">Amazon Web Services Tags in Glue</a> in the developer guide.</p>
        pub fn set_tags(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.inner = self.inner.set_tags(input);
            self
        }
        /// <p>Specifies configuration properties of a job notification.</p>
        pub fn notification_property(mut self, input: crate::model::NotificationProperty) -> Self {
            self.inner = self.inner.notification_property(input);
            self
        }
        /// <p>Specifies configuration properties of a job notification.</p>
        pub fn set_notification_property(
            mut self,
            input: std::option::Option<crate::model::NotificationProperty>,
        ) -> Self {
            self.inner = self.inner.set_notification_property(input);
            self
        }
        /// <p>Glue version determines the versions of Apache Spark and Python that Glue supports. The Python version indicates the version supported for jobs of type Spark. </p>
        /// <p>For more information about the available Glue versions and corresponding Spark and Python versions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Glue version</a> in the developer guide.</p>
        /// <p>Jobs that are created without specifying a Glue version default to Glue 0.9.</p>
        pub fn glue_version(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.glue_version(input.into());
            self
        }
        /// <p>Glue version determines the versions of Apache Spark and Python that Glue supports. The Python version indicates the version supported for jobs of type Spark. </p>
        /// <p>For more information about the available Glue versions and corresponding Spark and Python versions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Glue version</a> in the developer guide.</p>
        /// <p>Jobs that are created without specifying a Glue version default to Glue 0.9.</p>
        pub fn set_glue_version(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_glue_version(input);
            self
        }
        /// <p>The number of workers of a defined <code>workerType</code> that are allocated when a job runs.</p>
        pub fn number_of_workers(mut self, input: i32) -> Self {
            self.inner = self.inner.number_of_workers(input);
            self
        }
        /// <p>The number of workers of a defined <code>workerType</code> that are allocated when a job runs.</p>
        pub fn set_number_of_workers(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_number_of_workers(input);
            self
        }
        /// <p>The type of predefined worker that is allocated when a job runs. Accepts a value of Standard, G.1X, G.2X, or G.025X.</p>
        /// <ul>
        /// <li> <p>For the <code>Standard</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.</p> </li>
        /// <li> <p>For the <code>G.1X</code> worker type, each worker maps to 1 DPU (4 vCPU, 16 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs.</p> </li>
        /// <li> <p>For the <code>G.2X</code> worker type, each worker maps to 2 DPU (8 vCPU, 32 GB of memory, 128 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs.</p> </li>
        /// <li> <p>For the <code>G.025X</code> worker type, each worker maps to 0.25 DPU (2 vCPU, 4 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for low volume streaming jobs. This worker type is only available for Glue version 3.0 streaming jobs.</p> </li>
        /// </ul>
        pub fn worker_type(mut self, input: crate::model::WorkerType) -> Self {
            self.inner = self.inner.worker_type(input);
            self
        }
        /// <p>The type of predefined worker that is allocated when a job runs. Accepts a value of Standard, G.1X, G.2X, or G.025X.</p>
        /// <ul>
        /// <li> <p>For the <code>Standard</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.</p> </li>
        /// <li> <p>For the <code>G.1X</code> worker type, each worker maps to 1 DPU (4 vCPU, 16 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs.</p> </li>
        /// <li> <p>For the <code>G.2X</code> worker type, each worker maps to 2 DPU (8 vCPU, 32 GB of memory, 128 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs.</p> </li>
        /// <li> <p>For the <code>G.025X</code> worker type, each worker maps to 0.25 DPU (2 vCPU, 4 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for low volume streaming jobs. This worker type is only available for Glue version 3.0 streaming jobs.</p> </li>
        /// </ul>
        pub fn set_worker_type(
            mut self,
            input: std::option::Option<crate::model::WorkerType>,
        ) -> Self {
            self.inner = self.inner.set_worker_type(input);
            self
        }
        /// Adds a key-value pair to `CodeGenConfigurationNodes`.
        ///
        /// To override the contents of this collection use [`set_code_gen_configuration_nodes`](Self::set_code_gen_configuration_nodes).
        ///
        /// <p>The representation of a directed acyclic graph on which both the Glue Studio visual component and Glue Studio code generation is based.</p>
        pub fn code_gen_configuration_nodes(
            mut self,
            k: impl Into<std::string::String>,
            v: crate::model::CodeGenConfigurationNode,
        ) -> Self {
            self.inner = self.inner.code_gen_configuration_nodes(k.into(), v);
            self
        }
        /// <p>The representation of a directed acyclic graph on which both the Glue Studio visual component and Glue Studio code generation is based.</p>
        pub fn set_code_gen_configuration_nodes(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<
                    std::string::String,
                    crate::model::CodeGenConfigurationNode,
                >,
            >,
        ) -> Self {
            self.inner = self.inner.set_code_gen_configuration_nodes(input);
            self
        }
        /// <p>Indicates whether the job is run with a standard or flexible execution class. The standard execution-class is ideal for time-sensitive workloads that require fast job startup and dedicated resources.</p>
        /// <p>The flexible execution class is appropriate for time-insensitive jobs whose start and completion times may vary. </p>
        /// <p>Only jobs with Glue version 3.0 and above and command type <code>glueetl</code> will be allowed to set <code>ExecutionClass</code> to <code>FLEX</code>. The flexible execution class is available for Spark jobs.</p>
        pub fn execution_class(mut self, input: crate::model::ExecutionClass) -> Self {
            self.inner = self.inner.execution_class(input);
            self
        }
        /// <p>Indicates whether the job is run with a standard or flexible execution class. The standard execution-class is ideal for time-sensitive workloads that require fast job startup and dedicated resources.</p>
        /// <p>The flexible execution class is appropriate for time-insensitive jobs whose start and completion times may vary. </p>
        /// <p>Only jobs with Glue version 3.0 and above and command type <code>glueetl</code> will be allowed to set <code>ExecutionClass</code> to <code>FLEX</code>. The flexible execution class is available for Spark jobs.</p>
        pub fn set_execution_class(
            mut self,
            input: std::option::Option<crate::model::ExecutionClass>,
        ) -> Self {
            self.inner = self.inner.set_execution_class(input);
            self
        }
        /// <p>The details for a source control configuration for a job, allowing synchronization of job artifacts to or from a remote repository.</p>
        pub fn source_control_details(mut self, input: crate::model::SourceControlDetails) -> Self {
            self.inner = self.inner.source_control_details(input);
            self
        }
        /// <p>The details for a source control configuration for a job, allowing synchronization of job artifacts to or from a remote repository.</p>
        pub fn set_source_control_details(
            mut self,
            input: std::option::Option<crate::model::SourceControlDetails>,
        ) -> Self {
            self.inner = self.inner.set_source_control_details(input);
            self
        }
    }
    /// Fluent builder constructing a request to `CreateMLTransform`.
    ///
    /// <p>Creates an Glue machine learning transform. This operation creates the transform and all the necessary parameters to train it.</p>
    /// <p>Call this operation as the first step in the process of using a machine learning transform (such as the <code>FindMatches</code> transform) for deduplicating data. You can provide an optional <code>Description</code>, in addition to the parameters that you want to use for your algorithm.</p>
    /// <p>You must also specify certain parameters for the tasks that Glue runs on your behalf as part of learning from your data and creating a high-quality machine learning transform. These parameters include <code>Role</code>, and optionally, <code>AllocatedCapacity</code>, <code>Timeout</code>, and <code>MaxRetries</code>. For more information, see <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html">Jobs</a>.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct CreateMLTransform {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::create_ml_transform_input::Builder,
    }
    impl CreateMLTransform {
        /// Creates a new `CreateMLTransform`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::CreateMLTransform,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::CreateMLTransformError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::CreateMlTransformOutput,
            aws_smithy_http::result::SdkError<crate::error::CreateMLTransformError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The unique name that you give the transform when you create it.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The unique name that you give the transform when you create it.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
        /// <p>A description of the machine learning transform that is being defined. The default is an empty string.</p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.description(input.into());
            self
        }
        /// <p>A description of the machine learning transform that is being defined. The default is an empty string.</p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_description(input);
            self
        }
        /// Appends an item to `InputRecordTables`.
        ///
        /// To override the contents of this collection use [`set_input_record_tables`](Self::set_input_record_tables).
        ///
        /// <p>A list of Glue table definitions used by the transform.</p>
        pub fn input_record_tables(mut self, input: crate::model::GlueTable) -> Self {
            self.inner = self.inner.input_record_tables(input);
            self
        }
        /// <p>A list of Glue table definitions used by the transform.</p>
        pub fn set_input_record_tables(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::GlueTable>>,
        ) -> Self {
            self.inner = self.inner.set_input_record_tables(input);
            self
        }
        /// <p>The algorithmic parameters that are specific to the transform type used. Conditionally dependent on the transform type.</p>
        pub fn parameters(mut self, input: crate::model::TransformParameters) -> Self {
            self.inner = self.inner.parameters(input);
            self
        }
        /// <p>The algorithmic parameters that are specific to the transform type used. Conditionally dependent on the transform type.</p>
        pub fn set_parameters(
            mut self,
            input: std::option::Option<crate::model::TransformParameters>,
        ) -> Self {
            self.inner = self.inner.set_parameters(input);
            self
        }
        /// <p>The name or Amazon Resource Name (ARN) of the IAM role with the required permissions. The required permissions include both Glue service role permissions to Glue resources, and Amazon S3 permissions required by the transform. </p>
        /// <ul>
        /// <li> <p>This role needs Glue service role permissions to allow access to resources in Glue. See <a href="https://docs.aws.amazon.com/glue/latest/dg/attach-policy-iam-user.html">Attach a Policy to IAM Users That Access Glue</a>.</p> </li>
        /// <li> <p>This role needs permission to your Amazon Simple Storage Service (Amazon S3) sources, targets, temporary directory, scripts, and any libraries used by the task run for this transform.</p> </li>
        /// </ul>
        pub fn role(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.role(input.into());
            self
        }
        /// <p>The name or Amazon Resource Name (ARN) of the IAM role with the required permissions. The required permissions include both Glue service role permissions to Glue resources, and Amazon S3 permissions required by the transform. </p>
        /// <ul>
        /// <li> <p>This role needs Glue service role permissions to allow access to resources in Glue. See <a href="https://docs.aws.amazon.com/glue/latest/dg/attach-policy-iam-user.html">Attach a Policy to IAM Users That Access Glue</a>.</p> </li>
        /// <li> <p>This role needs permission to your Amazon Simple Storage Service (Amazon S3) sources, targets, temporary directory, scripts, and any libraries used by the task run for this transform.</p> </li>
        /// </ul>
        pub fn set_role(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_role(input);
            self
        }
        /// <p>This value determines which version of Glue this machine learning transform is compatible with. Glue 1.0 is recommended for most customers. If the value is not set, the Glue compatibility defaults to Glue 0.9. For more information, see <a href="https://docs.aws.amazon.com/glue/latest/dg/release-notes.html#release-notes-versions">Glue Versions</a> in the developer guide.</p>
        pub fn glue_version(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.glue_version(input.into());
            self
        }
        /// <p>This value determines which version of Glue this machine learning transform is compatible with. Glue 1.0 is recommended for most customers. If the value is not set, the Glue compatibility defaults to Glue 0.9. For more information, see <a href="https://docs.aws.amazon.com/glue/latest/dg/release-notes.html#release-notes-versions">Glue Versions</a> in the developer guide.</p>
        pub fn set_glue_version(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_glue_version(input);
            self
        }
        /// <p>The number of Glue data processing units (DPUs) that are allocated to task runs for this transform. You can allocate from 2 to 100 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the <a href="https://aws.amazon.com/glue/pricing/">Glue pricing page</a>. </p>
        /// <p> <code>MaxCapacity</code> is a mutually exclusive option with <code>NumberOfWorkers</code> and <code>WorkerType</code>.</p>
        /// <ul>
        /// <li> <p>If either <code>NumberOfWorkers</code> or <code>WorkerType</code> is set, then <code>MaxCapacity</code> cannot be set.</p> </li>
        /// <li> <p>If <code>MaxCapacity</code> is set then neither <code>NumberOfWorkers</code> or <code>WorkerType</code> can be set.</p> </li>
        /// <li> <p>If <code>WorkerType</code> is set, then <code>NumberOfWorkers</code> is required (and vice versa).</p> </li>
        /// <li> <p> <code>MaxCapacity</code> and <code>NumberOfWorkers</code> must both be at least 1.</p> </li>
        /// </ul>
        /// <p>When the <code>WorkerType</code> field is set to a value other than <code>Standard</code>, the <code>MaxCapacity</code> field is set automatically and becomes read-only.</p>
        /// <p>When the <code>WorkerType</code> field is set to a value other than <code>Standard</code>, the <code>MaxCapacity</code> field is set automatically and becomes read-only.</p>
        pub fn max_capacity(mut self, input: f64) -> Self {
            self.inner = self.inner.max_capacity(input);
            self
        }
        /// <p>The number of Glue data processing units (DPUs) that are allocated to task runs for this transform. You can allocate from 2 to 100 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the <a href="https://aws.amazon.com/glue/pricing/">Glue pricing page</a>. </p>
        /// <p> <code>MaxCapacity</code> is a mutually exclusive option with <code>NumberOfWorkers</code> and <code>WorkerType</code>.</p>
        /// <ul>
        /// <li> <p>If either <code>NumberOfWorkers</code> or <code>WorkerType</code> is set, then <code>MaxCapacity</code> cannot be set.</p> </li>
        /// <li> <p>If <code>MaxCapacity</code> is set then neither <code>NumberOfWorkers</code> or <code>WorkerType</code> can be set.</p> </li>
        /// <li> <p>If <code>WorkerType</code> is set, then <code>NumberOfWorkers</code> is required (and vice versa).</p> </li>
        /// <li> <p> <code>MaxCapacity</code> and <code>NumberOfWorkers</code> must both be at least 1.</p> </li>
        /// </ul>
        /// <p>When the <code>WorkerType</code> field is set to a value other than <code>Standard</code>, the <code>MaxCapacity</code> field is set automatically and becomes read-only.</p>
        /// <p>When the <code>WorkerType</code> field is set to a value other than <code>Standard</code>, the <code>MaxCapacity</code> field is set automatically and becomes read-only.</p>
        pub fn set_max_capacity(mut self, input: std::option::Option<f64>) -> Self {
            self.inner = self.inner.set_max_capacity(input);
            self
        }
        /// <p>The type of predefined worker that is allocated when this task runs. Accepts a value of Standard, G.1X, or G.2X.</p>
        /// <ul>
        /// <li> <p>For the <code>Standard</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.</p> </li>
        /// <li> <p>For the <code>G.1X</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 64GB disk, and 1 executor per worker.</p> </li>
        /// <li> <p>For the <code>G.2X</code> worker type, each worker provides 8 vCPU, 32 GB of memory and a 128GB disk, and 1 executor per worker.</p> </li>
        /// </ul>
        /// <p> <code>MaxCapacity</code> is a mutually exclusive option with <code>NumberOfWorkers</code> and <code>WorkerType</code>.</p>
        /// <ul>
        /// <li> <p>If either <code>NumberOfWorkers</code> or <code>WorkerType</code> is set, then <code>MaxCapacity</code> cannot be set.</p> </li>
        /// <li> <p>If <code>MaxCapacity</code> is set then neither <code>NumberOfWorkers</code> or <code>WorkerType</code> can be set.</p> </li>
        /// <li> <p>If <code>WorkerType</code> is set, then <code>NumberOfWorkers</code> is required (and vice versa).</p> </li>
        /// <li> <p> <code>MaxCapacity</code> and <code>NumberOfWorkers</code> must both be at least 1.</p> </li>
        /// </ul>
        pub fn worker_type(mut self, input: crate::model::WorkerType) -> Self {
            self.inner = self.inner.worker_type(input);
            self
        }
        /// <p>The type of predefined worker that is allocated when this task runs. Accepts a value of Standard, G.1X, or G.2X.</p>
        /// <ul>
        /// <li> <p>For the <code>Standard</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.</p> </li>
        /// <li> <p>For the <code>G.1X</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 64GB disk, and 1 executor per worker.</p> </li>
        /// <li> <p>For the <code>G.2X</code> worker type, each worker provides 8 vCPU, 32 GB of memory and a 128GB disk, and 1 executor per worker.</p> </li>
        /// </ul>
        /// <p> <code>MaxCapacity</code> is a mutually exclusive option with <code>NumberOfWorkers</code> and <code>WorkerType</code>.</p>
        /// <ul>
        /// <li> <p>If either <code>NumberOfWorkers</code> or <code>WorkerType</code> is set, then <code>MaxCapacity</code> cannot be set.</p> </li>
        /// <li> <p>If <code>MaxCapacity</code> is set then neither <code>NumberOfWorkers</code> or <code>WorkerType</code> can be set.</p> </li>
        /// <li> <p>If <code>WorkerType</code> is set, then <code>NumberOfWorkers</code> is required (and vice versa).</p> </li>
        /// <li> <p> <code>MaxCapacity</code> and <code>NumberOfWorkers</code> must both be at least 1.</p> </li>
        /// </ul>
        pub fn set_worker_type(
            mut self,
            input: std::option::Option<crate::model::WorkerType>,
        ) -> Self {
            self.inner = self.inner.set_worker_type(input);
            self
        }
        /// <p>The number of workers of a defined <code>workerType</code> that are allocated when this task runs.</p>
        /// <p>If <code>WorkerType</code> is set, then <code>NumberOfWorkers</code> is required (and vice versa).</p>
        pub fn number_of_workers(mut self, input: i32) -> Self {
            self.inner = self.inner.number_of_workers(input);
            self
        }
        /// <p>The number of workers of a defined <code>workerType</code> that are allocated when this task runs.</p>
        /// <p>If <code>WorkerType</code> is set, then <code>NumberOfWorkers</code> is required (and vice versa).</p>
        pub fn set_number_of_workers(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_number_of_workers(input);
            self
        }
        /// <p>The timeout of the task run for this transform in minutes. This is the maximum time that a task run for this transform can consume resources before it is terminated and enters <code>TIMEOUT</code> status. The default is 2,880 minutes (48 hours).</p>
        pub fn timeout(mut self, input: i32) -> Self {
            self.inner = self.inner.timeout(input);
            self
        }
        /// <p>The timeout of the task run for this transform in minutes. This is the maximum time that a task run for this transform can consume resources before it is terminated and enters <code>TIMEOUT</code> status. The default is 2,880 minutes (48 hours).</p>
        pub fn set_timeout(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_timeout(input);
            self
        }
        /// <p>The maximum number of times to retry a task for this transform after a task run fails.</p>
        pub fn max_retries(mut self, input: i32) -> Self {
            self.inner = self.inner.max_retries(input);
            self
        }
        /// <p>The maximum number of times to retry a task for this transform after a task run fails.</p>
        pub fn set_max_retries(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_retries(input);
            self
        }
        /// Adds a key-value pair to `Tags`.
        ///
        /// To override the contents of this collection use [`set_tags`](Self::set_tags).
        ///
        /// <p>The tags to use with this machine learning transform. You may use tags to limit access to the machine learning transform. For more information about tags in Glue, see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html">Amazon Web Services Tags in Glue</a> in the developer guide.</p>
        pub fn tags(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.tags(k.into(), v.into());
            self
        }
        /// <p>The tags to use with this machine learning transform. You may use tags to limit access to the machine learning transform. For more information about tags in Glue, see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html">Amazon Web Services Tags in Glue</a> in the developer guide.</p>
        pub fn set_tags(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.inner = self.inner.set_tags(input);
            self
        }
        /// <p>The encryption-at-rest settings of the transform that apply to accessing user data. Machine learning transforms can access user data encrypted in Amazon S3 using KMS.</p>
        pub fn transform_encryption(mut self, input: crate::model::TransformEncryption) -> Self {
            self.inner = self.inner.transform_encryption(input);
            self
        }
        /// <p>The encryption-at-rest settings of the transform that apply to accessing user data. Machine learning transforms can access user data encrypted in Amazon S3 using KMS.</p>
        pub fn set_transform_encryption(
            mut self,
            input: std::option::Option<crate::model::TransformEncryption>,
        ) -> Self {
            self.inner = self.inner.set_transform_encryption(input);
            self
        }
    }
    /// Fluent builder constructing a request to `CreatePartition`.
    ///
    /// <p>Creates a new partition.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct CreatePartition {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::create_partition_input::Builder,
    }
    impl CreatePartition {
        /// Creates a new `CreatePartition`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::CreatePartition,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::CreatePartitionError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::CreatePartitionOutput,
            aws_smithy_http::result::SdkError<crate::error::CreatePartitionError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The Amazon Web Services account ID of the catalog in which the partition is to be created.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The Amazon Web Services account ID of the catalog in which the partition is to be created.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The name of the metadata database in which the partition is to be created.</p>
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        /// <p>The name of the metadata database in which the partition is to be created.</p>
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        /// <p>The name of the metadata table in which the partition is to be created.</p>
        pub fn table_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.table_name(input.into());
            self
        }
        /// <p>The name of the metadata table in which the partition is to be created.</p>
        pub fn set_table_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_table_name(input);
            self
        }
        /// <p>A <code>PartitionInput</code> structure defining the partition to be created.</p>
        pub fn partition_input(mut self, input: crate::model::PartitionInput) -> Self {
            self.inner = self.inner.partition_input(input);
            self
        }
        /// <p>A <code>PartitionInput</code> structure defining the partition to be created.</p>
        pub fn set_partition_input(
            mut self,
            input: std::option::Option<crate::model::PartitionInput>,
        ) -> Self {
            self.inner = self.inner.set_partition_input(input);
            self
        }
    }
    /// Fluent builder constructing a request to `CreatePartitionIndex`.
    ///
    /// <p>Creates a specified partition index in an existing table.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct CreatePartitionIndex {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::create_partition_index_input::Builder,
    }
    impl CreatePartitionIndex {
        /// Creates a new `CreatePartitionIndex`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::CreatePartitionIndex,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::CreatePartitionIndexError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::CreatePartitionIndexOutput,
            aws_smithy_http::result::SdkError<crate::error::CreatePartitionIndexError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The catalog ID where the table resides.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The catalog ID where the table resides.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>Specifies the name of a database in which you want to create a partition index.</p>
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        /// <p>Specifies the name of a database in which you want to create a partition index.</p>
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        /// <p>Specifies the name of a table in which you want to create a partition index.</p>
        pub fn table_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.table_name(input.into());
            self
        }
        /// <p>Specifies the name of a table in which you want to create a partition index.</p>
        pub fn set_table_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_table_name(input);
            self
        }
        /// <p>Specifies a <code>PartitionIndex</code> structure to create a partition index in an existing table.</p>
        pub fn partition_index(mut self, input: crate::model::PartitionIndex) -> Self {
            self.inner = self.inner.partition_index(input);
            self
        }
        /// <p>Specifies a <code>PartitionIndex</code> structure to create a partition index in an existing table.</p>
        pub fn set_partition_index(
            mut self,
            input: std::option::Option<crate::model::PartitionIndex>,
        ) -> Self {
            self.inner = self.inner.set_partition_index(input);
            self
        }
    }
    /// Fluent builder constructing a request to `CreateRegistry`.
    ///
    /// <p>Creates a new registry which may be used to hold a collection of schemas.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct CreateRegistry {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::create_registry_input::Builder,
    }
    impl CreateRegistry {
        /// Creates a new `CreateRegistry`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::CreateRegistry,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::CreateRegistryError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::CreateRegistryOutput,
            aws_smithy_http::result::SdkError<crate::error::CreateRegistryError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>Name of the registry to be created of max length of 255, and may only contain letters, numbers, hyphen, underscore, dollar sign, or hash mark. No whitespace.</p>
        pub fn registry_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.registry_name(input.into());
            self
        }
        /// <p>Name of the registry to be created of max length of 255, and may only contain letters, numbers, hyphen, underscore, dollar sign, or hash mark. No whitespace.</p>
        pub fn set_registry_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_registry_name(input);
            self
        }
        /// <p>A description of the registry. If description is not provided, there will not be any default value for this.</p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.description(input.into());
            self
        }
        /// <p>A description of the registry. If description is not provided, there will not be any default value for this.</p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_description(input);
            self
        }
        /// Adds a key-value pair to `Tags`.
        ///
        /// To override the contents of this collection use [`set_tags`](Self::set_tags).
        ///
        /// <p>Amazon Web Services tags that contain a key value pair and may be searched by console, command line, or API.</p>
        pub fn tags(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.tags(k.into(), v.into());
            self
        }
        /// <p>Amazon Web Services tags that contain a key value pair and may be searched by console, command line, or API.</p>
        pub fn set_tags(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.inner = self.inner.set_tags(input);
            self
        }
    }
    /// Fluent builder constructing a request to `CreateSchema`.
    ///
    /// <p>Creates a new schema set and registers the schema definition. Returns an error if the schema set already exists without actually registering the version.</p>
    /// <p>When the schema set is created, a version checkpoint will be set to the first version. Compatibility mode "DISABLED" restricts any additional schema versions from being added after the first schema version. For all other compatibility modes, validation of compatibility settings will be applied only from the second version onwards when the <code>RegisterSchemaVersion</code> API is used.</p>
    /// <p>When this API is called without a <code>RegistryId</code>, this will create an entry for a "default-registry" in the registry database tables, if it is not already present.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct CreateSchema {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::create_schema_input::Builder,
    }
    impl CreateSchema {
        /// Creates a new `CreateSchema`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::CreateSchema,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::CreateSchemaError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::CreateSchemaOutput,
            aws_smithy_http::result::SdkError<crate::error::CreateSchemaError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p> This is a wrapper shape to contain the registry identity fields. If this is not provided, the default registry will be used. The ARN format for the same will be: <code>arn:aws:glue:us-east-2:
        /// <customer id>
        /// :registry/default-registry:random-5-letter-id
        /// </customer></code>.</p>
        pub fn registry_id(mut self, input: crate::model::RegistryId) -> Self {
            self.inner = self.inner.registry_id(input);
            self
        }
        /// <p> This is a wrapper shape to contain the registry identity fields. If this is not provided, the default registry will be used. The ARN format for the same will be: <code>arn:aws:glue:us-east-2:
        /// <customer id>
        /// :registry/default-registry:random-5-letter-id
        /// </customer></code>.</p>
        pub fn set_registry_id(
            mut self,
            input: std::option::Option<crate::model::RegistryId>,
        ) -> Self {
            self.inner = self.inner.set_registry_id(input);
            self
        }
        /// <p>Name of the schema to be created of max length of 255, and may only contain letters, numbers, hyphen, underscore, dollar sign, or hash mark. No whitespace.</p>
        pub fn schema_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.schema_name(input.into());
            self
        }
        /// <p>Name of the schema to be created of max length of 255, and may only contain letters, numbers, hyphen, underscore, dollar sign, or hash mark. No whitespace.</p>
        pub fn set_schema_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_schema_name(input);
            self
        }
        /// <p>The data format of the schema definition. Currently <code>AVRO</code>, <code>JSON</code> and <code>PROTOBUF</code> are supported.</p>
        pub fn data_format(mut self, input: crate::model::DataFormat) -> Self {
            self.inner = self.inner.data_format(input);
            self
        }
        /// <p>The data format of the schema definition. Currently <code>AVRO</code>, <code>JSON</code> and <code>PROTOBUF</code> are supported.</p>
        pub fn set_data_format(
            mut self,
            input: std::option::Option<crate::model::DataFormat>,
        ) -> Self {
            self.inner = self.inner.set_data_format(input);
            self
        }
        /// <p>The compatibility mode of the schema. The possible values are:</p>
        /// <ul>
        /// <li> <p> <i>NONE</i>: No compatibility mode applies. You can use this choice in development scenarios or if you do not know the compatibility mode that you want to apply to schemas. Any new version added will be accepted without undergoing a compatibility check.</p> </li>
        /// <li> <p> <i>DISABLED</i>: This compatibility choice prevents versioning for a particular schema. You can use this choice to prevent future versioning of a schema.</p> </li>
        /// <li> <p> <i>BACKWARD</i>: This compatibility choice is recommended as it allows data receivers to read both the current and one previous schema version. This means that for instance, a new schema version cannot drop data fields or change the type of these fields, so they can't be read by readers using the previous version.</p> </li>
        /// <li> <p> <i>BACKWARD_ALL</i>: This compatibility choice allows data receivers to read both the current and all previous schema versions. You can use this choice when you need to delete fields or add optional fields, and check compatibility against all previous schema versions. </p> </li>
        /// <li> <p> <i>FORWARD</i>: This compatibility choice allows data receivers to read both the current and one next schema version, but not necessarily later versions. You can use this choice when you need to add fields or delete optional fields, but only check compatibility against the last schema version.</p> </li>
        /// <li> <p> <i>FORWARD_ALL</i>: This compatibility choice allows data receivers to read written by producers of any new registered schema. You can use this choice when you need to add fields or delete optional fields, and check compatibility against all previous schema versions.</p> </li>
        /// <li> <p> <i>FULL</i>: This compatibility choice allows data receivers to read data written by producers using the previous or next version of the schema, but not necessarily earlier or later versions. You can use this choice when you need to add or remove optional fields, but only check compatibility against the last schema version.</p> </li>
        /// <li> <p> <i>FULL_ALL</i>: This compatibility choice allows data receivers to read data written by producers using all previous schema versions. You can use this choice when you need to add or remove optional fields, and check compatibility against all previous schema versions.</p> </li>
        /// </ul>
        pub fn compatibility(mut self, input: crate::model::Compatibility) -> Self {
            self.inner = self.inner.compatibility(input);
            self
        }
        /// <p>The compatibility mode of the schema. The possible values are:</p>
        /// <ul>
        /// <li> <p> <i>NONE</i>: No compatibility mode applies. You can use this choice in development scenarios or if you do not know the compatibility mode that you want to apply to schemas. Any new version added will be accepted without undergoing a compatibility check.</p> </li>
        /// <li> <p> <i>DISABLED</i>: This compatibility choice prevents versioning for a particular schema. You can use this choice to prevent future versioning of a schema.</p> </li>
        /// <li> <p> <i>BACKWARD</i>: This compatibility choice is recommended as it allows data receivers to read both the current and one previous schema version. This means that for instance, a new schema version cannot drop data fields or change the type of these fields, so they can't be read by readers using the previous version.</p> </li>
        /// <li> <p> <i>BACKWARD_ALL</i>: This compatibility choice allows data receivers to read both the current and all previous schema versions. You can use this choice when you need to delete fields or add optional fields, and check compatibility against all previous schema versions. </p> </li>
        /// <li> <p> <i>FORWARD</i>: This compatibility choice allows data receivers to read both the current and one next schema version, but not necessarily later versions. You can use this choice when you need to add fields or delete optional fields, but only check compatibility against the last schema version.</p> </li>
        /// <li> <p> <i>FORWARD_ALL</i>: This compatibility choice allows data receivers to read written by producers of any new registered schema. You can use this choice when you need to add fields or delete optional fields, and check compatibility against all previous schema versions.</p> </li>
        /// <li> <p> <i>FULL</i>: This compatibility choice allows data receivers to read data written by producers using the previous or next version of the schema, but not necessarily earlier or later versions. You can use this choice when you need to add or remove optional fields, but only check compatibility against the last schema version.</p> </li>
        /// <li> <p> <i>FULL_ALL</i>: This compatibility choice allows data receivers to read data written by producers using all previous schema versions. You can use this choice when you need to add or remove optional fields, and check compatibility against all previous schema versions.</p> </li>
        /// </ul>
        pub fn set_compatibility(
            mut self,
            input: std::option::Option<crate::model::Compatibility>,
        ) -> Self {
            self.inner = self.inner.set_compatibility(input);
            self
        }
        /// <p>An optional description of the schema. If description is not provided, there will not be any automatic default value for this.</p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.description(input.into());
            self
        }
        /// <p>An optional description of the schema. If description is not provided, there will not be any automatic default value for this.</p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_description(input);
            self
        }
        /// Adds a key-value pair to `Tags`.
        ///
        /// To override the contents of this collection use [`set_tags`](Self::set_tags).
        ///
        /// <p>Amazon Web Services tags that contain a key value pair and may be searched by console, command line, or API. If specified, follows the Amazon Web Services tags-on-create pattern.</p>
        pub fn tags(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.tags(k.into(), v.into());
            self
        }
        /// <p>Amazon Web Services tags that contain a key value pair and may be searched by console, command line, or API. If specified, follows the Amazon Web Services tags-on-create pattern.</p>
        pub fn set_tags(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.inner = self.inner.set_tags(input);
            self
        }
        /// <p>The schema definition using the <code>DataFormat</code> setting for <code>SchemaName</code>.</p>
        pub fn schema_definition(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.schema_definition(input.into());
            self
        }
        /// <p>The schema definition using the <code>DataFormat</code> setting for <code>SchemaName</code>.</p>
        pub fn set_schema_definition(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_schema_definition(input);
            self
        }
    }
    /// Fluent builder constructing a request to `CreateScript`.
    ///
    /// <p>Transforms a directed acyclic graph (DAG) into code.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct CreateScript {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::create_script_input::Builder,
    }
    impl CreateScript {
        /// Creates a new `CreateScript`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::CreateScript,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::CreateScriptError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::CreateScriptOutput,
            aws_smithy_http::result::SdkError<crate::error::CreateScriptError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Appends an item to `DagNodes`.
        ///
        /// To override the contents of this collection use [`set_dag_nodes`](Self::set_dag_nodes).
        ///
        /// <p>A list of the nodes in the DAG.</p>
        pub fn dag_nodes(mut self, input: crate::model::CodeGenNode) -> Self {
            self.inner = self.inner.dag_nodes(input);
            self
        }
        /// <p>A list of the nodes in the DAG.</p>
        pub fn set_dag_nodes(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::CodeGenNode>>,
        ) -> Self {
            self.inner = self.inner.set_dag_nodes(input);
            self
        }
        /// Appends an item to `DagEdges`.
        ///
        /// To override the contents of this collection use [`set_dag_edges`](Self::set_dag_edges).
        ///
        /// <p>A list of the edges in the DAG.</p>
        pub fn dag_edges(mut self, input: crate::model::CodeGenEdge) -> Self {
            self.inner = self.inner.dag_edges(input);
            self
        }
        /// <p>A list of the edges in the DAG.</p>
        pub fn set_dag_edges(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::CodeGenEdge>>,
        ) -> Self {
            self.inner = self.inner.set_dag_edges(input);
            self
        }
        /// <p>The programming language of the resulting code from the DAG.</p>
        pub fn language(mut self, input: crate::model::Language) -> Self {
            self.inner = self.inner.language(input);
            self
        }
        /// <p>The programming language of the resulting code from the DAG.</p>
        pub fn set_language(mut self, input: std::option::Option<crate::model::Language>) -> Self {
            self.inner = self.inner.set_language(input);
            self
        }
    }
    /// Fluent builder constructing a request to `CreateSecurityConfiguration`.
    ///
    /// <p>Creates a new security configuration. A security configuration is a set of security properties that can be used by Glue. You can use a security configuration to encrypt data at rest. For information about using security configurations in Glue, see <a href="https://docs.aws.amazon.com/glue/latest/dg/encryption-security-configuration.html">Encrypting Data Written by Crawlers, Jobs, and Development Endpoints</a>.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct CreateSecurityConfiguration {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::create_security_configuration_input::Builder,
    }
    impl CreateSecurityConfiguration {
        /// Creates a new `CreateSecurityConfiguration`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::CreateSecurityConfiguration,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::CreateSecurityConfigurationError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::CreateSecurityConfigurationOutput,
            aws_smithy_http::result::SdkError<crate::error::CreateSecurityConfigurationError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name for the new security configuration.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The name for the new security configuration.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
        /// <p>The encryption configuration for the new security configuration.</p>
        pub fn encryption_configuration(
            mut self,
            input: crate::model::EncryptionConfiguration,
        ) -> Self {
            self.inner = self.inner.encryption_configuration(input);
            self
        }
        /// <p>The encryption configuration for the new security configuration.</p>
        pub fn set_encryption_configuration(
            mut self,
            input: std::option::Option<crate::model::EncryptionConfiguration>,
        ) -> Self {
            self.inner = self.inner.set_encryption_configuration(input);
            self
        }
    }
    /// Fluent builder constructing a request to `CreateSession`.
    ///
    /// <p>Creates a new session.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct CreateSession {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::create_session_input::Builder,
    }
    impl CreateSession {
        /// Creates a new `CreateSession`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::CreateSession,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::CreateSessionError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::CreateSessionOutput,
            aws_smithy_http::result::SdkError<crate::error::CreateSessionError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the session request. </p>
        pub fn id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.id(input.into());
            self
        }
        /// <p>The ID of the session request. </p>
        pub fn set_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_id(input);
            self
        }
        /// <p>The description of the session. </p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.description(input.into());
            self
        }
        /// <p>The description of the session. </p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_description(input);
            self
        }
        /// <p>The IAM Role ARN </p>
        pub fn role(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.role(input.into());
            self
        }
        /// <p>The IAM Role ARN </p>
        pub fn set_role(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_role(input);
            self
        }
        /// <p>The <code>SessionCommand</code> that runs the job. </p>
        pub fn command(mut self, input: crate::model::SessionCommand) -> Self {
            self.inner = self.inner.command(input);
            self
        }
        /// <p>The <code>SessionCommand</code> that runs the job. </p>
        pub fn set_command(
            mut self,
            input: std::option::Option<crate::model::SessionCommand>,
        ) -> Self {
            self.inner = self.inner.set_command(input);
            self
        }
        /// <p>The number of seconds before request times out. </p>
        pub fn timeout(mut self, input: i32) -> Self {
            self.inner = self.inner.timeout(input);
            self
        }
        /// <p>The number of seconds before request times out. </p>
        pub fn set_timeout(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_timeout(input);
            self
        }
        /// <p>The number of seconds when idle before request times out. </p>
        pub fn idle_timeout(mut self, input: i32) -> Self {
            self.inner = self.inner.idle_timeout(input);
            self
        }
        /// <p>The number of seconds when idle before request times out. </p>
        pub fn set_idle_timeout(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_idle_timeout(input);
            self
        }
        /// Adds a key-value pair to `DefaultArguments`.
        ///
        /// To override the contents of this collection use [`set_default_arguments`](Self::set_default_arguments).
        ///
        /// <p>A map array of key-value pairs. Max is 75 pairs. </p>
        pub fn default_arguments(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.default_arguments(k.into(), v.into());
            self
        }
        /// <p>A map array of key-value pairs. Max is 75 pairs. </p>
        pub fn set_default_arguments(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.inner = self.inner.set_default_arguments(input);
            self
        }
        /// <p>The number of connections to use for the session. </p>
        pub fn connections(mut self, input: crate::model::ConnectionsList) -> Self {
            self.inner = self.inner.connections(input);
            self
        }
        /// <p>The number of connections to use for the session. </p>
        pub fn set_connections(
            mut self,
            input: std::option::Option<crate::model::ConnectionsList>,
        ) -> Self {
            self.inner = self.inner.set_connections(input);
            self
        }
        /// <p>The number of Glue data processing units (DPUs) that can be allocated when the job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB memory. </p>
        pub fn max_capacity(mut self, input: f64) -> Self {
            self.inner = self.inner.max_capacity(input);
            self
        }
        /// <p>The number of Glue data processing units (DPUs) that can be allocated when the job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB memory. </p>
        pub fn set_max_capacity(mut self, input: std::option::Option<f64>) -> Self {
            self.inner = self.inner.set_max_capacity(input);
            self
        }
        /// <p>The number of workers of a defined <code>WorkerType</code> to use for the session. </p>
        pub fn number_of_workers(mut self, input: i32) -> Self {
            self.inner = self.inner.number_of_workers(input);
            self
        }
        /// <p>The number of workers of a defined <code>WorkerType</code> to use for the session. </p>
        pub fn set_number_of_workers(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_number_of_workers(input);
            self
        }
        /// <p>The type of predefined worker that is allocated to use for the session. Accepts a value of Standard, G.1X, G.2X, or G.025X.</p>
        /// <ul>
        /// <li> <p>For the <code>Standard</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.</p> </li>
        /// <li> <p>For the <code>G.1X</code> worker type, each worker maps to 1 DPU (4 vCPU, 16 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs.</p> </li>
        /// <li> <p>For the <code>G.2X</code> worker type, each worker maps to 2 DPU (8 vCPU, 32 GB of memory, 128 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs.</p> </li>
        /// <li> <p>For the <code>G.025X</code> worker type, each worker maps to 0.25 DPU (2 vCPU, 4 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for low volume streaming jobs. This worker type is only available for Glue version 3.0 streaming jobs.</p> </li>
        /// </ul>
        pub fn worker_type(mut self, input: crate::model::WorkerType) -> Self {
            self.inner = self.inner.worker_type(input);
            self
        }
        /// <p>The type of predefined worker that is allocated to use for the session. Accepts a value of Standard, G.1X, G.2X, or G.025X.</p>
        /// <ul>
        /// <li> <p>For the <code>Standard</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.</p> </li>
        /// <li> <p>For the <code>G.1X</code> worker type, each worker maps to 1 DPU (4 vCPU, 16 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs.</p> </li>
        /// <li> <p>For the <code>G.2X</code> worker type, each worker maps to 2 DPU (8 vCPU, 32 GB of memory, 128 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs.</p> </li>
        /// <li> <p>For the <code>G.025X</code> worker type, each worker maps to 0.25 DPU (2 vCPU, 4 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for low volume streaming jobs. This worker type is only available for Glue version 3.0 streaming jobs.</p> </li>
        /// </ul>
        pub fn set_worker_type(
            mut self,
            input: std::option::Option<crate::model::WorkerType>,
        ) -> Self {
            self.inner = self.inner.set_worker_type(input);
            self
        }
        /// <p>The name of the SecurityConfiguration structure to be used with the session </p>
        pub fn security_configuration(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.security_configuration(input.into());
            self
        }
        /// <p>The name of the SecurityConfiguration structure to be used with the session </p>
        pub fn set_security_configuration(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_security_configuration(input);
            self
        }
        /// <p>The Glue version determines the versions of Apache Spark and Python that Glue supports. The GlueVersion must be greater than 2.0. </p>
        pub fn glue_version(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.glue_version(input.into());
            self
        }
        /// <p>The Glue version determines the versions of Apache Spark and Python that Glue supports. The GlueVersion must be greater than 2.0. </p>
        pub fn set_glue_version(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_glue_version(input);
            self
        }
        /// Adds a key-value pair to `Tags`.
        ///
        /// To override the contents of this collection use [`set_tags`](Self::set_tags).
        ///
        /// <p>The map of key value pairs (tags) belonging to the session.</p>
        pub fn tags(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.tags(k.into(), v.into());
            self
        }
        /// <p>The map of key value pairs (tags) belonging to the session.</p>
        pub fn set_tags(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.inner = self.inner.set_tags(input);
            self
        }
        /// <p>The origin of the request. </p>
        pub fn request_origin(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.request_origin(input.into());
            self
        }
        /// <p>The origin of the request. </p>
        pub fn set_request_origin(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_request_origin(input);
            self
        }
    }
    /// Fluent builder constructing a request to `CreateTable`.
    ///
    /// <p>Creates a new table definition in the Data Catalog.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct CreateTable {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::create_table_input::Builder,
    }
    impl CreateTable {
        /// Creates a new `CreateTable`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::CreateTable,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::CreateTableError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::CreateTableOutput,
            aws_smithy_http::result::SdkError<crate::error::CreateTableError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the Data Catalog in which to create the <code>Table</code>. If none is supplied, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog in which to create the <code>Table</code>. If none is supplied, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The catalog database in which to create the new table. For Hive compatibility, this name is entirely lowercase.</p>
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        /// <p>The catalog database in which to create the new table. For Hive compatibility, this name is entirely lowercase.</p>
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        /// <p>The <code>TableInput</code> object that defines the metadata table to create in the catalog.</p>
        pub fn table_input(mut self, input: crate::model::TableInput) -> Self {
            self.inner = self.inner.table_input(input);
            self
        }
        /// <p>The <code>TableInput</code> object that defines the metadata table to create in the catalog.</p>
        pub fn set_table_input(
            mut self,
            input: std::option::Option<crate::model::TableInput>,
        ) -> Self {
            self.inner = self.inner.set_table_input(input);
            self
        }
        /// Appends an item to `PartitionIndexes`.
        ///
        /// To override the contents of this collection use [`set_partition_indexes`](Self::set_partition_indexes).
        ///
        /// <p>A list of partition indexes, <code>PartitionIndex</code> structures, to create in the table.</p>
        pub fn partition_indexes(mut self, input: crate::model::PartitionIndex) -> Self {
            self.inner = self.inner.partition_indexes(input);
            self
        }
        /// <p>A list of partition indexes, <code>PartitionIndex</code> structures, to create in the table.</p>
        pub fn set_partition_indexes(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::PartitionIndex>>,
        ) -> Self {
            self.inner = self.inner.set_partition_indexes(input);
            self
        }
        /// <p>The ID of the transaction.</p>
        pub fn transaction_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.transaction_id(input.into());
            self
        }
        /// <p>The ID of the transaction.</p>
        pub fn set_transaction_id(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_transaction_id(input);
            self
        }
    }
    /// Fluent builder constructing a request to `CreateTrigger`.
    ///
    /// <p>Creates a new trigger.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct CreateTrigger {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::create_trigger_input::Builder,
    }
    impl CreateTrigger {
        /// Creates a new `CreateTrigger`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::CreateTrigger,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::CreateTriggerError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::CreateTriggerOutput,
            aws_smithy_http::result::SdkError<crate::error::CreateTriggerError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the trigger.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The name of the trigger.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
        /// <p>The name of the workflow associated with the trigger.</p>
        pub fn workflow_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.workflow_name(input.into());
            self
        }
        /// <p>The name of the workflow associated with the trigger.</p>
        pub fn set_workflow_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_workflow_name(input);
            self
        }
        /// <p>The type of the new trigger.</p>
        pub fn r#type(mut self, input: crate::model::TriggerType) -> Self {
            self.inner = self.inner.r#type(input);
            self
        }
        /// <p>The type of the new trigger.</p>
        pub fn set_type(mut self, input: std::option::Option<crate::model::TriggerType>) -> Self {
            self.inner = self.inner.set_type(input);
            self
        }
        /// <p>A <code>cron</code> expression used to specify the schedule (see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html">Time-Based Schedules for Jobs and Crawlers</a>. For example, to run something every day at 12:15 UTC, you would specify: <code>cron(15 12 * * ? *)</code>.</p>
        /// <p>This field is required when the trigger type is SCHEDULED.</p>
        pub fn schedule(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.schedule(input.into());
            self
        }
        /// <p>A <code>cron</code> expression used to specify the schedule (see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html">Time-Based Schedules for Jobs and Crawlers</a>. For example, to run something every day at 12:15 UTC, you would specify: <code>cron(15 12 * * ? *)</code>.</p>
        /// <p>This field is required when the trigger type is SCHEDULED.</p>
        pub fn set_schedule(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_schedule(input);
            self
        }
        /// <p>A predicate to specify when the new trigger should fire.</p>
        /// <p>This field is required when the trigger type is <code>CONDITIONAL</code>.</p>
        pub fn predicate(mut self, input: crate::model::Predicate) -> Self {
            self.inner = self.inner.predicate(input);
            self
        }
        /// <p>A predicate to specify when the new trigger should fire.</p>
        /// <p>This field is required when the trigger type is <code>CONDITIONAL</code>.</p>
        pub fn set_predicate(
            mut self,
            input: std::option::Option<crate::model::Predicate>,
        ) -> Self {
            self.inner = self.inner.set_predicate(input);
            self
        }
        /// Appends an item to `Actions`.
        ///
        /// To override the contents of this collection use [`set_actions`](Self::set_actions).
        ///
        /// <p>The actions initiated by this trigger when it fires.</p>
        pub fn actions(mut self, input: crate::model::Action) -> Self {
            self.inner = self.inner.actions(input);
            self
        }
        /// <p>The actions initiated by this trigger when it fires.</p>
        pub fn set_actions(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::Action>>,
        ) -> Self {
            self.inner = self.inner.set_actions(input);
            self
        }
        /// <p>A description of the new trigger.</p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.description(input.into());
            self
        }
        /// <p>A description of the new trigger.</p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_description(input);
            self
        }
        /// <p>Set to <code>true</code> to start <code>SCHEDULED</code> and <code>CONDITIONAL</code> triggers when created. True is not supported for <code>ON_DEMAND</code> triggers.</p>
        pub fn start_on_creation(mut self, input: bool) -> Self {
            self.inner = self.inner.start_on_creation(input);
            self
        }
        /// <p>Set to <code>true</code> to start <code>SCHEDULED</code> and <code>CONDITIONAL</code> triggers when created. True is not supported for <code>ON_DEMAND</code> triggers.</p>
        pub fn set_start_on_creation(mut self, input: std::option::Option<bool>) -> Self {
            self.inner = self.inner.set_start_on_creation(input);
            self
        }
        /// Adds a key-value pair to `Tags`.
        ///
        /// To override the contents of this collection use [`set_tags`](Self::set_tags).
        ///
        /// <p>The tags to use with this trigger. You may use tags to limit access to the trigger. For more information about tags in Glue, see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html">Amazon Web Services Tags in Glue</a> in the developer guide. </p>
        pub fn tags(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.tags(k.into(), v.into());
            self
        }
        /// <p>The tags to use with this trigger. You may use tags to limit access to the trigger. For more information about tags in Glue, see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html">Amazon Web Services Tags in Glue</a> in the developer guide. </p>
        pub fn set_tags(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.inner = self.inner.set_tags(input);
            self
        }
        /// <p>Batch condition that must be met (specified number of events received or batch time window expired) before EventBridge event trigger fires.</p>
        pub fn event_batching_condition(
            mut self,
            input: crate::model::EventBatchingCondition,
        ) -> Self {
            self.inner = self.inner.event_batching_condition(input);
            self
        }
        /// <p>Batch condition that must be met (specified number of events received or batch time window expired) before EventBridge event trigger fires.</p>
        pub fn set_event_batching_condition(
            mut self,
            input: std::option::Option<crate::model::EventBatchingCondition>,
        ) -> Self {
            self.inner = self.inner.set_event_batching_condition(input);
            self
        }
    }
    /// Fluent builder constructing a request to `CreateUserDefinedFunction`.
    ///
    /// <p>Creates a new function definition in the Data Catalog.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct CreateUserDefinedFunction {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::create_user_defined_function_input::Builder,
    }
    impl CreateUserDefinedFunction {
        /// Creates a new `CreateUserDefinedFunction`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::CreateUserDefinedFunction,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::CreateUserDefinedFunctionError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::CreateUserDefinedFunctionOutput,
            aws_smithy_http::result::SdkError<crate::error::CreateUserDefinedFunctionError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the Data Catalog in which to create the function. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog in which to create the function. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The name of the catalog database in which to create the function.</p>
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        /// <p>The name of the catalog database in which to create the function.</p>
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        /// <p>A <code>FunctionInput</code> object that defines the function to create in the Data Catalog.</p>
        pub fn function_input(mut self, input: crate::model::UserDefinedFunctionInput) -> Self {
            self.inner = self.inner.function_input(input);
            self
        }
        /// <p>A <code>FunctionInput</code> object that defines the function to create in the Data Catalog.</p>
        pub fn set_function_input(
            mut self,
            input: std::option::Option<crate::model::UserDefinedFunctionInput>,
        ) -> Self {
            self.inner = self.inner.set_function_input(input);
            self
        }
    }
    /// Fluent builder constructing a request to `CreateWorkflow`.
    ///
    /// <p>Creates a new workflow.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct CreateWorkflow {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::create_workflow_input::Builder,
    }
    impl CreateWorkflow {
        /// Creates a new `CreateWorkflow`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::CreateWorkflow,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::CreateWorkflowError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::CreateWorkflowOutput,
            aws_smithy_http::result::SdkError<crate::error::CreateWorkflowError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name to be assigned to the workflow. It should be unique within your account.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The name to be assigned to the workflow. It should be unique within your account.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
        /// <p>A description of the workflow.</p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.description(input.into());
            self
        }
        /// <p>A description of the workflow.</p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_description(input);
            self
        }
        /// Adds a key-value pair to `DefaultRunProperties`.
        ///
        /// To override the contents of this collection use [`set_default_run_properties`](Self::set_default_run_properties).
        ///
        /// <p>A collection of properties to be used as part of each execution of the workflow.</p>
        pub fn default_run_properties(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.default_run_properties(k.into(), v.into());
            self
        }
        /// <p>A collection of properties to be used as part of each execution of the workflow.</p>
        pub fn set_default_run_properties(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.inner = self.inner.set_default_run_properties(input);
            self
        }
        /// Adds a key-value pair to `Tags`.
        ///
        /// To override the contents of this collection use [`set_tags`](Self::set_tags).
        ///
        /// <p>The tags to be used with this workflow.</p>
        pub fn tags(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.tags(k.into(), v.into());
            self
        }
        /// <p>The tags to be used with this workflow.</p>
        pub fn set_tags(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.inner = self.inner.set_tags(input);
            self
        }
        /// <p>You can use this parameter to prevent unwanted multiple updates to data, to control costs, or in some cases, to prevent exceeding the maximum number of concurrent runs of any of the component jobs. If you leave this parameter blank, there is no limit to the number of concurrent workflow runs.</p>
        pub fn max_concurrent_runs(mut self, input: i32) -> Self {
            self.inner = self.inner.max_concurrent_runs(input);
            self
        }
        /// <p>You can use this parameter to prevent unwanted multiple updates to data, to control costs, or in some cases, to prevent exceeding the maximum number of concurrent runs of any of the component jobs. If you leave this parameter blank, there is no limit to the number of concurrent workflow runs.</p>
        pub fn set_max_concurrent_runs(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_concurrent_runs(input);
            self
        }
    }
    /// Fluent builder constructing a request to `DeleteBlueprint`.
    ///
    /// <p>Deletes an existing blueprint.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct DeleteBlueprint {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::delete_blueprint_input::Builder,
    }
    impl DeleteBlueprint {
        /// Creates a new `DeleteBlueprint`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::DeleteBlueprint,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::DeleteBlueprintError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::DeleteBlueprintOutput,
            aws_smithy_http::result::SdkError<crate::error::DeleteBlueprintError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the blueprint to delete.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The name of the blueprint to delete.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
    }
    /// Fluent builder constructing a request to `DeleteClassifier`.
    ///
    /// <p>Removes a classifier from the Data Catalog.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct DeleteClassifier {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::delete_classifier_input::Builder,
    }
    impl DeleteClassifier {
        /// Creates a new `DeleteClassifier`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::DeleteClassifier,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::DeleteClassifierError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::DeleteClassifierOutput,
            aws_smithy_http::result::SdkError<crate::error::DeleteClassifierError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>Name of the classifier to remove.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>Name of the classifier to remove.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
    }
    /// Fluent builder constructing a request to `DeleteColumnStatisticsForPartition`.
    ///
    /// <p>Delete the partition column statistics of a column.</p>
    /// <p>The Identity and Access Management (IAM) permission required for this operation is <code>DeletePartition</code>.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct DeleteColumnStatisticsForPartition {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::delete_column_statistics_for_partition_input::Builder,
    }
    impl DeleteColumnStatisticsForPartition {
        /// Creates a new `DeleteColumnStatisticsForPartition`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::DeleteColumnStatisticsForPartition,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<
                crate::error::DeleteColumnStatisticsForPartitionError,
            >,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::DeleteColumnStatisticsForPartitionOutput,
            aws_smithy_http::result::SdkError<
                crate::error::DeleteColumnStatisticsForPartitionError,
            >,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the Data Catalog where the partitions in question reside. If none is supplied, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog where the partitions in question reside. If none is supplied, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The name of the catalog database where the partitions reside.</p>
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        /// <p>The name of the catalog database where the partitions reside.</p>
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        /// <p>The name of the partitions' table.</p>
        pub fn table_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.table_name(input.into());
            self
        }
        /// <p>The name of the partitions' table.</p>
        pub fn set_table_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_table_name(input);
            self
        }
        /// Appends an item to `PartitionValues`.
        ///
        /// To override the contents of this collection use [`set_partition_values`](Self::set_partition_values).
        ///
        /// <p>A list of partition values identifying the partition.</p>
        pub fn partition_values(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.partition_values(input.into());
            self
        }
        /// <p>A list of partition values identifying the partition.</p>
        pub fn set_partition_values(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.inner = self.inner.set_partition_values(input);
            self
        }
        /// <p>Name of the column.</p>
        pub fn column_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.column_name(input.into());
            self
        }
        /// <p>Name of the column.</p>
        pub fn set_column_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_column_name(input);
            self
        }
    }
    /// Fluent builder constructing a request to `DeleteColumnStatisticsForTable`.
    ///
    /// <p>Retrieves table statistics of columns.</p>
    /// <p>The Identity and Access Management (IAM) permission required for this operation is <code>DeleteTable</code>.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct DeleteColumnStatisticsForTable {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::delete_column_statistics_for_table_input::Builder,
    }
    impl DeleteColumnStatisticsForTable {
        /// Creates a new `DeleteColumnStatisticsForTable`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::DeleteColumnStatisticsForTable,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::DeleteColumnStatisticsForTableError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::DeleteColumnStatisticsForTableOutput,
            aws_smithy_http::result::SdkError<crate::error::DeleteColumnStatisticsForTableError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the Data Catalog where the partitions in question reside. If none is supplied, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog where the partitions in question reside. If none is supplied, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The name of the catalog database where the partitions reside.</p>
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        /// <p>The name of the catalog database where the partitions reside.</p>
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        /// <p>The name of the partitions' table.</p>
        pub fn table_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.table_name(input.into());
            self
        }
        /// <p>The name of the partitions' table.</p>
        pub fn set_table_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_table_name(input);
            self
        }
        /// <p>The name of the column.</p>
        pub fn column_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.column_name(input.into());
            self
        }
        /// <p>The name of the column.</p>
        pub fn set_column_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_column_name(input);
            self
        }
    }
    /// Fluent builder constructing a request to `DeleteConnection`.
    ///
    /// <p>Deletes a connection from the Data Catalog.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct DeleteConnection {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::delete_connection_input::Builder,
    }
    impl DeleteConnection {
        /// Creates a new `DeleteConnection`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::DeleteConnection,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::DeleteConnectionError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::DeleteConnectionOutput,
            aws_smithy_http::result::SdkError<crate::error::DeleteConnectionError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the Data Catalog in which the connection resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog in which the connection resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The name of the connection to delete.</p>
        pub fn connection_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.connection_name(input.into());
            self
        }
        /// <p>The name of the connection to delete.</p>
        pub fn set_connection_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_connection_name(input);
            self
        }
    }
    /// Fluent builder constructing a request to `DeleteCrawler`.
    ///
    /// <p>Removes a specified crawler from the Glue Data Catalog, unless the crawler state is <code>RUNNING</code>.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct DeleteCrawler {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::delete_crawler_input::Builder,
    }
    impl DeleteCrawler {
        /// Creates a new `DeleteCrawler`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::DeleteCrawler,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::DeleteCrawlerError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::DeleteCrawlerOutput,
            aws_smithy_http::result::SdkError<crate::error::DeleteCrawlerError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the crawler to remove.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The name of the crawler to remove.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
    }
    /// Fluent builder constructing a request to `DeleteCustomEntityType`.
    ///
    /// <p>Deletes a custom pattern by specifying its name.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct DeleteCustomEntityType {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::delete_custom_entity_type_input::Builder,
    }
    impl DeleteCustomEntityType {
        /// Creates a new `DeleteCustomEntityType`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::DeleteCustomEntityType,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::DeleteCustomEntityTypeError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::DeleteCustomEntityTypeOutput,
            aws_smithy_http::result::SdkError<crate::error::DeleteCustomEntityTypeError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the custom pattern that you want to delete.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The name of the custom pattern that you want to delete.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
    }
    /// Fluent builder constructing a request to `DeleteDatabase`.
    ///
    /// <p>Removes a specified database from a Data Catalog.</p> <note>
    /// <p>After completing this operation, you no longer have access to the tables (and all table versions and partitions that might belong to the tables) and the user-defined functions in the deleted database. Glue deletes these "orphaned" resources asynchronously in a timely manner, at the discretion of the service.</p>
    /// <p>To ensure the immediate deletion of all related resources, before calling <code>DeleteDatabase</code>, use <code>DeleteTableVersion</code> or <code>BatchDeleteTableVersion</code>, <code>DeletePartition</code> or <code>BatchDeletePartition</code>, <code>DeleteUserDefinedFunction</code>, and <code>DeleteTable</code> or <code>BatchDeleteTable</code>, to delete any resources that belong to the database.</p>
    /// </note>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct DeleteDatabase {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::delete_database_input::Builder,
    }
    impl DeleteDatabase {
        /// Creates a new `DeleteDatabase`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::DeleteDatabase,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::DeleteDatabaseError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::DeleteDatabaseOutput,
            aws_smithy_http::result::SdkError<crate::error::DeleteDatabaseError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the Data Catalog in which the database resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog in which the database resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The name of the database to delete. For Hive compatibility, this must be all lowercase.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The name of the database to delete. For Hive compatibility, this must be all lowercase.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
    }
    /// Fluent builder constructing a request to `DeleteDataQualityRuleset`.
    ///
    /// <p>Deletes a data quality ruleset.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct DeleteDataQualityRuleset {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::delete_data_quality_ruleset_input::Builder,
    }
    impl DeleteDataQualityRuleset {
        /// Creates a new `DeleteDataQualityRuleset`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::DeleteDataQualityRuleset,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::DeleteDataQualityRulesetError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::DeleteDataQualityRulesetOutput,
            aws_smithy_http::result::SdkError<crate::error::DeleteDataQualityRulesetError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>A name for the data quality ruleset.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>A name for the data quality ruleset.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
    }
    /// Fluent builder constructing a request to `DeleteDevEndpoint`.
    ///
    /// <p>Deletes a specified development endpoint.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct DeleteDevEndpoint {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::delete_dev_endpoint_input::Builder,
    }
    impl DeleteDevEndpoint {
        /// Creates a new `DeleteDevEndpoint`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::DeleteDevEndpoint,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::DeleteDevEndpointError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::DeleteDevEndpointOutput,
            aws_smithy_http::result::SdkError<crate::error::DeleteDevEndpointError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the <code>DevEndpoint</code>.</p>
        pub fn endpoint_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.endpoint_name(input.into());
            self
        }
        /// <p>The name of the <code>DevEndpoint</code>.</p>
        pub fn set_endpoint_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_endpoint_name(input);
            self
        }
    }
    /// Fluent builder constructing a request to `DeleteJob`.
    ///
    /// <p>Deletes a specified job definition. If the job definition is not found, no exception is thrown.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct DeleteJob {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::delete_job_input::Builder,
    }
    impl DeleteJob {
        /// Creates a new `DeleteJob`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::DeleteJob,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::DeleteJobError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::DeleteJobOutput,
            aws_smithy_http::result::SdkError<crate::error::DeleteJobError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the job definition to delete.</p>
        pub fn job_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.job_name(input.into());
            self
        }
        /// <p>The name of the job definition to delete.</p>
        pub fn set_job_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_job_name(input);
            self
        }
    }
    /// Fluent builder constructing a request to `DeleteMLTransform`.
    ///
    /// <p>Deletes an Glue machine learning transform. Machine learning transforms are a special type of transform that use machine learning to learn the details of the transformation to be performed by learning from examples provided by humans. These transformations are then saved by Glue. If you no longer need a transform, you can delete it by calling <code>DeleteMLTransforms</code>. However, any Glue jobs that still reference the deleted transform will no longer succeed.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct DeleteMLTransform {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::delete_ml_transform_input::Builder,
    }
    impl DeleteMLTransform {
        /// Creates a new `DeleteMLTransform`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::DeleteMLTransform,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::DeleteMLTransformError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::DeleteMlTransformOutput,
            aws_smithy_http::result::SdkError<crate::error::DeleteMLTransformError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The unique identifier of the transform to delete.</p>
        pub fn transform_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.transform_id(input.into());
            self
        }
        /// <p>The unique identifier of the transform to delete.</p>
        pub fn set_transform_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_transform_id(input);
            self
        }
    }
    /// Fluent builder constructing a request to `DeletePartition`.
    ///
    /// <p>Deletes a specified partition.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct DeletePartition {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::delete_partition_input::Builder,
    }
    impl DeletePartition {
        /// Creates a new `DeletePartition`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::DeletePartition,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::DeletePartitionError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::DeletePartitionOutput,
            aws_smithy_http::result::SdkError<crate::error::DeletePartitionError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the Data Catalog where the partition to be deleted resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog where the partition to be deleted resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The name of the catalog database in which the table in question resides.</p>
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        /// <p>The name of the catalog database in which the table in question resides.</p>
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        /// <p>The name of the table that contains the partition to be deleted.</p>
        pub fn table_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.table_name(input.into());
            self
        }
        /// <p>The name of the table that contains the partition to be deleted.</p>
        pub fn set_table_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_table_name(input);
            self
        }
        /// Appends an item to `PartitionValues`.
        ///
        /// To override the contents of this collection use [`set_partition_values`](Self::set_partition_values).
        ///
        /// <p>The values that define the partition.</p>
        pub fn partition_values(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.partition_values(input.into());
            self
        }
        /// <p>The values that define the partition.</p>
        pub fn set_partition_values(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.inner = self.inner.set_partition_values(input);
            self
        }
    }
    /// Fluent builder constructing a request to `DeletePartitionIndex`.
    ///
    /// <p>Deletes a specified partition index from an existing table.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct DeletePartitionIndex {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::delete_partition_index_input::Builder,
    }
    impl DeletePartitionIndex {
        /// Creates a new `DeletePartitionIndex`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::DeletePartitionIndex,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::DeletePartitionIndexError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::DeletePartitionIndexOutput,
            aws_smithy_http::result::SdkError<crate::error::DeletePartitionIndexError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The catalog ID where the table resides.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The catalog ID where the table resides.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>Specifies the name of a database from which you want to delete a partition index.</p>
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        /// <p>Specifies the name of a database from which you want to delete a partition index.</p>
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        /// <p>Specifies the name of a table from which you want to delete a partition index.</p>
        pub fn table_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.table_name(input.into());
            self
        }
        /// <p>Specifies the name of a table from which you want to delete a partition index.</p>
        pub fn set_table_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_table_name(input);
            self
        }
        /// <p>The name of the partition index to be deleted.</p>
        pub fn index_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.index_name(input.into());
            self
        }
        /// <p>The name of the partition index to be deleted.</p>
        pub fn set_index_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_index_name(input);
            self
        }
    }
    /// Fluent builder constructing a request to `DeleteRegistry`.
    ///
    /// <p>Delete the entire registry including schema and all of its versions. To get the status of the delete operation, you can call the <code>GetRegistry</code> API after the asynchronous call. Deleting a registry will deactivate all online operations for the registry such as the <code>UpdateRegistry</code>, <code>CreateSchema</code>, <code>UpdateSchema</code>, and <code>RegisterSchemaVersion</code> APIs. </p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct DeleteRegistry {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::delete_registry_input::Builder,
    }
    impl DeleteRegistry {
        /// Creates a new `DeleteRegistry`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::DeleteRegistry,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::DeleteRegistryError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::DeleteRegistryOutput,
            aws_smithy_http::result::SdkError<crate::error::DeleteRegistryError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>This is a wrapper structure that may contain the registry name and Amazon Resource Name (ARN).</p>
        pub fn registry_id(mut self, input: crate::model::RegistryId) -> Self {
            self.inner = self.inner.registry_id(input);
            self
        }
        /// <p>This is a wrapper structure that may contain the registry name and Amazon Resource Name (ARN).</p>
        pub fn set_registry_id(
            mut self,
            input: std::option::Option<crate::model::RegistryId>,
        ) -> Self {
            self.inner = self.inner.set_registry_id(input);
            self
        }
    }
    /// Fluent builder constructing a request to `DeleteResourcePolicy`.
    ///
    /// <p>Deletes a specified policy.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct DeleteResourcePolicy {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::delete_resource_policy_input::Builder,
    }
    impl DeleteResourcePolicy {
        /// Creates a new `DeleteResourcePolicy`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::DeleteResourcePolicy,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::DeleteResourcePolicyError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::DeleteResourcePolicyOutput,
            aws_smithy_http::result::SdkError<crate::error::DeleteResourcePolicyError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The hash value returned when this policy was set.</p>
        pub fn policy_hash_condition(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.policy_hash_condition(input.into());
            self
        }
        /// <p>The hash value returned when this policy was set.</p>
        pub fn set_policy_hash_condition(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_policy_hash_condition(input);
            self
        }
        /// <p>The ARN of the Glue resource for the resource policy to be deleted.</p>
        pub fn resource_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.resource_arn(input.into());
            self
        }
        /// <p>The ARN of the Glue resource for the resource policy to be deleted.</p>
        pub fn set_resource_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_resource_arn(input);
            self
        }
    }
    /// Fluent builder constructing a request to `DeleteSchema`.
    ///
    /// <p>Deletes the entire schema set, including the schema set and all of its versions. To get the status of the delete operation, you can call <code>GetSchema</code> API after the asynchronous call. Deleting a registry will deactivate all online operations for the schema, such as the <code>GetSchemaByDefinition</code>, and <code>RegisterSchemaVersion</code> APIs.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct DeleteSchema {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::delete_schema_input::Builder,
    }
    impl DeleteSchema {
        /// Creates a new `DeleteSchema`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::DeleteSchema,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::DeleteSchemaError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::DeleteSchemaOutput,
            aws_smithy_http::result::SdkError<crate::error::DeleteSchemaError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>This is a wrapper structure that may contain the schema name and Amazon Resource Name (ARN).</p>
        pub fn schema_id(mut self, input: crate::model::SchemaId) -> Self {
            self.inner = self.inner.schema_id(input);
            self
        }
        /// <p>This is a wrapper structure that may contain the schema name and Amazon Resource Name (ARN).</p>
        pub fn set_schema_id(mut self, input: std::option::Option<crate::model::SchemaId>) -> Self {
            self.inner = self.inner.set_schema_id(input);
            self
        }
    }
    /// Fluent builder constructing a request to `DeleteSchemaVersions`.
    ///
    /// <p>Remove versions from the specified schema. A version number or range may be supplied. If the compatibility mode forbids deleting of a version that is necessary, such as BACKWARDS_FULL, an error is returned. Calling the <code>GetSchemaVersions</code> API after this call will list the status of the deleted versions.</p>
    /// <p>When the range of version numbers contain check pointed version, the API will return a 409 conflict and will not proceed with the deletion. You have to remove the checkpoint first using the <code>DeleteSchemaCheckpoint</code> API before using this API.</p>
    /// <p>You cannot use the <code>DeleteSchemaVersions</code> API to delete the first schema version in the schema set. The first schema version can only be deleted by the <code>DeleteSchema</code> API. This operation will also delete the attached <code>SchemaVersionMetadata</code> under the schema versions. Hard deletes will be enforced on the database.</p>
    /// <p>If the compatibility mode forbids deleting of a version that is necessary, such as BACKWARDS_FULL, an error is returned.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct DeleteSchemaVersions {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::delete_schema_versions_input::Builder,
    }
    impl DeleteSchemaVersions {
        /// Creates a new `DeleteSchemaVersions`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::DeleteSchemaVersions,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::DeleteSchemaVersionsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::DeleteSchemaVersionsOutput,
            aws_smithy_http::result::SdkError<crate::error::DeleteSchemaVersionsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>This is a wrapper structure that may contain the schema name and Amazon Resource Name (ARN).</p>
        pub fn schema_id(mut self, input: crate::model::SchemaId) -> Self {
            self.inner = self.inner.schema_id(input);
            self
        }
        /// <p>This is a wrapper structure that may contain the schema name and Amazon Resource Name (ARN).</p>
        pub fn set_schema_id(mut self, input: std::option::Option<crate::model::SchemaId>) -> Self {
            self.inner = self.inner.set_schema_id(input);
            self
        }
        /// <p>A version range may be supplied which may be of the format:</p>
        /// <ul>
        /// <li> <p>a single version number, 5</p> </li>
        /// <li> <p>a range, 5-8 : deletes versions 5, 6, 7, 8</p> </li>
        /// </ul>
        pub fn versions(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.versions(input.into());
            self
        }
        /// <p>A version range may be supplied which may be of the format:</p>
        /// <ul>
        /// <li> <p>a single version number, 5</p> </li>
        /// <li> <p>a range, 5-8 : deletes versions 5, 6, 7, 8</p> </li>
        /// </ul>
        pub fn set_versions(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_versions(input);
            self
        }
    }
    /// Fluent builder constructing a request to `DeleteSecurityConfiguration`.
    ///
    /// <p>Deletes a specified security configuration.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct DeleteSecurityConfiguration {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::delete_security_configuration_input::Builder,
    }
    impl DeleteSecurityConfiguration {
        /// Creates a new `DeleteSecurityConfiguration`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::DeleteSecurityConfiguration,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::DeleteSecurityConfigurationError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::DeleteSecurityConfigurationOutput,
            aws_smithy_http::result::SdkError<crate::error::DeleteSecurityConfigurationError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the security configuration to delete.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The name of the security configuration to delete.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
    }
    /// Fluent builder constructing a request to `DeleteSession`.
    ///
    /// <p>Deletes the session.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct DeleteSession {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::delete_session_input::Builder,
    }
    impl DeleteSession {
        /// Creates a new `DeleteSession`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::DeleteSession,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::DeleteSessionError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::DeleteSessionOutput,
            aws_smithy_http::result::SdkError<crate::error::DeleteSessionError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the session to be deleted.</p>
        pub fn id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.id(input.into());
            self
        }
        /// <p>The ID of the session to be deleted.</p>
        pub fn set_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_id(input);
            self
        }
        /// <p>The name of the origin of the delete session request.</p>
        pub fn request_origin(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.request_origin(input.into());
            self
        }
        /// <p>The name of the origin of the delete session request.</p>
        pub fn set_request_origin(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_request_origin(input);
            self
        }
    }
    /// Fluent builder constructing a request to `DeleteTable`.
    ///
    /// <p>Removes a table definition from the Data Catalog.</p> <note>
    /// <p>After completing this operation, you no longer have access to the table versions and partitions that belong to the deleted table. Glue deletes these "orphaned" resources asynchronously in a timely manner, at the discretion of the service.</p>
    /// <p>To ensure the immediate deletion of all related resources, before calling <code>DeleteTable</code>, use <code>DeleteTableVersion</code> or <code>BatchDeleteTableVersion</code>, and <code>DeletePartition</code> or <code>BatchDeletePartition</code>, to delete any resources that belong to the table.</p>
    /// </note>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct DeleteTable {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::delete_table_input::Builder,
    }
    impl DeleteTable {
        /// Creates a new `DeleteTable`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::DeleteTable,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::DeleteTableError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::DeleteTableOutput,
            aws_smithy_http::result::SdkError<crate::error::DeleteTableError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the Data Catalog where the table resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog where the table resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The name of the catalog database in which the table resides. For Hive compatibility, this name is entirely lowercase.</p>
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        /// <p>The name of the catalog database in which the table resides. For Hive compatibility, this name is entirely lowercase.</p>
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        /// <p>The name of the table to be deleted. For Hive compatibility, this name is entirely lowercase.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The name of the table to be deleted. For Hive compatibility, this name is entirely lowercase.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
        /// <p>The transaction ID at which to delete the table contents.</p>
        pub fn transaction_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.transaction_id(input.into());
            self
        }
        /// <p>The transaction ID at which to delete the table contents.</p>
        pub fn set_transaction_id(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_transaction_id(input);
            self
        }
    }
    /// Fluent builder constructing a request to `DeleteTableVersion`.
    ///
    /// <p>Deletes a specified version of a table.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct DeleteTableVersion {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::delete_table_version_input::Builder,
    }
    impl DeleteTableVersion {
        /// Creates a new `DeleteTableVersion`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::DeleteTableVersion,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::DeleteTableVersionError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::DeleteTableVersionOutput,
            aws_smithy_http::result::SdkError<crate::error::DeleteTableVersionError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the Data Catalog where the tables reside. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog where the tables reside. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The database in the catalog in which the table resides. For Hive compatibility, this name is entirely lowercase.</p>
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        /// <p>The database in the catalog in which the table resides. For Hive compatibility, this name is entirely lowercase.</p>
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        /// <p>The name of the table. For Hive compatibility, this name is entirely lowercase.</p>
        pub fn table_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.table_name(input.into());
            self
        }
        /// <p>The name of the table. For Hive compatibility, this name is entirely lowercase.</p>
        pub fn set_table_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_table_name(input);
            self
        }
        /// <p>The ID of the table version to be deleted. A <code>VersionID</code> is a string representation of an integer. Each version is incremented by 1.</p>
        pub fn version_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.version_id(input.into());
            self
        }
        /// <p>The ID of the table version to be deleted. A <code>VersionID</code> is a string representation of an integer. Each version is incremented by 1.</p>
        pub fn set_version_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_version_id(input);
            self
        }
    }
    /// Fluent builder constructing a request to `DeleteTrigger`.
    ///
    /// <p>Deletes a specified trigger. If the trigger is not found, no exception is thrown.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct DeleteTrigger {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::delete_trigger_input::Builder,
    }
    impl DeleteTrigger {
        /// Creates a new `DeleteTrigger`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::DeleteTrigger,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::DeleteTriggerError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::DeleteTriggerOutput,
            aws_smithy_http::result::SdkError<crate::error::DeleteTriggerError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the trigger to delete.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The name of the trigger to delete.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
    }
    /// Fluent builder constructing a request to `DeleteUserDefinedFunction`.
    ///
    /// <p>Deletes an existing function definition from the Data Catalog.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct DeleteUserDefinedFunction {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::delete_user_defined_function_input::Builder,
    }
    impl DeleteUserDefinedFunction {
        /// Creates a new `DeleteUserDefinedFunction`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::DeleteUserDefinedFunction,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::DeleteUserDefinedFunctionError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::DeleteUserDefinedFunctionOutput,
            aws_smithy_http::result::SdkError<crate::error::DeleteUserDefinedFunctionError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the Data Catalog where the function to be deleted is located. If none is supplied, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog where the function to be deleted is located. If none is supplied, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The name of the catalog database where the function is located.</p>
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        /// <p>The name of the catalog database where the function is located.</p>
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        /// <p>The name of the function definition to be deleted.</p>
        pub fn function_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.function_name(input.into());
            self
        }
        /// <p>The name of the function definition to be deleted.</p>
        pub fn set_function_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_function_name(input);
            self
        }
    }
    /// Fluent builder constructing a request to `DeleteWorkflow`.
    ///
    /// <p>Deletes a workflow.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct DeleteWorkflow {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::delete_workflow_input::Builder,
    }
    impl DeleteWorkflow {
        /// Creates a new `DeleteWorkflow`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::DeleteWorkflow,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::DeleteWorkflowError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::DeleteWorkflowOutput,
            aws_smithy_http::result::SdkError<crate::error::DeleteWorkflowError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>Name of the workflow to be deleted.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>Name of the workflow to be deleted.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetBlueprint`.
    ///
    /// <p>Retrieves the details of a blueprint.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetBlueprint {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_blueprint_input::Builder,
    }
    impl GetBlueprint {
        /// Creates a new `GetBlueprint`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetBlueprint,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetBlueprintError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetBlueprintOutput,
            aws_smithy_http::result::SdkError<crate::error::GetBlueprintError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the blueprint.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The name of the blueprint.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
        /// <p>Specifies whether or not to include the blueprint in the response.</p>
        pub fn include_blueprint(mut self, input: bool) -> Self {
            self.inner = self.inner.include_blueprint(input);
            self
        }
        /// <p>Specifies whether or not to include the blueprint in the response.</p>
        pub fn set_include_blueprint(mut self, input: std::option::Option<bool>) -> Self {
            self.inner = self.inner.set_include_blueprint(input);
            self
        }
        /// <p>Specifies whether or not to include the parameter specification.</p>
        pub fn include_parameter_spec(mut self, input: bool) -> Self {
            self.inner = self.inner.include_parameter_spec(input);
            self
        }
        /// <p>Specifies whether or not to include the parameter specification.</p>
        pub fn set_include_parameter_spec(mut self, input: std::option::Option<bool>) -> Self {
            self.inner = self.inner.set_include_parameter_spec(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetBlueprintRun`.
    ///
    /// <p>Retrieves the details of a blueprint run.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetBlueprintRun {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_blueprint_run_input::Builder,
    }
    impl GetBlueprintRun {
        /// Creates a new `GetBlueprintRun`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetBlueprintRun,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetBlueprintRunError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetBlueprintRunOutput,
            aws_smithy_http::result::SdkError<crate::error::GetBlueprintRunError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the blueprint.</p>
        pub fn blueprint_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.blueprint_name(input.into());
            self
        }
        /// <p>The name of the blueprint.</p>
        pub fn set_blueprint_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_blueprint_name(input);
            self
        }
        /// <p>The run ID for the blueprint run you want to retrieve.</p>
        pub fn run_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.run_id(input.into());
            self
        }
        /// <p>The run ID for the blueprint run you want to retrieve.</p>
        pub fn set_run_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_run_id(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetBlueprintRuns`.
    ///
    /// <p>Retrieves the details of blueprint runs for a specified blueprint.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetBlueprintRuns {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_blueprint_runs_input::Builder,
    }
    impl GetBlueprintRuns {
        /// Creates a new `GetBlueprintRuns`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetBlueprintRuns,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetBlueprintRunsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetBlueprintRunsOutput,
            aws_smithy_http::result::SdkError<crate::error::GetBlueprintRunsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::GetBlueprintRunsPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::GetBlueprintRunsPaginator {
            crate::paginator::GetBlueprintRunsPaginator::new(self.handle, self.inner)
        }
        /// <p>The name of the blueprint.</p>
        pub fn blueprint_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.blueprint_name(input.into());
            self
        }
        /// <p>The name of the blueprint.</p>
        pub fn set_blueprint_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_blueprint_name(input);
            self
        }
        /// <p>A continuation token, if this is a continuation request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A continuation token, if this is a continuation request.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
        /// <p>The maximum size of a list to return.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum size of a list to return.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetCatalogImportStatus`.
    ///
    /// <p>Retrieves the status of a migration operation.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetCatalogImportStatus {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_catalog_import_status_input::Builder,
    }
    impl GetCatalogImportStatus {
        /// Creates a new `GetCatalogImportStatus`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetCatalogImportStatus,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetCatalogImportStatusError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetCatalogImportStatusOutput,
            aws_smithy_http::result::SdkError<crate::error::GetCatalogImportStatusError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the catalog to migrate. Currently, this should be the Amazon Web Services account ID.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the catalog to migrate. Currently, this should be the Amazon Web Services account ID.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetClassifier`.
    ///
    /// <p>Retrieve a classifier by name.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetClassifier {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_classifier_input::Builder,
    }
    impl GetClassifier {
        /// Creates a new `GetClassifier`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetClassifier,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetClassifierError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetClassifierOutput,
            aws_smithy_http::result::SdkError<crate::error::GetClassifierError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>Name of the classifier to retrieve.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>Name of the classifier to retrieve.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetClassifiers`.
    ///
    /// <p>Lists all classifier objects in the Data Catalog.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetClassifiers {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_classifiers_input::Builder,
    }
    impl GetClassifiers {
        /// Creates a new `GetClassifiers`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetClassifiers,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetClassifiersError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetClassifiersOutput,
            aws_smithy_http::result::SdkError<crate::error::GetClassifiersError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::GetClassifiersPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::GetClassifiersPaginator {
            crate::paginator::GetClassifiersPaginator::new(self.handle, self.inner)
        }
        /// <p>The size of the list to return (optional).</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The size of the list to return (optional).</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
        /// <p>An optional continuation token.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>An optional continuation token.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetColumnStatisticsForPartition`.
    ///
    /// <p>Retrieves partition statistics of columns.</p>
    /// <p>The Identity and Access Management (IAM) permission required for this operation is <code>GetPartition</code>.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetColumnStatisticsForPartition {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_column_statistics_for_partition_input::Builder,
    }
    impl GetColumnStatisticsForPartition {
        /// Creates a new `GetColumnStatisticsForPartition`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetColumnStatisticsForPartition,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetColumnStatisticsForPartitionError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetColumnStatisticsForPartitionOutput,
            aws_smithy_http::result::SdkError<crate::error::GetColumnStatisticsForPartitionError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the Data Catalog where the partitions in question reside. If none is supplied, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog where the partitions in question reside. If none is supplied, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The name of the catalog database where the partitions reside.</p>
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        /// <p>The name of the catalog database where the partitions reside.</p>
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        /// <p>The name of the partitions' table.</p>
        pub fn table_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.table_name(input.into());
            self
        }
        /// <p>The name of the partitions' table.</p>
        pub fn set_table_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_table_name(input);
            self
        }
        /// Appends an item to `PartitionValues`.
        ///
        /// To override the contents of this collection use [`set_partition_values`](Self::set_partition_values).
        ///
        /// <p>A list of partition values identifying the partition.</p>
        pub fn partition_values(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.partition_values(input.into());
            self
        }
        /// <p>A list of partition values identifying the partition.</p>
        pub fn set_partition_values(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.inner = self.inner.set_partition_values(input);
            self
        }
        /// Appends an item to `ColumnNames`.
        ///
        /// To override the contents of this collection use [`set_column_names`](Self::set_column_names).
        ///
        /// <p>A list of the column names.</p>
        pub fn column_names(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.column_names(input.into());
            self
        }
        /// <p>A list of the column names.</p>
        pub fn set_column_names(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.inner = self.inner.set_column_names(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetColumnStatisticsForTable`.
    ///
    /// <p>Retrieves table statistics of columns.</p>
    /// <p>The Identity and Access Management (IAM) permission required for this operation is <code>GetTable</code>.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetColumnStatisticsForTable {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_column_statistics_for_table_input::Builder,
    }
    impl GetColumnStatisticsForTable {
        /// Creates a new `GetColumnStatisticsForTable`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetColumnStatisticsForTable,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetColumnStatisticsForTableError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetColumnStatisticsForTableOutput,
            aws_smithy_http::result::SdkError<crate::error::GetColumnStatisticsForTableError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the Data Catalog where the partitions in question reside. If none is supplied, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog where the partitions in question reside. If none is supplied, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The name of the catalog database where the partitions reside.</p>
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        /// <p>The name of the catalog database where the partitions reside.</p>
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        /// <p>The name of the partitions' table.</p>
        pub fn table_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.table_name(input.into());
            self
        }
        /// <p>The name of the partitions' table.</p>
        pub fn set_table_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_table_name(input);
            self
        }
        /// Appends an item to `ColumnNames`.
        ///
        /// To override the contents of this collection use [`set_column_names`](Self::set_column_names).
        ///
        /// <p>A list of the column names.</p>
        pub fn column_names(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.column_names(input.into());
            self
        }
        /// <p>A list of the column names.</p>
        pub fn set_column_names(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.inner = self.inner.set_column_names(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetConnection`.
    ///
    /// <p>Retrieves a connection definition from the Data Catalog.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetConnection {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_connection_input::Builder,
    }
    impl GetConnection {
        /// Creates a new `GetConnection`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetConnection,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetConnectionError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetConnectionOutput,
            aws_smithy_http::result::SdkError<crate::error::GetConnectionError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the Data Catalog in which the connection resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog in which the connection resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The name of the connection definition to retrieve.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The name of the connection definition to retrieve.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
        /// <p>Allows you to retrieve the connection metadata without returning the password. For instance, the Glue console uses this flag to retrieve the connection, and does not display the password. Set this parameter when the caller might not have permission to use the KMS key to decrypt the password, but it does have permission to access the rest of the connection properties.</p>
        pub fn hide_password(mut self, input: bool) -> Self {
            self.inner = self.inner.hide_password(input);
            self
        }
        /// <p>Allows you to retrieve the connection metadata without returning the password. For instance, the Glue console uses this flag to retrieve the connection, and does not display the password. Set this parameter when the caller might not have permission to use the KMS key to decrypt the password, but it does have permission to access the rest of the connection properties.</p>
        pub fn set_hide_password(mut self, input: std::option::Option<bool>) -> Self {
            self.inner = self.inner.set_hide_password(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetConnections`.
    ///
    /// <p>Retrieves a list of connection definitions from the Data Catalog.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetConnections {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_connections_input::Builder,
    }
    impl GetConnections {
        /// Creates a new `GetConnections`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetConnections,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetConnectionsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetConnectionsOutput,
            aws_smithy_http::result::SdkError<crate::error::GetConnectionsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::GetConnectionsPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::GetConnectionsPaginator {
            crate::paginator::GetConnectionsPaginator::new(self.handle, self.inner)
        }
        /// <p>The ID of the Data Catalog in which the connections reside. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog in which the connections reside. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>A filter that controls which connections are returned.</p>
        pub fn filter(mut self, input: crate::model::GetConnectionsFilter) -> Self {
            self.inner = self.inner.filter(input);
            self
        }
        /// <p>A filter that controls which connections are returned.</p>
        pub fn set_filter(
            mut self,
            input: std::option::Option<crate::model::GetConnectionsFilter>,
        ) -> Self {
            self.inner = self.inner.set_filter(input);
            self
        }
        /// <p>Allows you to retrieve the connection metadata without returning the password. For instance, the Glue console uses this flag to retrieve the connection, and does not display the password. Set this parameter when the caller might not have permission to use the KMS key to decrypt the password, but it does have permission to access the rest of the connection properties.</p>
        pub fn hide_password(mut self, input: bool) -> Self {
            self.inner = self.inner.hide_password(input);
            self
        }
        /// <p>Allows you to retrieve the connection metadata without returning the password. For instance, the Glue console uses this flag to retrieve the connection, and does not display the password. Set this parameter when the caller might not have permission to use the KMS key to decrypt the password, but it does have permission to access the rest of the connection properties.</p>
        pub fn set_hide_password(mut self, input: std::option::Option<bool>) -> Self {
            self.inner = self.inner.set_hide_password(input);
            self
        }
        /// <p>A continuation token, if this is a continuation call.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A continuation token, if this is a continuation call.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
        /// <p>The maximum number of connections to return in one response.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum number of connections to return in one response.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetCrawler`.
    ///
    /// <p>Retrieves metadata for a specified crawler.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetCrawler {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_crawler_input::Builder,
    }
    impl GetCrawler {
        /// Creates a new `GetCrawler`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetCrawler,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetCrawlerError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetCrawlerOutput,
            aws_smithy_http::result::SdkError<crate::error::GetCrawlerError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the crawler to retrieve metadata for.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The name of the crawler to retrieve metadata for.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetCrawlerMetrics`.
    ///
    /// <p>Retrieves metrics about specified crawlers.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetCrawlerMetrics {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_crawler_metrics_input::Builder,
    }
    impl GetCrawlerMetrics {
        /// Creates a new `GetCrawlerMetrics`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetCrawlerMetrics,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetCrawlerMetricsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetCrawlerMetricsOutput,
            aws_smithy_http::result::SdkError<crate::error::GetCrawlerMetricsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::GetCrawlerMetricsPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::GetCrawlerMetricsPaginator {
            crate::paginator::GetCrawlerMetricsPaginator::new(self.handle, self.inner)
        }
        /// Appends an item to `CrawlerNameList`.
        ///
        /// To override the contents of this collection use [`set_crawler_name_list`](Self::set_crawler_name_list).
        ///
        /// <p>A list of the names of crawlers about which to retrieve metrics.</p>
        pub fn crawler_name_list(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.crawler_name_list(input.into());
            self
        }
        /// <p>A list of the names of crawlers about which to retrieve metrics.</p>
        pub fn set_crawler_name_list(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.inner = self.inner.set_crawler_name_list(input);
            self
        }
        /// <p>The maximum size of a list to return.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum size of a list to return.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
        /// <p>A continuation token, if this is a continuation call.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A continuation token, if this is a continuation call.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetCrawlers`.
    ///
    /// <p>Retrieves metadata for all crawlers defined in the customer account.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetCrawlers {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_crawlers_input::Builder,
    }
    impl GetCrawlers {
        /// Creates a new `GetCrawlers`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetCrawlers,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetCrawlersError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetCrawlersOutput,
            aws_smithy_http::result::SdkError<crate::error::GetCrawlersError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::GetCrawlersPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::GetCrawlersPaginator {
            crate::paginator::GetCrawlersPaginator::new(self.handle, self.inner)
        }
        /// <p>The number of crawlers to return on each call.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The number of crawlers to return on each call.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
        /// <p>A continuation token, if this is a continuation request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A continuation token, if this is a continuation request.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetCustomEntityType`.
    ///
    /// <p>Retrieves the details of a custom pattern by specifying its name.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetCustomEntityType {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_custom_entity_type_input::Builder,
    }
    impl GetCustomEntityType {
        /// Creates a new `GetCustomEntityType`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetCustomEntityType,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetCustomEntityTypeError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetCustomEntityTypeOutput,
            aws_smithy_http::result::SdkError<crate::error::GetCustomEntityTypeError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the custom pattern that you want to retrieve.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The name of the custom pattern that you want to retrieve.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetDatabase`.
    ///
    /// <p>Retrieves the definition of a specified database.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetDatabase {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_database_input::Builder,
    }
    impl GetDatabase {
        /// Creates a new `GetDatabase`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetDatabase,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetDatabaseError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetDatabaseOutput,
            aws_smithy_http::result::SdkError<crate::error::GetDatabaseError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the Data Catalog in which the database resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog in which the database resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The name of the database to retrieve. For Hive compatibility, this should be all lowercase.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The name of the database to retrieve. For Hive compatibility, this should be all lowercase.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetDatabases`.
    ///
    /// <p>Retrieves all databases defined in a given Data Catalog.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetDatabases {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_databases_input::Builder,
    }
    impl GetDatabases {
        /// Creates a new `GetDatabases`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetDatabases,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetDatabasesError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetDatabasesOutput,
            aws_smithy_http::result::SdkError<crate::error::GetDatabasesError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::GetDatabasesPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::GetDatabasesPaginator {
            crate::paginator::GetDatabasesPaginator::new(self.handle, self.inner)
        }
        /// <p>The ID of the Data Catalog from which to retrieve <code>Databases</code>. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog from which to retrieve <code>Databases</code>. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>A continuation token, if this is a continuation call.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A continuation token, if this is a continuation call.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
        /// <p>The maximum number of databases to return in one response.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum number of databases to return in one response.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
        /// <p>Allows you to specify that you want to list the databases shared with your account. The allowable values are <code>FOREIGN</code> or <code>ALL</code>. </p>
        /// <ul>
        /// <li> <p>If set to <code>FOREIGN</code>, will list the databases shared with your account. </p> </li>
        /// <li> <p>If set to <code>ALL</code>, will list the databases shared with your account, as well as the databases in yor local account. </p> </li>
        /// </ul>
        pub fn resource_share_type(mut self, input: crate::model::ResourceShareType) -> Self {
            self.inner = self.inner.resource_share_type(input);
            self
        }
        /// <p>Allows you to specify that you want to list the databases shared with your account. The allowable values are <code>FOREIGN</code> or <code>ALL</code>. </p>
        /// <ul>
        /// <li> <p>If set to <code>FOREIGN</code>, will list the databases shared with your account. </p> </li>
        /// <li> <p>If set to <code>ALL</code>, will list the databases shared with your account, as well as the databases in yor local account. </p> </li>
        /// </ul>
        pub fn set_resource_share_type(
            mut self,
            input: std::option::Option<crate::model::ResourceShareType>,
        ) -> Self {
            self.inner = self.inner.set_resource_share_type(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetDataCatalogEncryptionSettings`.
    ///
    /// <p>Retrieves the security configuration for a specified catalog.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetDataCatalogEncryptionSettings {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_data_catalog_encryption_settings_input::Builder,
    }
    impl GetDataCatalogEncryptionSettings {
        /// Creates a new `GetDataCatalogEncryptionSettings`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetDataCatalogEncryptionSettings,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetDataCatalogEncryptionSettingsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetDataCatalogEncryptionSettingsOutput,
            aws_smithy_http::result::SdkError<crate::error::GetDataCatalogEncryptionSettingsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the Data Catalog to retrieve the security configuration for. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog to retrieve the security configuration for. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetDataflowGraph`.
    ///
    /// <p>Transforms a Python script into a directed acyclic graph (DAG). </p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetDataflowGraph {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_dataflow_graph_input::Builder,
    }
    impl GetDataflowGraph {
        /// Creates a new `GetDataflowGraph`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetDataflowGraph,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetDataflowGraphError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetDataflowGraphOutput,
            aws_smithy_http::result::SdkError<crate::error::GetDataflowGraphError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The Python script to transform.</p>
        pub fn python_script(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.python_script(input.into());
            self
        }
        /// <p>The Python script to transform.</p>
        pub fn set_python_script(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_python_script(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetDataQualityResult`.
    ///
    /// <p>Retrieves the result of a data quality rule evaluation.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetDataQualityResult {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_data_quality_result_input::Builder,
    }
    impl GetDataQualityResult {
        /// Creates a new `GetDataQualityResult`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetDataQualityResult,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetDataQualityResultError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetDataQualityResultOutput,
            aws_smithy_http::result::SdkError<crate::error::GetDataQualityResultError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>A unique result ID for the data quality result.</p>
        pub fn result_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.result_id(input.into());
            self
        }
        /// <p>A unique result ID for the data quality result.</p>
        pub fn set_result_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_result_id(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetDataQualityRuleRecommendationRun`.
    ///
    /// <p>Gets the specified recommendation run that was used to generate rules.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetDataQualityRuleRecommendationRun {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_data_quality_rule_recommendation_run_input::Builder,
    }
    impl GetDataQualityRuleRecommendationRun {
        /// Creates a new `GetDataQualityRuleRecommendationRun`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetDataQualityRuleRecommendationRun,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<
                crate::error::GetDataQualityRuleRecommendationRunError,
            >,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetDataQualityRuleRecommendationRunOutput,
            aws_smithy_http::result::SdkError<
                crate::error::GetDataQualityRuleRecommendationRunError,
            >,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The unique run identifier associated with this run.</p>
        pub fn run_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.run_id(input.into());
            self
        }
        /// <p>The unique run identifier associated with this run.</p>
        pub fn set_run_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_run_id(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetDataQualityRuleset`.
    ///
    /// <p>Returns an existing ruleset by identifier or name.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetDataQualityRuleset {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_data_quality_ruleset_input::Builder,
    }
    impl GetDataQualityRuleset {
        /// Creates a new `GetDataQualityRuleset`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetDataQualityRuleset,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetDataQualityRulesetError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetDataQualityRulesetOutput,
            aws_smithy_http::result::SdkError<crate::error::GetDataQualityRulesetError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the ruleset.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The name of the ruleset.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetDataQualityRulesetEvaluationRun`.
    ///
    /// <p>Retrieves a specific run where a ruleset is evaluated against a data source.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetDataQualityRulesetEvaluationRun {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_data_quality_ruleset_evaluation_run_input::Builder,
    }
    impl GetDataQualityRulesetEvaluationRun {
        /// Creates a new `GetDataQualityRulesetEvaluationRun`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetDataQualityRulesetEvaluationRun,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<
                crate::error::GetDataQualityRulesetEvaluationRunError,
            >,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetDataQualityRulesetEvaluationRunOutput,
            aws_smithy_http::result::SdkError<
                crate::error::GetDataQualityRulesetEvaluationRunError,
            >,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The unique run identifier associated with this run.</p>
        pub fn run_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.run_id(input.into());
            self
        }
        /// <p>The unique run identifier associated with this run.</p>
        pub fn set_run_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_run_id(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetDevEndpoint`.
    ///
    /// <p>Retrieves information about a specified development endpoint.</p> <note>
    /// <p>When you create a development endpoint in a virtual private cloud (VPC), Glue returns only a private IP address, and the public IP address field is not populated. When you create a non-VPC development endpoint, Glue returns only a public IP address.</p>
    /// </note>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetDevEndpoint {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_dev_endpoint_input::Builder,
    }
    impl GetDevEndpoint {
        /// Creates a new `GetDevEndpoint`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetDevEndpoint,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetDevEndpointError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetDevEndpointOutput,
            aws_smithy_http::result::SdkError<crate::error::GetDevEndpointError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>Name of the <code>DevEndpoint</code> to retrieve information for.</p>
        pub fn endpoint_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.endpoint_name(input.into());
            self
        }
        /// <p>Name of the <code>DevEndpoint</code> to retrieve information for.</p>
        pub fn set_endpoint_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_endpoint_name(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetDevEndpoints`.
    ///
    /// <p>Retrieves all the development endpoints in this Amazon Web Services account.</p> <note>
    /// <p>When you create a development endpoint in a virtual private cloud (VPC), Glue returns only a private IP address and the public IP address field is not populated. When you create a non-VPC development endpoint, Glue returns only a public IP address.</p>
    /// </note>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetDevEndpoints {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_dev_endpoints_input::Builder,
    }
    impl GetDevEndpoints {
        /// Creates a new `GetDevEndpoints`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetDevEndpoints,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetDevEndpointsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetDevEndpointsOutput,
            aws_smithy_http::result::SdkError<crate::error::GetDevEndpointsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::GetDevEndpointsPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::GetDevEndpointsPaginator {
            crate::paginator::GetDevEndpointsPaginator::new(self.handle, self.inner)
        }
        /// <p>The maximum size of information to return.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum size of information to return.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
        /// <p>A continuation token, if this is a continuation call.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A continuation token, if this is a continuation call.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetJob`.
    ///
    /// <p>Retrieves an existing job definition.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetJob {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_job_input::Builder,
    }
    impl GetJob {
        /// Creates a new `GetJob`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetJob,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetJobError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetJobOutput,
            aws_smithy_http::result::SdkError<crate::error::GetJobError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the job definition to retrieve.</p>
        pub fn job_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.job_name(input.into());
            self
        }
        /// <p>The name of the job definition to retrieve.</p>
        pub fn set_job_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_job_name(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetJobBookmark`.
    ///
    /// <p>Returns information on a job bookmark entry.</p>
    /// <p>For more information about enabling and using job bookmarks, see:</p>
    /// <ul>
    /// <li> <p> <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-continuations.html">Tracking processed data using job bookmarks</a> </p> </li>
    /// <li> <p> <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html">Job parameters used by Glue</a> </p> </li>
    /// <li> <p> <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html#aws-glue-api-jobs-job-Job">Job structure</a> </p> </li>
    /// </ul>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetJobBookmark {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_job_bookmark_input::Builder,
    }
    impl GetJobBookmark {
        /// Creates a new `GetJobBookmark`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetJobBookmark,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetJobBookmarkError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetJobBookmarkOutput,
            aws_smithy_http::result::SdkError<crate::error::GetJobBookmarkError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the job in question.</p>
        pub fn job_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.job_name(input.into());
            self
        }
        /// <p>The name of the job in question.</p>
        pub fn set_job_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_job_name(input);
            self
        }
        /// <p>The unique run identifier associated with this job run.</p>
        pub fn run_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.run_id(input.into());
            self
        }
        /// <p>The unique run identifier associated with this job run.</p>
        pub fn set_run_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_run_id(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetJobRun`.
    ///
    /// <p>Retrieves the metadata for a given job run.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetJobRun {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_job_run_input::Builder,
    }
    impl GetJobRun {
        /// Creates a new `GetJobRun`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetJobRun,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetJobRunError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetJobRunOutput,
            aws_smithy_http::result::SdkError<crate::error::GetJobRunError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>Name of the job definition being run.</p>
        pub fn job_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.job_name(input.into());
            self
        }
        /// <p>Name of the job definition being run.</p>
        pub fn set_job_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_job_name(input);
            self
        }
        /// <p>The ID of the job run.</p>
        pub fn run_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.run_id(input.into());
            self
        }
        /// <p>The ID of the job run.</p>
        pub fn set_run_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_run_id(input);
            self
        }
        /// <p>True if a list of predecessor runs should be returned.</p>
        pub fn predecessors_included(mut self, input: bool) -> Self {
            self.inner = self.inner.predecessors_included(input);
            self
        }
        /// <p>True if a list of predecessor runs should be returned.</p>
        pub fn set_predecessors_included(mut self, input: std::option::Option<bool>) -> Self {
            self.inner = self.inner.set_predecessors_included(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetJobRuns`.
    ///
    /// <p>Retrieves metadata for all runs of a given job definition.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetJobRuns {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_job_runs_input::Builder,
    }
    impl GetJobRuns {
        /// Creates a new `GetJobRuns`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetJobRuns,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetJobRunsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetJobRunsOutput,
            aws_smithy_http::result::SdkError<crate::error::GetJobRunsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::GetJobRunsPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::GetJobRunsPaginator {
            crate::paginator::GetJobRunsPaginator::new(self.handle, self.inner)
        }
        /// <p>The name of the job definition for which to retrieve all job runs.</p>
        pub fn job_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.job_name(input.into());
            self
        }
        /// <p>The name of the job definition for which to retrieve all job runs.</p>
        pub fn set_job_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_job_name(input);
            self
        }
        /// <p>A continuation token, if this is a continuation call.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A continuation token, if this is a continuation call.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
        /// <p>The maximum size of the response.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum size of the response.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetJobs`.
    ///
    /// <p>Retrieves all current job definitions.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetJobs {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_jobs_input::Builder,
    }
    impl GetJobs {
        /// Creates a new `GetJobs`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetJobs,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetJobsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetJobsOutput,
            aws_smithy_http::result::SdkError<crate::error::GetJobsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::GetJobsPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::GetJobsPaginator {
            crate::paginator::GetJobsPaginator::new(self.handle, self.inner)
        }
        /// <p>A continuation token, if this is a continuation call.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A continuation token, if this is a continuation call.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
        /// <p>The maximum size of the response.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum size of the response.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetMapping`.
    ///
    /// <p>Creates mappings.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetMapping {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_mapping_input::Builder,
    }
    impl GetMapping {
        /// Creates a new `GetMapping`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetMapping,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetMappingError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetMappingOutput,
            aws_smithy_http::result::SdkError<crate::error::GetMappingError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>Specifies the source table.</p>
        pub fn source(mut self, input: crate::model::CatalogEntry) -> Self {
            self.inner = self.inner.source(input);
            self
        }
        /// <p>Specifies the source table.</p>
        pub fn set_source(
            mut self,
            input: std::option::Option<crate::model::CatalogEntry>,
        ) -> Self {
            self.inner = self.inner.set_source(input);
            self
        }
        /// Appends an item to `Sinks`.
        ///
        /// To override the contents of this collection use [`set_sinks`](Self::set_sinks).
        ///
        /// <p>A list of target tables.</p>
        pub fn sinks(mut self, input: crate::model::CatalogEntry) -> Self {
            self.inner = self.inner.sinks(input);
            self
        }
        /// <p>A list of target tables.</p>
        pub fn set_sinks(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::CatalogEntry>>,
        ) -> Self {
            self.inner = self.inner.set_sinks(input);
            self
        }
        /// <p>Parameters for the mapping.</p>
        pub fn location(mut self, input: crate::model::Location) -> Self {
            self.inner = self.inner.location(input);
            self
        }
        /// <p>Parameters for the mapping.</p>
        pub fn set_location(mut self, input: std::option::Option<crate::model::Location>) -> Self {
            self.inner = self.inner.set_location(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetMLTaskRun`.
    ///
    /// <p>Gets details for a specific task run on a machine learning transform. Machine learning task runs are asynchronous tasks that Glue runs on your behalf as part of various machine learning workflows. You can check the stats of any task run by calling <code>GetMLTaskRun</code> with the <code>TaskRunID</code> and its parent transform's <code>TransformID</code>.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetMLTaskRun {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_ml_task_run_input::Builder,
    }
    impl GetMLTaskRun {
        /// Creates a new `GetMLTaskRun`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetMLTaskRun,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetMLTaskRunError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetMlTaskRunOutput,
            aws_smithy_http::result::SdkError<crate::error::GetMLTaskRunError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The unique identifier of the machine learning transform.</p>
        pub fn transform_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.transform_id(input.into());
            self
        }
        /// <p>The unique identifier of the machine learning transform.</p>
        pub fn set_transform_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_transform_id(input);
            self
        }
        /// <p>The unique identifier of the task run.</p>
        pub fn task_run_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.task_run_id(input.into());
            self
        }
        /// <p>The unique identifier of the task run.</p>
        pub fn set_task_run_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_task_run_id(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetMLTaskRuns`.
    ///
    /// <p>Gets a list of runs for a machine learning transform. Machine learning task runs are asynchronous tasks that Glue runs on your behalf as part of various machine learning workflows. You can get a sortable, filterable list of machine learning task runs by calling <code>GetMLTaskRuns</code> with their parent transform's <code>TransformID</code> and other optional parameters as documented in this section.</p>
    /// <p>This operation returns a list of historic runs and must be paginated.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetMLTaskRuns {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_ml_task_runs_input::Builder,
    }
    impl GetMLTaskRuns {
        /// Creates a new `GetMLTaskRuns`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetMLTaskRuns,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetMLTaskRunsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetMlTaskRunsOutput,
            aws_smithy_http::result::SdkError<crate::error::GetMLTaskRunsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::GetMlTaskRunsPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::GetMlTaskRunsPaginator {
            crate::paginator::GetMlTaskRunsPaginator::new(self.handle, self.inner)
        }
        /// <p>The unique identifier of the machine learning transform.</p>
        pub fn transform_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.transform_id(input.into());
            self
        }
        /// <p>The unique identifier of the machine learning transform.</p>
        pub fn set_transform_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_transform_id(input);
            self
        }
        /// <p>A token for pagination of the results. The default is empty.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A token for pagination of the results. The default is empty.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
        /// <p>The maximum number of results to return. </p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum number of results to return. </p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
        /// <p>The filter criteria, in the <code>TaskRunFilterCriteria</code> structure, for the task run.</p>
        pub fn filter(mut self, input: crate::model::TaskRunFilterCriteria) -> Self {
            self.inner = self.inner.filter(input);
            self
        }
        /// <p>The filter criteria, in the <code>TaskRunFilterCriteria</code> structure, for the task run.</p>
        pub fn set_filter(
            mut self,
            input: std::option::Option<crate::model::TaskRunFilterCriteria>,
        ) -> Self {
            self.inner = self.inner.set_filter(input);
            self
        }
        /// <p>The sorting criteria, in the <code>TaskRunSortCriteria</code> structure, for the task run.</p>
        pub fn sort(mut self, input: crate::model::TaskRunSortCriteria) -> Self {
            self.inner = self.inner.sort(input);
            self
        }
        /// <p>The sorting criteria, in the <code>TaskRunSortCriteria</code> structure, for the task run.</p>
        pub fn set_sort(
            mut self,
            input: std::option::Option<crate::model::TaskRunSortCriteria>,
        ) -> Self {
            self.inner = self.inner.set_sort(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetMLTransform`.
    ///
    /// <p>Gets an Glue machine learning transform artifact and all its corresponding metadata. Machine learning transforms are a special type of transform that use machine learning to learn the details of the transformation to be performed by learning from examples provided by humans. These transformations are then saved by Glue. You can retrieve their metadata by calling <code>GetMLTransform</code>.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetMLTransform {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_ml_transform_input::Builder,
    }
    impl GetMLTransform {
        /// Creates a new `GetMLTransform`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetMLTransform,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetMLTransformError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetMlTransformOutput,
            aws_smithy_http::result::SdkError<crate::error::GetMLTransformError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The unique identifier of the transform, generated at the time that the transform was created.</p>
        pub fn transform_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.transform_id(input.into());
            self
        }
        /// <p>The unique identifier of the transform, generated at the time that the transform was created.</p>
        pub fn set_transform_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_transform_id(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetMLTransforms`.
    ///
    /// <p>Gets a sortable, filterable list of existing Glue machine learning transforms. Machine learning transforms are a special type of transform that use machine learning to learn the details of the transformation to be performed by learning from examples provided by humans. These transformations are then saved by Glue, and you can retrieve their metadata by calling <code>GetMLTransforms</code>.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetMLTransforms {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_ml_transforms_input::Builder,
    }
    impl GetMLTransforms {
        /// Creates a new `GetMLTransforms`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetMLTransforms,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetMLTransformsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetMlTransformsOutput,
            aws_smithy_http::result::SdkError<crate::error::GetMLTransformsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::GetMlTransformsPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::GetMlTransformsPaginator {
            crate::paginator::GetMlTransformsPaginator::new(self.handle, self.inner)
        }
        /// <p>A paginated token to offset the results.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A paginated token to offset the results.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
        /// <p>The maximum number of results to return.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum number of results to return.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
        /// <p>The filter transformation criteria.</p>
        pub fn filter(mut self, input: crate::model::TransformFilterCriteria) -> Self {
            self.inner = self.inner.filter(input);
            self
        }
        /// <p>The filter transformation criteria.</p>
        pub fn set_filter(
            mut self,
            input: std::option::Option<crate::model::TransformFilterCriteria>,
        ) -> Self {
            self.inner = self.inner.set_filter(input);
            self
        }
        /// <p>The sorting criteria.</p>
        pub fn sort(mut self, input: crate::model::TransformSortCriteria) -> Self {
            self.inner = self.inner.sort(input);
            self
        }
        /// <p>The sorting criteria.</p>
        pub fn set_sort(
            mut self,
            input: std::option::Option<crate::model::TransformSortCriteria>,
        ) -> Self {
            self.inner = self.inner.set_sort(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetPartition`.
    ///
    /// <p>Retrieves information about a specified partition.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetPartition {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_partition_input::Builder,
    }
    impl GetPartition {
        /// Creates a new `GetPartition`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetPartition,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetPartitionError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetPartitionOutput,
            aws_smithy_http::result::SdkError<crate::error::GetPartitionError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the Data Catalog where the partition in question resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog where the partition in question resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The name of the catalog database where the partition resides.</p>
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        /// <p>The name of the catalog database where the partition resides.</p>
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        /// <p>The name of the partition's table.</p>
        pub fn table_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.table_name(input.into());
            self
        }
        /// <p>The name of the partition's table.</p>
        pub fn set_table_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_table_name(input);
            self
        }
        /// Appends an item to `PartitionValues`.
        ///
        /// To override the contents of this collection use [`set_partition_values`](Self::set_partition_values).
        ///
        /// <p>The values that define the partition.</p>
        pub fn partition_values(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.partition_values(input.into());
            self
        }
        /// <p>The values that define the partition.</p>
        pub fn set_partition_values(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.inner = self.inner.set_partition_values(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetPartitionIndexes`.
    ///
    /// <p>Retrieves the partition indexes associated with a table.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetPartitionIndexes {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_partition_indexes_input::Builder,
    }
    impl GetPartitionIndexes {
        /// Creates a new `GetPartitionIndexes`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetPartitionIndexes,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetPartitionIndexesError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetPartitionIndexesOutput,
            aws_smithy_http::result::SdkError<crate::error::GetPartitionIndexesError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::GetPartitionIndexesPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::GetPartitionIndexesPaginator {
            crate::paginator::GetPartitionIndexesPaginator::new(self.handle, self.inner)
        }
        /// <p>The catalog ID where the table resides.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The catalog ID where the table resides.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>Specifies the name of a database from which you want to retrieve partition indexes.</p>
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        /// <p>Specifies the name of a database from which you want to retrieve partition indexes.</p>
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        /// <p>Specifies the name of a table for which you want to retrieve the partition indexes.</p>
        pub fn table_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.table_name(input.into());
            self
        }
        /// <p>Specifies the name of a table for which you want to retrieve the partition indexes.</p>
        pub fn set_table_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_table_name(input);
            self
        }
        /// <p>A continuation token, included if this is a continuation call.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A continuation token, included if this is a continuation call.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetPartitions`.
    ///
    /// <p>Retrieves information about the partitions in a table.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetPartitions {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_partitions_input::Builder,
    }
    impl GetPartitions {
        /// Creates a new `GetPartitions`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetPartitions,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetPartitionsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetPartitionsOutput,
            aws_smithy_http::result::SdkError<crate::error::GetPartitionsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::GetPartitionsPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::GetPartitionsPaginator {
            crate::paginator::GetPartitionsPaginator::new(self.handle, self.inner)
        }
        /// <p>The ID of the Data Catalog where the partitions in question reside. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog where the partitions in question reside. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The name of the catalog database where the partitions reside.</p>
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        /// <p>The name of the catalog database where the partitions reside.</p>
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        /// <p>The name of the partitions' table.</p>
        pub fn table_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.table_name(input.into());
            self
        }
        /// <p>The name of the partitions' table.</p>
        pub fn set_table_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_table_name(input);
            self
        }
        /// <p>An expression that filters the partitions to be returned.</p>
        /// <p>The expression uses SQL syntax similar to the SQL <code>WHERE</code> filter clause. The SQL statement parser <a href="http://jsqlparser.sourceforge.net/home.php">JSQLParser</a> parses the expression. </p>
        /// <p> <i>Operators</i>: The following are the operators that you can use in the <code>Expression</code> API call:</p>
        /// <dl>
        /// <dt>
        /// =
        /// </dt>
        /// <dd>
        /// <p>Checks whether the values of the two operands are equal; if yes, then the condition becomes true.</p>
        /// <p>Example: Assume 'variable a' holds 10 and 'variable b' holds 20. </p>
        /// <p>(a = b) is not true.</p>
        /// </dd>
        /// <dt>
        /// &lt; &gt;
        /// </dt>
        /// <dd>
        /// <p>Checks whether the values of two operands are equal; if the values are not equal, then the condition becomes true.</p>
        /// <p>Example: (a &lt; &gt; b) is true.</p>
        /// </dd>
        /// <dt>
        /// &gt;
        /// </dt>
        /// <dd>
        /// <p>Checks whether the value of the left operand is greater than the value of the right operand; if yes, then the condition becomes true.</p>
        /// <p>Example: (a &gt; b) is not true.</p>
        /// </dd>
        /// <dt>
        /// &lt;
        /// </dt>
        /// <dd>
        /// <p>Checks whether the value of the left operand is less than the value of the right operand; if yes, then the condition becomes true.</p>
        /// <p>Example: (a &lt; b) is true.</p>
        /// </dd>
        /// <dt>
        /// &gt;=
        /// </dt>
        /// <dd>
        /// <p>Checks whether the value of the left operand is greater than or equal to the value of the right operand; if yes, then the condition becomes true.</p>
        /// <p>Example: (a &gt;= b) is not true.</p>
        /// </dd>
        /// <dt>
        /// &lt;=
        /// </dt>
        /// <dd>
        /// <p>Checks whether the value of the left operand is less than or equal to the value of the right operand; if yes, then the condition becomes true.</p>
        /// <p>Example: (a &lt;= b) is true.</p>
        /// </dd>
        /// <dt>
        /// AND, OR, IN, BETWEEN, LIKE, NOT, IS NULL
        /// </dt>
        /// <dd>
        /// <p>Logical operators.</p>
        /// </dd>
        /// </dl>
        /// <p> <i>Supported Partition Key Types</i>: The following are the supported partition keys.</p>
        /// <ul>
        /// <li> <p> <code>string</code> </p> </li>
        /// <li> <p> <code>date</code> </p> </li>
        /// <li> <p> <code>timestamp</code> </p> </li>
        /// <li> <p> <code>int</code> </p> </li>
        /// <li> <p> <code>bigint</code> </p> </li>
        /// <li> <p> <code>long</code> </p> </li>
        /// <li> <p> <code>tinyint</code> </p> </li>
        /// <li> <p> <code>smallint</code> </p> </li>
        /// <li> <p> <code>decimal</code> </p> </li>
        /// </ul>
        /// <p>If an type is encountered that is not valid, an exception is thrown. </p>
        /// <p>The following list shows the valid operators on each type. When you define a crawler, the <code>partitionKey</code> type is created as a <code>STRING</code>, to be compatible with the catalog partitions. </p>
        /// <p> <i>Sample API Call</i>: </p>
        pub fn expression(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.expression(input.into());
            self
        }
        /// <p>An expression that filters the partitions to be returned.</p>
        /// <p>The expression uses SQL syntax similar to the SQL <code>WHERE</code> filter clause. The SQL statement parser <a href="http://jsqlparser.sourceforge.net/home.php">JSQLParser</a> parses the expression. </p>
        /// <p> <i>Operators</i>: The following are the operators that you can use in the <code>Expression</code> API call:</p>
        /// <dl>
        /// <dt>
        /// =
        /// </dt>
        /// <dd>
        /// <p>Checks whether the values of the two operands are equal; if yes, then the condition becomes true.</p>
        /// <p>Example: Assume 'variable a' holds 10 and 'variable b' holds 20. </p>
        /// <p>(a = b) is not true.</p>
        /// </dd>
        /// <dt>
        /// &lt; &gt;
        /// </dt>
        /// <dd>
        /// <p>Checks whether the values of two operands are equal; if the values are not equal, then the condition becomes true.</p>
        /// <p>Example: (a &lt; &gt; b) is true.</p>
        /// </dd>
        /// <dt>
        /// &gt;
        /// </dt>
        /// <dd>
        /// <p>Checks whether the value of the left operand is greater than the value of the right operand; if yes, then the condition becomes true.</p>
        /// <p>Example: (a &gt; b) is not true.</p>
        /// </dd>
        /// <dt>
        /// &lt;
        /// </dt>
        /// <dd>
        /// <p>Checks whether the value of the left operand is less than the value of the right operand; if yes, then the condition becomes true.</p>
        /// <p>Example: (a &lt; b) is true.</p>
        /// </dd>
        /// <dt>
        /// &gt;=
        /// </dt>
        /// <dd>
        /// <p>Checks whether the value of the left operand is greater than or equal to the value of the right operand; if yes, then the condition becomes true.</p>
        /// <p>Example: (a &gt;= b) is not true.</p>
        /// </dd>
        /// <dt>
        /// &lt;=
        /// </dt>
        /// <dd>
        /// <p>Checks whether the value of the left operand is less than or equal to the value of the right operand; if yes, then the condition becomes true.</p>
        /// <p>Example: (a &lt;= b) is true.</p>
        /// </dd>
        /// <dt>
        /// AND, OR, IN, BETWEEN, LIKE, NOT, IS NULL
        /// </dt>
        /// <dd>
        /// <p>Logical operators.</p>
        /// </dd>
        /// </dl>
        /// <p> <i>Supported Partition Key Types</i>: The following are the supported partition keys.</p>
        /// <ul>
        /// <li> <p> <code>string</code> </p> </li>
        /// <li> <p> <code>date</code> </p> </li>
        /// <li> <p> <code>timestamp</code> </p> </li>
        /// <li> <p> <code>int</code> </p> </li>
        /// <li> <p> <code>bigint</code> </p> </li>
        /// <li> <p> <code>long</code> </p> </li>
        /// <li> <p> <code>tinyint</code> </p> </li>
        /// <li> <p> <code>smallint</code> </p> </li>
        /// <li> <p> <code>decimal</code> </p> </li>
        /// </ul>
        /// <p>If an type is encountered that is not valid, an exception is thrown. </p>
        /// <p>The following list shows the valid operators on each type. When you define a crawler, the <code>partitionKey</code> type is created as a <code>STRING</code>, to be compatible with the catalog partitions. </p>
        /// <p> <i>Sample API Call</i>: </p>
        pub fn set_expression(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_expression(input);
            self
        }
        /// <p>A continuation token, if this is not the first call to retrieve these partitions.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A continuation token, if this is not the first call to retrieve these partitions.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
        /// <p>The segment of the table's partitions to scan in this request.</p>
        pub fn segment(mut self, input: crate::model::Segment) -> Self {
            self.inner = self.inner.segment(input);
            self
        }
        /// <p>The segment of the table's partitions to scan in this request.</p>
        pub fn set_segment(mut self, input: std::option::Option<crate::model::Segment>) -> Self {
            self.inner = self.inner.set_segment(input);
            self
        }
        /// <p>The maximum number of partitions to return in a single response.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum number of partitions to return in a single response.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
        /// <p>When true, specifies not returning the partition column schema. Useful when you are interested only in other partition attributes such as partition values or location. This approach avoids the problem of a large response by not returning duplicate data.</p>
        pub fn exclude_column_schema(mut self, input: bool) -> Self {
            self.inner = self.inner.exclude_column_schema(input);
            self
        }
        /// <p>When true, specifies not returning the partition column schema. Useful when you are interested only in other partition attributes such as partition values or location. This approach avoids the problem of a large response by not returning duplicate data.</p>
        pub fn set_exclude_column_schema(mut self, input: std::option::Option<bool>) -> Self {
            self.inner = self.inner.set_exclude_column_schema(input);
            self
        }
        /// <p>The transaction ID at which to read the partition contents.</p>
        pub fn transaction_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.transaction_id(input.into());
            self
        }
        /// <p>The transaction ID at which to read the partition contents.</p>
        pub fn set_transaction_id(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_transaction_id(input);
            self
        }
        /// <p>The time as of when to read the partition contents. If not set, the most recent transaction commit time will be used. Cannot be specified along with <code>TransactionId</code>.</p>
        pub fn query_as_of_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.inner = self.inner.query_as_of_time(input);
            self
        }
        /// <p>The time as of when to read the partition contents. If not set, the most recent transaction commit time will be used. Cannot be specified along with <code>TransactionId</code>.</p>
        pub fn set_query_as_of_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.inner = self.inner.set_query_as_of_time(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetPlan`.
    ///
    /// <p>Gets code to perform a specified mapping.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetPlan {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_plan_input::Builder,
    }
    impl GetPlan {
        /// Creates a new `GetPlan`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetPlan,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetPlanError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetPlanOutput,
            aws_smithy_http::result::SdkError<crate::error::GetPlanError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Appends an item to `Mapping`.
        ///
        /// To override the contents of this collection use [`set_mapping`](Self::set_mapping).
        ///
        /// <p>The list of mappings from a source table to target tables.</p>
        pub fn mapping(mut self, input: crate::model::MappingEntry) -> Self {
            self.inner = self.inner.mapping(input);
            self
        }
        /// <p>The list of mappings from a source table to target tables.</p>
        pub fn set_mapping(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::MappingEntry>>,
        ) -> Self {
            self.inner = self.inner.set_mapping(input);
            self
        }
        /// <p>The source table.</p>
        pub fn source(mut self, input: crate::model::CatalogEntry) -> Self {
            self.inner = self.inner.source(input);
            self
        }
        /// <p>The source table.</p>
        pub fn set_source(
            mut self,
            input: std::option::Option<crate::model::CatalogEntry>,
        ) -> Self {
            self.inner = self.inner.set_source(input);
            self
        }
        /// Appends an item to `Sinks`.
        ///
        /// To override the contents of this collection use [`set_sinks`](Self::set_sinks).
        ///
        /// <p>The target tables.</p>
        pub fn sinks(mut self, input: crate::model::CatalogEntry) -> Self {
            self.inner = self.inner.sinks(input);
            self
        }
        /// <p>The target tables.</p>
        pub fn set_sinks(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::CatalogEntry>>,
        ) -> Self {
            self.inner = self.inner.set_sinks(input);
            self
        }
        /// <p>The parameters for the mapping.</p>
        pub fn location(mut self, input: crate::model::Location) -> Self {
            self.inner = self.inner.location(input);
            self
        }
        /// <p>The parameters for the mapping.</p>
        pub fn set_location(mut self, input: std::option::Option<crate::model::Location>) -> Self {
            self.inner = self.inner.set_location(input);
            self
        }
        /// <p>The programming language of the code to perform the mapping.</p>
        pub fn language(mut self, input: crate::model::Language) -> Self {
            self.inner = self.inner.language(input);
            self
        }
        /// <p>The programming language of the code to perform the mapping.</p>
        pub fn set_language(mut self, input: std::option::Option<crate::model::Language>) -> Self {
            self.inner = self.inner.set_language(input);
            self
        }
        /// Adds a key-value pair to `AdditionalPlanOptionsMap`.
        ///
        /// To override the contents of this collection use [`set_additional_plan_options_map`](Self::set_additional_plan_options_map).
        ///
        /// <p>A map to hold additional optional key-value parameters.</p>
        /// <p>Currently, these key-value pairs are supported:</p>
        /// <ul>
        /// <li> <p> <code>inferSchema</code>&nbsp; — &nbsp;Specifies whether to set <code>inferSchema</code> to true or false for the default script generated by an Glue job. For example, to set <code>inferSchema</code> to true, pass the following key value pair:</p> <p> <code>--additional-plan-options-map '{"inferSchema":"true"}'</code> </p> </li>
        /// </ul>
        pub fn additional_plan_options_map(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.additional_plan_options_map(k.into(), v.into());
            self
        }
        /// <p>A map to hold additional optional key-value parameters.</p>
        /// <p>Currently, these key-value pairs are supported:</p>
        /// <ul>
        /// <li> <p> <code>inferSchema</code>&nbsp; — &nbsp;Specifies whether to set <code>inferSchema</code> to true or false for the default script generated by an Glue job. For example, to set <code>inferSchema</code> to true, pass the following key value pair:</p> <p> <code>--additional-plan-options-map '{"inferSchema":"true"}'</code> </p> </li>
        /// </ul>
        pub fn set_additional_plan_options_map(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.inner = self.inner.set_additional_plan_options_map(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetRegistry`.
    ///
    /// <p>Describes the specified registry in detail.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetRegistry {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_registry_input::Builder,
    }
    impl GetRegistry {
        /// Creates a new `GetRegistry`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetRegistry,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetRegistryError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetRegistryOutput,
            aws_smithy_http::result::SdkError<crate::error::GetRegistryError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>This is a wrapper structure that may contain the registry name and Amazon Resource Name (ARN).</p>
        pub fn registry_id(mut self, input: crate::model::RegistryId) -> Self {
            self.inner = self.inner.registry_id(input);
            self
        }
        /// <p>This is a wrapper structure that may contain the registry name and Amazon Resource Name (ARN).</p>
        pub fn set_registry_id(
            mut self,
            input: std::option::Option<crate::model::RegistryId>,
        ) -> Self {
            self.inner = self.inner.set_registry_id(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetResourcePolicies`.
    ///
    /// <p>Retrieves the resource policies set on individual resources by Resource Access Manager during cross-account permission grants. Also retrieves the Data Catalog resource policy.</p>
    /// <p>If you enabled metadata encryption in Data Catalog settings, and you do not have permission on the KMS key, the operation can't return the Data Catalog resource policy.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetResourcePolicies {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_resource_policies_input::Builder,
    }
    impl GetResourcePolicies {
        /// Creates a new `GetResourcePolicies`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetResourcePolicies,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetResourcePoliciesError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetResourcePoliciesOutput,
            aws_smithy_http::result::SdkError<crate::error::GetResourcePoliciesError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::GetResourcePoliciesPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::GetResourcePoliciesPaginator {
            crate::paginator::GetResourcePoliciesPaginator::new(self.handle, self.inner)
        }
        /// <p>A continuation token, if this is a continuation request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A continuation token, if this is a continuation request.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
        /// <p>The maximum size of a list to return.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum size of a list to return.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetResourcePolicy`.
    ///
    /// <p>Retrieves a specified resource policy.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetResourcePolicy {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_resource_policy_input::Builder,
    }
    impl GetResourcePolicy {
        /// Creates a new `GetResourcePolicy`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetResourcePolicy,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetResourcePolicyError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetResourcePolicyOutput,
            aws_smithy_http::result::SdkError<crate::error::GetResourcePolicyError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ARN of the Glue resource for which to retrieve the resource policy. If not supplied, the Data Catalog resource policy is returned. Use <code>GetResourcePolicies</code> to view all existing resource policies. For more information see <a href="https://docs.aws.amazon.com/glue/latest/dg/glue-specifying-resource-arns.html">Specifying Glue Resource ARNs</a>. </p>
        pub fn resource_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.resource_arn(input.into());
            self
        }
        /// <p>The ARN of the Glue resource for which to retrieve the resource policy. If not supplied, the Data Catalog resource policy is returned. Use <code>GetResourcePolicies</code> to view all existing resource policies. For more information see <a href="https://docs.aws.amazon.com/glue/latest/dg/glue-specifying-resource-arns.html">Specifying Glue Resource ARNs</a>. </p>
        pub fn set_resource_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_resource_arn(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetSchema`.
    ///
    /// <p>Describes the specified schema in detail.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetSchema {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_schema_input::Builder,
    }
    impl GetSchema {
        /// Creates a new `GetSchema`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetSchema,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetSchemaError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetSchemaOutput,
            aws_smithy_http::result::SdkError<crate::error::GetSchemaError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>This is a wrapper structure to contain schema identity fields. The structure contains:</p>
        /// <ul>
        /// <li> <p>SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema. Either <code>SchemaArn</code> or <code>SchemaName</code> and <code>RegistryName</code> has to be provided.</p> </li>
        /// <li> <p>SchemaId$SchemaName: The name of the schema. Either <code>SchemaArn</code> or <code>SchemaName</code> and <code>RegistryName</code> has to be provided.</p> </li>
        /// </ul>
        pub fn schema_id(mut self, input: crate::model::SchemaId) -> Self {
            self.inner = self.inner.schema_id(input);
            self
        }
        /// <p>This is a wrapper structure to contain schema identity fields. The structure contains:</p>
        /// <ul>
        /// <li> <p>SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema. Either <code>SchemaArn</code> or <code>SchemaName</code> and <code>RegistryName</code> has to be provided.</p> </li>
        /// <li> <p>SchemaId$SchemaName: The name of the schema. Either <code>SchemaArn</code> or <code>SchemaName</code> and <code>RegistryName</code> has to be provided.</p> </li>
        /// </ul>
        pub fn set_schema_id(mut self, input: std::option::Option<crate::model::SchemaId>) -> Self {
            self.inner = self.inner.set_schema_id(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetSchemaByDefinition`.
    ///
    /// <p>Retrieves a schema by the <code>SchemaDefinition</code>. The schema definition is sent to the Schema Registry, canonicalized, and hashed. If the hash is matched within the scope of the <code>SchemaName</code> or ARN (or the default registry, if none is supplied), that schema’s metadata is returned. Otherwise, a 404 or NotFound error is returned. Schema versions in <code>Deleted</code> statuses will not be included in the results.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetSchemaByDefinition {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_schema_by_definition_input::Builder,
    }
    impl GetSchemaByDefinition {
        /// Creates a new `GetSchemaByDefinition`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetSchemaByDefinition,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetSchemaByDefinitionError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetSchemaByDefinitionOutput,
            aws_smithy_http::result::SdkError<crate::error::GetSchemaByDefinitionError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>This is a wrapper structure to contain schema identity fields. The structure contains:</p>
        /// <ul>
        /// <li> <p>SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.</p> </li>
        /// <li> <p>SchemaId$SchemaName: The name of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.</p> </li>
        /// </ul>
        pub fn schema_id(mut self, input: crate::model::SchemaId) -> Self {
            self.inner = self.inner.schema_id(input);
            self
        }
        /// <p>This is a wrapper structure to contain schema identity fields. The structure contains:</p>
        /// <ul>
        /// <li> <p>SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.</p> </li>
        /// <li> <p>SchemaId$SchemaName: The name of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.</p> </li>
        /// </ul>
        pub fn set_schema_id(mut self, input: std::option::Option<crate::model::SchemaId>) -> Self {
            self.inner = self.inner.set_schema_id(input);
            self
        }
        /// <p>The definition of the schema for which schema details are required.</p>
        pub fn schema_definition(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.schema_definition(input.into());
            self
        }
        /// <p>The definition of the schema for which schema details are required.</p>
        pub fn set_schema_definition(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_schema_definition(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetSchemaVersion`.
    ///
    /// <p>Get the specified schema by its unique ID assigned when a version of the schema is created or registered. Schema versions in Deleted status will not be included in the results.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetSchemaVersion {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_schema_version_input::Builder,
    }
    impl GetSchemaVersion {
        /// Creates a new `GetSchemaVersion`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetSchemaVersion,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetSchemaVersionError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetSchemaVersionOutput,
            aws_smithy_http::result::SdkError<crate::error::GetSchemaVersionError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>This is a wrapper structure to contain schema identity fields. The structure contains:</p>
        /// <ul>
        /// <li> <p>SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema. Either <code>SchemaArn</code> or <code>SchemaName</code> and <code>RegistryName</code> has to be provided.</p> </li>
        /// <li> <p>SchemaId$SchemaName: The name of the schema. Either <code>SchemaArn</code> or <code>SchemaName</code> and <code>RegistryName</code> has to be provided.</p> </li>
        /// </ul>
        pub fn schema_id(mut self, input: crate::model::SchemaId) -> Self {
            self.inner = self.inner.schema_id(input);
            self
        }
        /// <p>This is a wrapper structure to contain schema identity fields. The structure contains:</p>
        /// <ul>
        /// <li> <p>SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema. Either <code>SchemaArn</code> or <code>SchemaName</code> and <code>RegistryName</code> has to be provided.</p> </li>
        /// <li> <p>SchemaId$SchemaName: The name of the schema. Either <code>SchemaArn</code> or <code>SchemaName</code> and <code>RegistryName</code> has to be provided.</p> </li>
        /// </ul>
        pub fn set_schema_id(mut self, input: std::option::Option<crate::model::SchemaId>) -> Self {
            self.inner = self.inner.set_schema_id(input);
            self
        }
        /// <p>The <code>SchemaVersionId</code> of the schema version. This field is required for fetching by schema ID. Either this or the <code>SchemaId</code> wrapper has to be provided.</p>
        pub fn schema_version_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.schema_version_id(input.into());
            self
        }
        /// <p>The <code>SchemaVersionId</code> of the schema version. This field is required for fetching by schema ID. Either this or the <code>SchemaId</code> wrapper has to be provided.</p>
        pub fn set_schema_version_id(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_schema_version_id(input);
            self
        }
        /// <p>The version number of the schema.</p>
        pub fn schema_version_number(mut self, input: crate::model::SchemaVersionNumber) -> Self {
            self.inner = self.inner.schema_version_number(input);
            self
        }
        /// <p>The version number of the schema.</p>
        pub fn set_schema_version_number(
            mut self,
            input: std::option::Option<crate::model::SchemaVersionNumber>,
        ) -> Self {
            self.inner = self.inner.set_schema_version_number(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetSchemaVersionsDiff`.
    ///
    /// <p>Fetches the schema version difference in the specified difference type between two stored schema versions in the Schema Registry.</p>
    /// <p>This API allows you to compare two schema versions between two schema definitions under the same schema.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetSchemaVersionsDiff {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_schema_versions_diff_input::Builder,
    }
    impl GetSchemaVersionsDiff {
        /// Creates a new `GetSchemaVersionsDiff`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetSchemaVersionsDiff,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetSchemaVersionsDiffError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetSchemaVersionsDiffOutput,
            aws_smithy_http::result::SdkError<crate::error::GetSchemaVersionsDiffError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>This is a wrapper structure to contain schema identity fields. The structure contains:</p>
        /// <ul>
        /// <li> <p>SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.</p> </li>
        /// <li> <p>SchemaId$SchemaName: The name of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.</p> </li>
        /// </ul>
        pub fn schema_id(mut self, input: crate::model::SchemaId) -> Self {
            self.inner = self.inner.schema_id(input);
            self
        }
        /// <p>This is a wrapper structure to contain schema identity fields. The structure contains:</p>
        /// <ul>
        /// <li> <p>SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.</p> </li>
        /// <li> <p>SchemaId$SchemaName: The name of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.</p> </li>
        /// </ul>
        pub fn set_schema_id(mut self, input: std::option::Option<crate::model::SchemaId>) -> Self {
            self.inner = self.inner.set_schema_id(input);
            self
        }
        /// <p>The first of the two schema versions to be compared.</p>
        pub fn first_schema_version_number(
            mut self,
            input: crate::model::SchemaVersionNumber,
        ) -> Self {
            self.inner = self.inner.first_schema_version_number(input);
            self
        }
        /// <p>The first of the two schema versions to be compared.</p>
        pub fn set_first_schema_version_number(
            mut self,
            input: std::option::Option<crate::model::SchemaVersionNumber>,
        ) -> Self {
            self.inner = self.inner.set_first_schema_version_number(input);
            self
        }
        /// <p>The second of the two schema versions to be compared.</p>
        pub fn second_schema_version_number(
            mut self,
            input: crate::model::SchemaVersionNumber,
        ) -> Self {
            self.inner = self.inner.second_schema_version_number(input);
            self
        }
        /// <p>The second of the two schema versions to be compared.</p>
        pub fn set_second_schema_version_number(
            mut self,
            input: std::option::Option<crate::model::SchemaVersionNumber>,
        ) -> Self {
            self.inner = self.inner.set_second_schema_version_number(input);
            self
        }
        /// <p>Refers to <code>SYNTAX_DIFF</code>, which is the currently supported diff type.</p>
        pub fn schema_diff_type(mut self, input: crate::model::SchemaDiffType) -> Self {
            self.inner = self.inner.schema_diff_type(input);
            self
        }
        /// <p>Refers to <code>SYNTAX_DIFF</code>, which is the currently supported diff type.</p>
        pub fn set_schema_diff_type(
            mut self,
            input: std::option::Option<crate::model::SchemaDiffType>,
        ) -> Self {
            self.inner = self.inner.set_schema_diff_type(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetSecurityConfiguration`.
    ///
    /// <p>Retrieves a specified security configuration.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetSecurityConfiguration {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_security_configuration_input::Builder,
    }
    impl GetSecurityConfiguration {
        /// Creates a new `GetSecurityConfiguration`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetSecurityConfiguration,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetSecurityConfigurationError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetSecurityConfigurationOutput,
            aws_smithy_http::result::SdkError<crate::error::GetSecurityConfigurationError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the security configuration to retrieve.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The name of the security configuration to retrieve.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetSecurityConfigurations`.
    ///
    /// <p>Retrieves a list of all security configurations.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetSecurityConfigurations {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_security_configurations_input::Builder,
    }
    impl GetSecurityConfigurations {
        /// Creates a new `GetSecurityConfigurations`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetSecurityConfigurations,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetSecurityConfigurationsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetSecurityConfigurationsOutput,
            aws_smithy_http::result::SdkError<crate::error::GetSecurityConfigurationsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::GetSecurityConfigurationsPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::GetSecurityConfigurationsPaginator {
            crate::paginator::GetSecurityConfigurationsPaginator::new(self.handle, self.inner)
        }
        /// <p>The maximum number of results to return.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum number of results to return.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
        /// <p>A continuation token, if this is a continuation call.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A continuation token, if this is a continuation call.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetSession`.
    ///
    /// <p>Retrieves the session.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetSession {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_session_input::Builder,
    }
    impl GetSession {
        /// Creates a new `GetSession`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetSession,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetSessionError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetSessionOutput,
            aws_smithy_http::result::SdkError<crate::error::GetSessionError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the session. </p>
        pub fn id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.id(input.into());
            self
        }
        /// <p>The ID of the session. </p>
        pub fn set_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_id(input);
            self
        }
        /// <p>The origin of the request. </p>
        pub fn request_origin(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.request_origin(input.into());
            self
        }
        /// <p>The origin of the request. </p>
        pub fn set_request_origin(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_request_origin(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetStatement`.
    ///
    /// <p>Retrieves the statement.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetStatement {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_statement_input::Builder,
    }
    impl GetStatement {
        /// Creates a new `GetStatement`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetStatement,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetStatementError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetStatementOutput,
            aws_smithy_http::result::SdkError<crate::error::GetStatementError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The Session ID of the statement.</p>
        pub fn session_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.session_id(input.into());
            self
        }
        /// <p>The Session ID of the statement.</p>
        pub fn set_session_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_session_id(input);
            self
        }
        /// <p>The Id of the statement.</p>
        pub fn id(mut self, input: i32) -> Self {
            self.inner = self.inner.id(input);
            self
        }
        /// <p>The Id of the statement.</p>
        pub fn set_id(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_id(input);
            self
        }
        /// <p>The origin of the request.</p>
        pub fn request_origin(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.request_origin(input.into());
            self
        }
        /// <p>The origin of the request.</p>
        pub fn set_request_origin(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_request_origin(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetTable`.
    ///
    /// <p>Retrieves the <code>Table</code> definition in a Data Catalog for a specified table.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetTable {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_table_input::Builder,
    }
    impl GetTable {
        /// Creates a new `GetTable`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetTable,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetTableError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetTableOutput,
            aws_smithy_http::result::SdkError<crate::error::GetTableError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the Data Catalog where the table resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog where the table resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The name of the database in the catalog in which the table resides. For Hive compatibility, this name is entirely lowercase.</p>
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        /// <p>The name of the database in the catalog in which the table resides. For Hive compatibility, this name is entirely lowercase.</p>
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        /// <p>The name of the table for which to retrieve the definition. For Hive compatibility, this name is entirely lowercase.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The name of the table for which to retrieve the definition. For Hive compatibility, this name is entirely lowercase.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
        /// <p>The transaction ID at which to read the table contents. </p>
        pub fn transaction_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.transaction_id(input.into());
            self
        }
        /// <p>The transaction ID at which to read the table contents. </p>
        pub fn set_transaction_id(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_transaction_id(input);
            self
        }
        /// <p>The time as of when to read the table contents. If not set, the most recent transaction commit time will be used. Cannot be specified along with <code>TransactionId</code>.</p>
        pub fn query_as_of_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.inner = self.inner.query_as_of_time(input);
            self
        }
        /// <p>The time as of when to read the table contents. If not set, the most recent transaction commit time will be used. Cannot be specified along with <code>TransactionId</code>.</p>
        pub fn set_query_as_of_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.inner = self.inner.set_query_as_of_time(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetTables`.
    ///
    /// <p>Retrieves the definitions of some or all of the tables in a given <code>Database</code>.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetTables {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_tables_input::Builder,
    }
    impl GetTables {
        /// Creates a new `GetTables`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetTables,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetTablesError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetTablesOutput,
            aws_smithy_http::result::SdkError<crate::error::GetTablesError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::GetTablesPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::GetTablesPaginator {
            crate::paginator::GetTablesPaginator::new(self.handle, self.inner)
        }
        /// <p>The ID of the Data Catalog where the tables reside. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog where the tables reside. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The database in the catalog whose tables to list. For Hive compatibility, this name is entirely lowercase.</p>
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        /// <p>The database in the catalog whose tables to list. For Hive compatibility, this name is entirely lowercase.</p>
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        /// <p>A regular expression pattern. If present, only those tables whose names match the pattern are returned.</p>
        pub fn expression(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.expression(input.into());
            self
        }
        /// <p>A regular expression pattern. If present, only those tables whose names match the pattern are returned.</p>
        pub fn set_expression(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_expression(input);
            self
        }
        /// <p>A continuation token, included if this is a continuation call.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A continuation token, included if this is a continuation call.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
        /// <p>The maximum number of tables to return in a single response.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum number of tables to return in a single response.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
        /// <p>The transaction ID at which to read the table contents.</p>
        pub fn transaction_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.transaction_id(input.into());
            self
        }
        /// <p>The transaction ID at which to read the table contents.</p>
        pub fn set_transaction_id(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_transaction_id(input);
            self
        }
        /// <p>The time as of when to read the table contents. If not set, the most recent transaction commit time will be used. Cannot be specified along with <code>TransactionId</code>.</p>
        pub fn query_as_of_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.inner = self.inner.query_as_of_time(input);
            self
        }
        /// <p>The time as of when to read the table contents. If not set, the most recent transaction commit time will be used. Cannot be specified along with <code>TransactionId</code>.</p>
        pub fn set_query_as_of_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.inner = self.inner.set_query_as_of_time(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetTableVersion`.
    ///
    /// <p>Retrieves a specified version of a table.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetTableVersion {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_table_version_input::Builder,
    }
    impl GetTableVersion {
        /// Creates a new `GetTableVersion`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetTableVersion,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetTableVersionError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetTableVersionOutput,
            aws_smithy_http::result::SdkError<crate::error::GetTableVersionError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the Data Catalog where the tables reside. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog where the tables reside. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The database in the catalog in which the table resides. For Hive compatibility, this name is entirely lowercase.</p>
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        /// <p>The database in the catalog in which the table resides. For Hive compatibility, this name is entirely lowercase.</p>
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        /// <p>The name of the table. For Hive compatibility, this name is entirely lowercase.</p>
        pub fn table_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.table_name(input.into());
            self
        }
        /// <p>The name of the table. For Hive compatibility, this name is entirely lowercase.</p>
        pub fn set_table_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_table_name(input);
            self
        }
        /// <p>The ID value of the table version to be retrieved. A <code>VersionID</code> is a string representation of an integer. Each version is incremented by 1. </p>
        pub fn version_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.version_id(input.into());
            self
        }
        /// <p>The ID value of the table version to be retrieved. A <code>VersionID</code> is a string representation of an integer. Each version is incremented by 1. </p>
        pub fn set_version_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_version_id(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetTableVersions`.
    ///
    /// <p>Retrieves a list of strings that identify available versions of a specified table.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetTableVersions {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_table_versions_input::Builder,
    }
    impl GetTableVersions {
        /// Creates a new `GetTableVersions`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetTableVersions,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetTableVersionsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetTableVersionsOutput,
            aws_smithy_http::result::SdkError<crate::error::GetTableVersionsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::GetTableVersionsPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::GetTableVersionsPaginator {
            crate::paginator::GetTableVersionsPaginator::new(self.handle, self.inner)
        }
        /// <p>The ID of the Data Catalog where the tables reside. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog where the tables reside. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The database in the catalog in which the table resides. For Hive compatibility, this name is entirely lowercase.</p>
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        /// <p>The database in the catalog in which the table resides. For Hive compatibility, this name is entirely lowercase.</p>
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        /// <p>The name of the table. For Hive compatibility, this name is entirely lowercase.</p>
        pub fn table_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.table_name(input.into());
            self
        }
        /// <p>The name of the table. For Hive compatibility, this name is entirely lowercase.</p>
        pub fn set_table_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_table_name(input);
            self
        }
        /// <p>A continuation token, if this is not the first call.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A continuation token, if this is not the first call.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
        /// <p>The maximum number of table versions to return in one response.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum number of table versions to return in one response.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetTags`.
    ///
    /// <p>Retrieves a list of tags associated with a resource.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetTags {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_tags_input::Builder,
    }
    impl GetTags {
        /// Creates a new `GetTags`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetTags,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetTagsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetTagsOutput,
            aws_smithy_http::result::SdkError<crate::error::GetTagsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The Amazon Resource Name (ARN) of the resource for which to retrieve tags.</p>
        pub fn resource_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.resource_arn(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the resource for which to retrieve tags.</p>
        pub fn set_resource_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_resource_arn(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetTrigger`.
    ///
    /// <p>Retrieves the definition of a trigger.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetTrigger {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_trigger_input::Builder,
    }
    impl GetTrigger {
        /// Creates a new `GetTrigger`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetTrigger,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetTriggerError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetTriggerOutput,
            aws_smithy_http::result::SdkError<crate::error::GetTriggerError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the trigger to retrieve.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The name of the trigger to retrieve.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetTriggers`.
    ///
    /// <p>Gets all the triggers associated with a job.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetTriggers {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_triggers_input::Builder,
    }
    impl GetTriggers {
        /// Creates a new `GetTriggers`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetTriggers,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetTriggersError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetTriggersOutput,
            aws_smithy_http::result::SdkError<crate::error::GetTriggersError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::GetTriggersPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::GetTriggersPaginator {
            crate::paginator::GetTriggersPaginator::new(self.handle, self.inner)
        }
        /// <p>A continuation token, if this is a continuation call.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A continuation token, if this is a continuation call.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
        /// <p>The name of the job to retrieve triggers for. The trigger that can start this job is returned, and if there is no such trigger, all triggers are returned.</p>
        pub fn dependent_job_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.dependent_job_name(input.into());
            self
        }
        /// <p>The name of the job to retrieve triggers for. The trigger that can start this job is returned, and if there is no such trigger, all triggers are returned.</p>
        pub fn set_dependent_job_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_dependent_job_name(input);
            self
        }
        /// <p>The maximum size of the response.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum size of the response.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetUnfilteredPartitionMetadata`.
    ///
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetUnfilteredPartitionMetadata {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_unfiltered_partition_metadata_input::Builder,
    }
    impl GetUnfilteredPartitionMetadata {
        /// Creates a new `GetUnfilteredPartitionMetadata`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetUnfilteredPartitionMetadata,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetUnfilteredPartitionMetadataError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetUnfilteredPartitionMetadataOutput,
            aws_smithy_http::result::SdkError<crate::error::GetUnfilteredPartitionMetadataError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        #[allow(missing_docs)] // documentation missing in model
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        #[allow(missing_docs)] // documentation missing in model
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        #[allow(missing_docs)] // documentation missing in model
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        #[allow(missing_docs)] // documentation missing in model
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        #[allow(missing_docs)] // documentation missing in model
        pub fn table_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.table_name(input.into());
            self
        }
        #[allow(missing_docs)] // documentation missing in model
        pub fn set_table_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_table_name(input);
            self
        }
        /// Appends an item to `PartitionValues`.
        ///
        /// To override the contents of this collection use [`set_partition_values`](Self::set_partition_values).
        ///
        #[allow(missing_docs)] // documentation missing in model
        pub fn partition_values(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.partition_values(input.into());
            self
        }
        #[allow(missing_docs)] // documentation missing in model
        pub fn set_partition_values(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.inner = self.inner.set_partition_values(input);
            self
        }
        /// <p>A structure containing information for audit.</p>
        pub fn audit_context(mut self, input: crate::model::AuditContext) -> Self {
            self.inner = self.inner.audit_context(input);
            self
        }
        /// <p>A structure containing information for audit.</p>
        pub fn set_audit_context(
            mut self,
            input: std::option::Option<crate::model::AuditContext>,
        ) -> Self {
            self.inner = self.inner.set_audit_context(input);
            self
        }
        /// Appends an item to `SupportedPermissionTypes`.
        ///
        /// To override the contents of this collection use [`set_supported_permission_types`](Self::set_supported_permission_types).
        ///
        #[allow(missing_docs)] // documentation missing in model
        pub fn supported_permission_types(mut self, input: crate::model::PermissionType) -> Self {
            self.inner = self.inner.supported_permission_types(input);
            self
        }
        #[allow(missing_docs)] // documentation missing in model
        pub fn set_supported_permission_types(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::PermissionType>>,
        ) -> Self {
            self.inner = self.inner.set_supported_permission_types(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetUnfilteredPartitionsMetadata`.
    ///
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetUnfilteredPartitionsMetadata {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_unfiltered_partitions_metadata_input::Builder,
    }
    impl GetUnfilteredPartitionsMetadata {
        /// Creates a new `GetUnfilteredPartitionsMetadata`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetUnfilteredPartitionsMetadata,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetUnfilteredPartitionsMetadataError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetUnfilteredPartitionsMetadataOutput,
            aws_smithy_http::result::SdkError<crate::error::GetUnfilteredPartitionsMetadataError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::GetUnfilteredPartitionsMetadataPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::GetUnfilteredPartitionsMetadataPaginator {
            crate::paginator::GetUnfilteredPartitionsMetadataPaginator::new(self.handle, self.inner)
        }
        #[allow(missing_docs)] // documentation missing in model
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        #[allow(missing_docs)] // documentation missing in model
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        #[allow(missing_docs)] // documentation missing in model
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        #[allow(missing_docs)] // documentation missing in model
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        #[allow(missing_docs)] // documentation missing in model
        pub fn table_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.table_name(input.into());
            self
        }
        #[allow(missing_docs)] // documentation missing in model
        pub fn set_table_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_table_name(input);
            self
        }
        #[allow(missing_docs)] // documentation missing in model
        pub fn expression(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.expression(input.into());
            self
        }
        #[allow(missing_docs)] // documentation missing in model
        pub fn set_expression(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_expression(input);
            self
        }
        /// <p>A structure containing information for audit.</p>
        pub fn audit_context(mut self, input: crate::model::AuditContext) -> Self {
            self.inner = self.inner.audit_context(input);
            self
        }
        /// <p>A structure containing information for audit.</p>
        pub fn set_audit_context(
            mut self,
            input: std::option::Option<crate::model::AuditContext>,
        ) -> Self {
            self.inner = self.inner.set_audit_context(input);
            self
        }
        /// Appends an item to `SupportedPermissionTypes`.
        ///
        /// To override the contents of this collection use [`set_supported_permission_types`](Self::set_supported_permission_types).
        ///
        #[allow(missing_docs)] // documentation missing in model
        pub fn supported_permission_types(mut self, input: crate::model::PermissionType) -> Self {
            self.inner = self.inner.supported_permission_types(input);
            self
        }
        #[allow(missing_docs)] // documentation missing in model
        pub fn set_supported_permission_types(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::PermissionType>>,
        ) -> Self {
            self.inner = self.inner.set_supported_permission_types(input);
            self
        }
        #[allow(missing_docs)] // documentation missing in model
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        #[allow(missing_docs)] // documentation missing in model
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
        /// <p>Defines a non-overlapping region of a table's partitions, allowing multiple requests to be run in parallel.</p>
        pub fn segment(mut self, input: crate::model::Segment) -> Self {
            self.inner = self.inner.segment(input);
            self
        }
        /// <p>Defines a non-overlapping region of a table's partitions, allowing multiple requests to be run in parallel.</p>
        pub fn set_segment(mut self, input: std::option::Option<crate::model::Segment>) -> Self {
            self.inner = self.inner.set_segment(input);
            self
        }
        #[allow(missing_docs)] // documentation missing in model
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        #[allow(missing_docs)] // documentation missing in model
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetUnfilteredTableMetadata`.
    ///
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetUnfilteredTableMetadata {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_unfiltered_table_metadata_input::Builder,
    }
    impl GetUnfilteredTableMetadata {
        /// Creates a new `GetUnfilteredTableMetadata`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetUnfilteredTableMetadata,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetUnfilteredTableMetadataError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetUnfilteredTableMetadataOutput,
            aws_smithy_http::result::SdkError<crate::error::GetUnfilteredTableMetadataError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        #[allow(missing_docs)] // documentation missing in model
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        #[allow(missing_docs)] // documentation missing in model
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        #[allow(missing_docs)] // documentation missing in model
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        #[allow(missing_docs)] // documentation missing in model
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        #[allow(missing_docs)] // documentation missing in model
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        #[allow(missing_docs)] // documentation missing in model
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
        /// <p>A structure containing information for audit.</p>
        pub fn audit_context(mut self, input: crate::model::AuditContext) -> Self {
            self.inner = self.inner.audit_context(input);
            self
        }
        /// <p>A structure containing information for audit.</p>
        pub fn set_audit_context(
            mut self,
            input: std::option::Option<crate::model::AuditContext>,
        ) -> Self {
            self.inner = self.inner.set_audit_context(input);
            self
        }
        /// Appends an item to `SupportedPermissionTypes`.
        ///
        /// To override the contents of this collection use [`set_supported_permission_types`](Self::set_supported_permission_types).
        ///
        #[allow(missing_docs)] // documentation missing in model
        pub fn supported_permission_types(mut self, input: crate::model::PermissionType) -> Self {
            self.inner = self.inner.supported_permission_types(input);
            self
        }
        #[allow(missing_docs)] // documentation missing in model
        pub fn set_supported_permission_types(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::PermissionType>>,
        ) -> Self {
            self.inner = self.inner.set_supported_permission_types(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetUserDefinedFunction`.
    ///
    /// <p>Retrieves a specified function definition from the Data Catalog.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetUserDefinedFunction {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_user_defined_function_input::Builder,
    }
    impl GetUserDefinedFunction {
        /// Creates a new `GetUserDefinedFunction`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetUserDefinedFunction,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetUserDefinedFunctionError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetUserDefinedFunctionOutput,
            aws_smithy_http::result::SdkError<crate::error::GetUserDefinedFunctionError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the Data Catalog where the function to be retrieved is located. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog where the function to be retrieved is located. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The name of the catalog database where the function is located.</p>
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        /// <p>The name of the catalog database where the function is located.</p>
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        /// <p>The name of the function.</p>
        pub fn function_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.function_name(input.into());
            self
        }
        /// <p>The name of the function.</p>
        pub fn set_function_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_function_name(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetUserDefinedFunctions`.
    ///
    /// <p>Retrieves multiple function definitions from the Data Catalog.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetUserDefinedFunctions {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_user_defined_functions_input::Builder,
    }
    impl GetUserDefinedFunctions {
        /// Creates a new `GetUserDefinedFunctions`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetUserDefinedFunctions,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetUserDefinedFunctionsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetUserDefinedFunctionsOutput,
            aws_smithy_http::result::SdkError<crate::error::GetUserDefinedFunctionsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::GetUserDefinedFunctionsPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::GetUserDefinedFunctionsPaginator {
            crate::paginator::GetUserDefinedFunctionsPaginator::new(self.handle, self.inner)
        }
        /// <p>The ID of the Data Catalog where the functions to be retrieved are located. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog where the functions to be retrieved are located. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The name of the catalog database where the functions are located. If none is provided, functions from all the databases across the catalog will be returned.</p>
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        /// <p>The name of the catalog database where the functions are located. If none is provided, functions from all the databases across the catalog will be returned.</p>
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        /// <p>An optional function-name pattern string that filters the function definitions returned.</p>
        pub fn pattern(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.pattern(input.into());
            self
        }
        /// <p>An optional function-name pattern string that filters the function definitions returned.</p>
        pub fn set_pattern(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_pattern(input);
            self
        }
        /// <p>A continuation token, if this is a continuation call.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A continuation token, if this is a continuation call.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
        /// <p>The maximum number of functions to return in one response.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum number of functions to return in one response.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetWorkflow`.
    ///
    /// <p>Retrieves resource metadata for a workflow.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetWorkflow {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_workflow_input::Builder,
    }
    impl GetWorkflow {
        /// Creates a new `GetWorkflow`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetWorkflow,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetWorkflowError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetWorkflowOutput,
            aws_smithy_http::result::SdkError<crate::error::GetWorkflowError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the workflow to retrieve.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The name of the workflow to retrieve.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
        /// <p>Specifies whether to include a graph when returning the workflow resource metadata.</p>
        pub fn include_graph(mut self, input: bool) -> Self {
            self.inner = self.inner.include_graph(input);
            self
        }
        /// <p>Specifies whether to include a graph when returning the workflow resource metadata.</p>
        pub fn set_include_graph(mut self, input: std::option::Option<bool>) -> Self {
            self.inner = self.inner.set_include_graph(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetWorkflowRun`.
    ///
    /// <p>Retrieves the metadata for a given workflow run. </p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetWorkflowRun {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_workflow_run_input::Builder,
    }
    impl GetWorkflowRun {
        /// Creates a new `GetWorkflowRun`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetWorkflowRun,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetWorkflowRunError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetWorkflowRunOutput,
            aws_smithy_http::result::SdkError<crate::error::GetWorkflowRunError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>Name of the workflow being run.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>Name of the workflow being run.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
        /// <p>The ID of the workflow run.</p>
        pub fn run_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.run_id(input.into());
            self
        }
        /// <p>The ID of the workflow run.</p>
        pub fn set_run_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_run_id(input);
            self
        }
        /// <p>Specifies whether to include the workflow graph in response or not.</p>
        pub fn include_graph(mut self, input: bool) -> Self {
            self.inner = self.inner.include_graph(input);
            self
        }
        /// <p>Specifies whether to include the workflow graph in response or not.</p>
        pub fn set_include_graph(mut self, input: std::option::Option<bool>) -> Self {
            self.inner = self.inner.set_include_graph(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetWorkflowRunProperties`.
    ///
    /// <p>Retrieves the workflow run properties which were set during the run.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetWorkflowRunProperties {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_workflow_run_properties_input::Builder,
    }
    impl GetWorkflowRunProperties {
        /// Creates a new `GetWorkflowRunProperties`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetWorkflowRunProperties,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetWorkflowRunPropertiesError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetWorkflowRunPropertiesOutput,
            aws_smithy_http::result::SdkError<crate::error::GetWorkflowRunPropertiesError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>Name of the workflow which was run.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>Name of the workflow which was run.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
        /// <p>The ID of the workflow run whose run properties should be returned.</p>
        pub fn run_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.run_id(input.into());
            self
        }
        /// <p>The ID of the workflow run whose run properties should be returned.</p>
        pub fn set_run_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_run_id(input);
            self
        }
    }
    /// Fluent builder constructing a request to `GetWorkflowRuns`.
    ///
    /// <p>Retrieves metadata for all runs of a given workflow.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct GetWorkflowRuns {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::get_workflow_runs_input::Builder,
    }
    impl GetWorkflowRuns {
        /// Creates a new `GetWorkflowRuns`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::GetWorkflowRuns,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::GetWorkflowRunsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::GetWorkflowRunsOutput,
            aws_smithy_http::result::SdkError<crate::error::GetWorkflowRunsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::GetWorkflowRunsPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::GetWorkflowRunsPaginator {
            crate::paginator::GetWorkflowRunsPaginator::new(self.handle, self.inner)
        }
        /// <p>Name of the workflow whose metadata of runs should be returned.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>Name of the workflow whose metadata of runs should be returned.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
        /// <p>Specifies whether to include the workflow graph in response or not.</p>
        pub fn include_graph(mut self, input: bool) -> Self {
            self.inner = self.inner.include_graph(input);
            self
        }
        /// <p>Specifies whether to include the workflow graph in response or not.</p>
        pub fn set_include_graph(mut self, input: std::option::Option<bool>) -> Self {
            self.inner = self.inner.set_include_graph(input);
            self
        }
        /// <p>The maximum size of the response.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>The maximum size of the response.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
        /// <p>The maximum number of workflow runs to be included in the response.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum number of workflow runs to be included in the response.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
    }
    /// Fluent builder constructing a request to `ImportCatalogToGlue`.
    ///
    /// <p>Imports an existing Amazon Athena Data Catalog to Glue.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct ImportCatalogToGlue {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::import_catalog_to_glue_input::Builder,
    }
    impl ImportCatalogToGlue {
        /// Creates a new `ImportCatalogToGlue`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::ImportCatalogToGlue,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::ImportCatalogToGlueError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::ImportCatalogToGlueOutput,
            aws_smithy_http::result::SdkError<crate::error::ImportCatalogToGlueError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the catalog to import. Currently, this should be the Amazon Web Services account ID.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the catalog to import. Currently, this should be the Amazon Web Services account ID.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
    }
    /// Fluent builder constructing a request to `ListBlueprints`.
    ///
    /// <p>Lists all the blueprint names in an account.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct ListBlueprints {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::list_blueprints_input::Builder,
    }
    impl ListBlueprints {
        /// Creates a new `ListBlueprints`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::ListBlueprints,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::ListBlueprintsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::ListBlueprintsOutput,
            aws_smithy_http::result::SdkError<crate::error::ListBlueprintsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::ListBlueprintsPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::ListBlueprintsPaginator {
            crate::paginator::ListBlueprintsPaginator::new(self.handle, self.inner)
        }
        /// <p>A continuation token, if this is a continuation request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A continuation token, if this is a continuation request.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
        /// <p>The maximum size of a list to return.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum size of a list to return.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
        /// Adds a key-value pair to `Tags`.
        ///
        /// To override the contents of this collection use [`set_tags`](Self::set_tags).
        ///
        /// <p>Filters the list by an Amazon Web Services resource tag.</p>
        pub fn tags(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.tags(k.into(), v.into());
            self
        }
        /// <p>Filters the list by an Amazon Web Services resource tag.</p>
        pub fn set_tags(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.inner = self.inner.set_tags(input);
            self
        }
    }
    /// Fluent builder constructing a request to `ListCrawlers`.
    ///
    /// <p>Retrieves the names of all crawler resources in this Amazon Web Services account, or the resources with the specified tag. This operation allows you to see which resources are available in your account, and their names.</p>
    /// <p>This operation takes the optional <code>Tags</code> field, which you can use as a filter on the response so that tagged resources can be retrieved as a group. If you choose to use tags filtering, only resources with the tag are retrieved.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct ListCrawlers {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::list_crawlers_input::Builder,
    }
    impl ListCrawlers {
        /// Creates a new `ListCrawlers`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::ListCrawlers,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::ListCrawlersError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::ListCrawlersOutput,
            aws_smithy_http::result::SdkError<crate::error::ListCrawlersError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::ListCrawlersPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::ListCrawlersPaginator {
            crate::paginator::ListCrawlersPaginator::new(self.handle, self.inner)
        }
        /// <p>The maximum size of a list to return.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum size of a list to return.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
        /// <p>A continuation token, if this is a continuation request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A continuation token, if this is a continuation request.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
        /// Adds a key-value pair to `Tags`.
        ///
        /// To override the contents of this collection use [`set_tags`](Self::set_tags).
        ///
        /// <p>Specifies to return only these tagged resources.</p>
        pub fn tags(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.tags(k.into(), v.into());
            self
        }
        /// <p>Specifies to return only these tagged resources.</p>
        pub fn set_tags(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.inner = self.inner.set_tags(input);
            self
        }
    }
    /// Fluent builder constructing a request to `ListCrawls`.
    ///
    /// <p>Returns all the crawls of a specified crawler. Returns only the crawls that have occurred since the launch date of the crawler history feature, and only retains up to 12 months of crawls. Older crawls will not be returned.</p>
    /// <p>You may use this API to:</p>
    /// <ul>
    /// <li> <p>Retrive all the crawls of a specified crawler.</p> </li>
    /// <li> <p>Retrieve all the crawls of a specified crawler within a limited count.</p> </li>
    /// <li> <p>Retrieve all the crawls of a specified crawler in a specific time range.</p> </li>
    /// <li> <p>Retrieve all the crawls of a specified crawler with a particular state, crawl ID, or DPU hour value.</p> </li>
    /// </ul>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct ListCrawls {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::list_crawls_input::Builder,
    }
    impl ListCrawls {
        /// Creates a new `ListCrawls`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::ListCrawls,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::ListCrawlsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::ListCrawlsOutput,
            aws_smithy_http::result::SdkError<crate::error::ListCrawlsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the crawler whose runs you want to retrieve.</p>
        pub fn crawler_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.crawler_name(input.into());
            self
        }
        /// <p>The name of the crawler whose runs you want to retrieve.</p>
        pub fn set_crawler_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_crawler_name(input);
            self
        }
        /// <p>The maximum number of results to return. The default is 20, and maximum is 100.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum number of results to return. The default is 20, and maximum is 100.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
        /// Appends an item to `Filters`.
        ///
        /// To override the contents of this collection use [`set_filters`](Self::set_filters).
        ///
        /// <p>Filters the crawls by the criteria you specify in a list of <code>CrawlsFilter</code> objects.</p>
        pub fn filters(mut self, input: crate::model::CrawlsFilter) -> Self {
            self.inner = self.inner.filters(input);
            self
        }
        /// <p>Filters the crawls by the criteria you specify in a list of <code>CrawlsFilter</code> objects.</p>
        pub fn set_filters(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::CrawlsFilter>>,
        ) -> Self {
            self.inner = self.inner.set_filters(input);
            self
        }
        /// <p>A continuation token, if this is a continuation call.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A continuation token, if this is a continuation call.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
    }
    /// Fluent builder constructing a request to `ListCustomEntityTypes`.
    ///
    /// <p>Lists all the custom patterns that have been created.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct ListCustomEntityTypes {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::list_custom_entity_types_input::Builder,
    }
    impl ListCustomEntityTypes {
        /// Creates a new `ListCustomEntityTypes`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::ListCustomEntityTypes,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::ListCustomEntityTypesError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::ListCustomEntityTypesOutput,
            aws_smithy_http::result::SdkError<crate::error::ListCustomEntityTypesError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::ListCustomEntityTypesPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::ListCustomEntityTypesPaginator {
            crate::paginator::ListCustomEntityTypesPaginator::new(self.handle, self.inner)
        }
        /// <p>A paginated token to offset the results.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A paginated token to offset the results.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
        /// <p>The maximum number of results to return.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum number of results to return.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
    }
    /// Fluent builder constructing a request to `ListDataQualityResults`.
    ///
    /// <p>Returns all data quality execution results for your account.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct ListDataQualityResults {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::list_data_quality_results_input::Builder,
    }
    impl ListDataQualityResults {
        /// Creates a new `ListDataQualityResults`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::ListDataQualityResults,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::ListDataQualityResultsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::ListDataQualityResultsOutput,
            aws_smithy_http::result::SdkError<crate::error::ListDataQualityResultsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::ListDataQualityResultsPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::ListDataQualityResultsPaginator {
            crate::paginator::ListDataQualityResultsPaginator::new(self.handle, self.inner)
        }
        /// <p>The filter criteria.</p>
        pub fn filter(mut self, input: crate::model::DataQualityResultFilterCriteria) -> Self {
            self.inner = self.inner.filter(input);
            self
        }
        /// <p>The filter criteria.</p>
        pub fn set_filter(
            mut self,
            input: std::option::Option<crate::model::DataQualityResultFilterCriteria>,
        ) -> Self {
            self.inner = self.inner.set_filter(input);
            self
        }
        /// <p>A paginated token to offset the results.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A paginated token to offset the results.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
        /// <p>The maximum number of results to return.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum number of results to return.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
    }
    /// Fluent builder constructing a request to `ListDataQualityRuleRecommendationRuns`.
    ///
    /// <p>Lists the recommendation runs meeting the filter criteria.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct ListDataQualityRuleRecommendationRuns {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::list_data_quality_rule_recommendation_runs_input::Builder,
    }
    impl ListDataQualityRuleRecommendationRuns {
        /// Creates a new `ListDataQualityRuleRecommendationRuns`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::ListDataQualityRuleRecommendationRuns,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<
                crate::error::ListDataQualityRuleRecommendationRunsError,
            >,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::ListDataQualityRuleRecommendationRunsOutput,
            aws_smithy_http::result::SdkError<
                crate::error::ListDataQualityRuleRecommendationRunsError,
            >,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::ListDataQualityRuleRecommendationRunsPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(
            self,
        ) -> crate::paginator::ListDataQualityRuleRecommendationRunsPaginator {
            crate::paginator::ListDataQualityRuleRecommendationRunsPaginator::new(
                self.handle,
                self.inner,
            )
        }
        /// <p>The filter criteria.</p>
        pub fn filter(
            mut self,
            input: crate::model::DataQualityRuleRecommendationRunFilter,
        ) -> Self {
            self.inner = self.inner.filter(input);
            self
        }
        /// <p>The filter criteria.</p>
        pub fn set_filter(
            mut self,
            input: std::option::Option<crate::model::DataQualityRuleRecommendationRunFilter>,
        ) -> Self {
            self.inner = self.inner.set_filter(input);
            self
        }
        /// <p>A paginated token to offset the results.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A paginated token to offset the results.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
        /// <p>The maximum number of results to return.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum number of results to return.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
    }
    /// Fluent builder constructing a request to `ListDataQualityRulesetEvaluationRuns`.
    ///
    /// <p>Lists all the runs meeting the filter criteria, where a ruleset is evaluated against a data source.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct ListDataQualityRulesetEvaluationRuns {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::list_data_quality_ruleset_evaluation_runs_input::Builder,
    }
    impl ListDataQualityRulesetEvaluationRuns {
        /// Creates a new `ListDataQualityRulesetEvaluationRuns`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::ListDataQualityRulesetEvaluationRuns,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<
                crate::error::ListDataQualityRulesetEvaluationRunsError,
            >,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::ListDataQualityRulesetEvaluationRunsOutput,
            aws_smithy_http::result::SdkError<
                crate::error::ListDataQualityRulesetEvaluationRunsError,
            >,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::ListDataQualityRulesetEvaluationRunsPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(
            self,
        ) -> crate::paginator::ListDataQualityRulesetEvaluationRunsPaginator {
            crate::paginator::ListDataQualityRulesetEvaluationRunsPaginator::new(
                self.handle,
                self.inner,
            )
        }
        /// <p>The filter criteria.</p>
        pub fn filter(
            mut self,
            input: crate::model::DataQualityRulesetEvaluationRunFilter,
        ) -> Self {
            self.inner = self.inner.filter(input);
            self
        }
        /// <p>The filter criteria.</p>
        pub fn set_filter(
            mut self,
            input: std::option::Option<crate::model::DataQualityRulesetEvaluationRunFilter>,
        ) -> Self {
            self.inner = self.inner.set_filter(input);
            self
        }
        /// <p>A paginated token to offset the results.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A paginated token to offset the results.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
        /// <p>The maximum number of results to return.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum number of results to return.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
    }
    /// Fluent builder constructing a request to `ListDataQualityRulesets`.
    ///
    /// <p>Returns a paginated list of rulesets for the specified list of Glue tables.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct ListDataQualityRulesets {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::list_data_quality_rulesets_input::Builder,
    }
    impl ListDataQualityRulesets {
        /// Creates a new `ListDataQualityRulesets`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::ListDataQualityRulesets,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::ListDataQualityRulesetsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::ListDataQualityRulesetsOutput,
            aws_smithy_http::result::SdkError<crate::error::ListDataQualityRulesetsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::ListDataQualityRulesetsPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::ListDataQualityRulesetsPaginator {
            crate::paginator::ListDataQualityRulesetsPaginator::new(self.handle, self.inner)
        }
        /// <p>A paginated token to offset the results.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A paginated token to offset the results.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
        /// <p>The maximum number of results to return.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum number of results to return.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
        /// <p>The filter criteria. </p>
        pub fn filter(mut self, input: crate::model::DataQualityRulesetFilterCriteria) -> Self {
            self.inner = self.inner.filter(input);
            self
        }
        /// <p>The filter criteria. </p>
        pub fn set_filter(
            mut self,
            input: std::option::Option<crate::model::DataQualityRulesetFilterCriteria>,
        ) -> Self {
            self.inner = self.inner.set_filter(input);
            self
        }
        /// Adds a key-value pair to `Tags`.
        ///
        /// To override the contents of this collection use [`set_tags`](Self::set_tags).
        ///
        /// <p>A list of key-value pair tags.</p>
        pub fn tags(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.tags(k.into(), v.into());
            self
        }
        /// <p>A list of key-value pair tags.</p>
        pub fn set_tags(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.inner = self.inner.set_tags(input);
            self
        }
    }
    /// Fluent builder constructing a request to `ListDevEndpoints`.
    ///
    /// <p>Retrieves the names of all <code>DevEndpoint</code> resources in this Amazon Web Services account, or the resources with the specified tag. This operation allows you to see which resources are available in your account, and their names.</p>
    /// <p>This operation takes the optional <code>Tags</code> field, which you can use as a filter on the response so that tagged resources can be retrieved as a group. If you choose to use tags filtering, only resources with the tag are retrieved.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct ListDevEndpoints {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::list_dev_endpoints_input::Builder,
    }
    impl ListDevEndpoints {
        /// Creates a new `ListDevEndpoints`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::ListDevEndpoints,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::ListDevEndpointsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::ListDevEndpointsOutput,
            aws_smithy_http::result::SdkError<crate::error::ListDevEndpointsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::ListDevEndpointsPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::ListDevEndpointsPaginator {
            crate::paginator::ListDevEndpointsPaginator::new(self.handle, self.inner)
        }
        /// <p>A continuation token, if this is a continuation request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A continuation token, if this is a continuation request.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
        /// <p>The maximum size of a list to return.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum size of a list to return.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
        /// Adds a key-value pair to `Tags`.
        ///
        /// To override the contents of this collection use [`set_tags`](Self::set_tags).
        ///
        /// <p>Specifies to return only these tagged resources.</p>
        pub fn tags(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.tags(k.into(), v.into());
            self
        }
        /// <p>Specifies to return only these tagged resources.</p>
        pub fn set_tags(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.inner = self.inner.set_tags(input);
            self
        }
    }
    /// Fluent builder constructing a request to `ListJobs`.
    ///
    /// <p>Retrieves the names of all job resources in this Amazon Web Services account, or the resources with the specified tag. This operation allows you to see which resources are available in your account, and their names.</p>
    /// <p>This operation takes the optional <code>Tags</code> field, which you can use as a filter on the response so that tagged resources can be retrieved as a group. If you choose to use tags filtering, only resources with the tag are retrieved.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct ListJobs {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::list_jobs_input::Builder,
    }
    impl ListJobs {
        /// Creates a new `ListJobs`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::ListJobs,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::ListJobsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::ListJobsOutput,
            aws_smithy_http::result::SdkError<crate::error::ListJobsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::ListJobsPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::ListJobsPaginator {
            crate::paginator::ListJobsPaginator::new(self.handle, self.inner)
        }
        /// <p>A continuation token, if this is a continuation request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A continuation token, if this is a continuation request.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
        /// <p>The maximum size of a list to return.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum size of a list to return.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
        /// Adds a key-value pair to `Tags`.
        ///
        /// To override the contents of this collection use [`set_tags`](Self::set_tags).
        ///
        /// <p>Specifies to return only these tagged resources.</p>
        pub fn tags(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.tags(k.into(), v.into());
            self
        }
        /// <p>Specifies to return only these tagged resources.</p>
        pub fn set_tags(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.inner = self.inner.set_tags(input);
            self
        }
    }
    /// Fluent builder constructing a request to `ListMLTransforms`.
    ///
    /// <p> Retrieves a sortable, filterable list of existing Glue machine learning transforms in this Amazon Web Services account, or the resources with the specified tag. This operation takes the optional <code>Tags</code> field, which you can use as a filter of the responses so that tagged resources can be retrieved as a group. If you choose to use tag filtering, only resources with the tags are retrieved. </p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct ListMLTransforms {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::list_ml_transforms_input::Builder,
    }
    impl ListMLTransforms {
        /// Creates a new `ListMLTransforms`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::ListMLTransforms,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::ListMLTransformsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::ListMlTransformsOutput,
            aws_smithy_http::result::SdkError<crate::error::ListMLTransformsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::ListMlTransformsPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::ListMlTransformsPaginator {
            crate::paginator::ListMlTransformsPaginator::new(self.handle, self.inner)
        }
        /// <p>A continuation token, if this is a continuation request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A continuation token, if this is a continuation request.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
        /// <p>The maximum size of a list to return.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum size of a list to return.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
        /// <p>A <code>TransformFilterCriteria</code> used to filter the machine learning transforms.</p>
        pub fn filter(mut self, input: crate::model::TransformFilterCriteria) -> Self {
            self.inner = self.inner.filter(input);
            self
        }
        /// <p>A <code>TransformFilterCriteria</code> used to filter the machine learning transforms.</p>
        pub fn set_filter(
            mut self,
            input: std::option::Option<crate::model::TransformFilterCriteria>,
        ) -> Self {
            self.inner = self.inner.set_filter(input);
            self
        }
        /// <p>A <code>TransformSortCriteria</code> used to sort the machine learning transforms.</p>
        pub fn sort(mut self, input: crate::model::TransformSortCriteria) -> Self {
            self.inner = self.inner.sort(input);
            self
        }
        /// <p>A <code>TransformSortCriteria</code> used to sort the machine learning transforms.</p>
        pub fn set_sort(
            mut self,
            input: std::option::Option<crate::model::TransformSortCriteria>,
        ) -> Self {
            self.inner = self.inner.set_sort(input);
            self
        }
        /// Adds a key-value pair to `Tags`.
        ///
        /// To override the contents of this collection use [`set_tags`](Self::set_tags).
        ///
        /// <p>Specifies to return only these tagged resources.</p>
        pub fn tags(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.tags(k.into(), v.into());
            self
        }
        /// <p>Specifies to return only these tagged resources.</p>
        pub fn set_tags(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.inner = self.inner.set_tags(input);
            self
        }
    }
    /// Fluent builder constructing a request to `ListRegistries`.
    ///
    /// <p>Returns a list of registries that you have created, with minimal registry information. Registries in the <code>Deleting</code> status will not be included in the results. Empty results will be returned if there are no registries available.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct ListRegistries {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::list_registries_input::Builder,
    }
    impl ListRegistries {
        /// Creates a new `ListRegistries`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::ListRegistries,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::ListRegistriesError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::ListRegistriesOutput,
            aws_smithy_http::result::SdkError<crate::error::ListRegistriesError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::ListRegistriesPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::ListRegistriesPaginator {
            crate::paginator::ListRegistriesPaginator::new(self.handle, self.inner)
        }
        /// <p>Maximum number of results required per page. If the value is not supplied, this will be defaulted to 25 per page.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>Maximum number of results required per page. If the value is not supplied, this will be defaulted to 25 per page.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
        /// <p>A continuation token, if this is a continuation call.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A continuation token, if this is a continuation call.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
    }
    /// Fluent builder constructing a request to `ListSchemas`.
    ///
    /// <p>Returns a list of schemas with minimal details. Schemas in Deleting status will not be included in the results. Empty results will be returned if there are no schemas available.</p>
    /// <p>When the <code>RegistryId</code> is not provided, all the schemas across registries will be part of the API response.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct ListSchemas {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::list_schemas_input::Builder,
    }
    impl ListSchemas {
        /// Creates a new `ListSchemas`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::ListSchemas,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::ListSchemasError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::ListSchemasOutput,
            aws_smithy_http::result::SdkError<crate::error::ListSchemasError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::ListSchemasPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::ListSchemasPaginator {
            crate::paginator::ListSchemasPaginator::new(self.handle, self.inner)
        }
        /// <p>A wrapper structure that may contain the registry name and Amazon Resource Name (ARN).</p>
        pub fn registry_id(mut self, input: crate::model::RegistryId) -> Self {
            self.inner = self.inner.registry_id(input);
            self
        }
        /// <p>A wrapper structure that may contain the registry name and Amazon Resource Name (ARN).</p>
        pub fn set_registry_id(
            mut self,
            input: std::option::Option<crate::model::RegistryId>,
        ) -> Self {
            self.inner = self.inner.set_registry_id(input);
            self
        }
        /// <p>Maximum number of results required per page. If the value is not supplied, this will be defaulted to 25 per page.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>Maximum number of results required per page. If the value is not supplied, this will be defaulted to 25 per page.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
        /// <p>A continuation token, if this is a continuation call.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A continuation token, if this is a continuation call.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
    }
    /// Fluent builder constructing a request to `ListSchemaVersions`.
    ///
    /// <p>Returns a list of schema versions that you have created, with minimal information. Schema versions in Deleted status will not be included in the results. Empty results will be returned if there are no schema versions available.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct ListSchemaVersions {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::list_schema_versions_input::Builder,
    }
    impl ListSchemaVersions {
        /// Creates a new `ListSchemaVersions`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::ListSchemaVersions,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::ListSchemaVersionsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::ListSchemaVersionsOutput,
            aws_smithy_http::result::SdkError<crate::error::ListSchemaVersionsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::ListSchemaVersionsPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::ListSchemaVersionsPaginator {
            crate::paginator::ListSchemaVersionsPaginator::new(self.handle, self.inner)
        }
        /// <p>This is a wrapper structure to contain schema identity fields. The structure contains:</p>
        /// <ul>
        /// <li> <p>SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema. Either <code>SchemaArn</code> or <code>SchemaName</code> and <code>RegistryName</code> has to be provided.</p> </li>
        /// <li> <p>SchemaId$SchemaName: The name of the schema. Either <code>SchemaArn</code> or <code>SchemaName</code> and <code>RegistryName</code> has to be provided.</p> </li>
        /// </ul>
        pub fn schema_id(mut self, input: crate::model::SchemaId) -> Self {
            self.inner = self.inner.schema_id(input);
            self
        }
        /// <p>This is a wrapper structure to contain schema identity fields. The structure contains:</p>
        /// <ul>
        /// <li> <p>SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema. Either <code>SchemaArn</code> or <code>SchemaName</code> and <code>RegistryName</code> has to be provided.</p> </li>
        /// <li> <p>SchemaId$SchemaName: The name of the schema. Either <code>SchemaArn</code> or <code>SchemaName</code> and <code>RegistryName</code> has to be provided.</p> </li>
        /// </ul>
        pub fn set_schema_id(mut self, input: std::option::Option<crate::model::SchemaId>) -> Self {
            self.inner = self.inner.set_schema_id(input);
            self
        }
        /// <p>Maximum number of results required per page. If the value is not supplied, this will be defaulted to 25 per page.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>Maximum number of results required per page. If the value is not supplied, this will be defaulted to 25 per page.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
        /// <p>A continuation token, if this is a continuation call.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A continuation token, if this is a continuation call.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
    }
    /// Fluent builder constructing a request to `ListSessions`.
    ///
    /// <p>Retrieve a list of sessions.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct ListSessions {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::list_sessions_input::Builder,
    }
    impl ListSessions {
        /// Creates a new `ListSessions`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::ListSessions,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::ListSessionsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::ListSessionsOutput,
            aws_smithy_http::result::SdkError<crate::error::ListSessionsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::ListSessionsPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::ListSessionsPaginator {
            crate::paginator::ListSessionsPaginator::new(self.handle, self.inner)
        }
        /// <p>The token for the next set of results, or null if there are no more result. </p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>The token for the next set of results, or null if there are no more result. </p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
        /// <p>The maximum number of results. </p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum number of results. </p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
        /// Adds a key-value pair to `Tags`.
        ///
        /// To override the contents of this collection use [`set_tags`](Self::set_tags).
        ///
        /// <p>Tags belonging to the session. </p>
        pub fn tags(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.tags(k.into(), v.into());
            self
        }
        /// <p>Tags belonging to the session. </p>
        pub fn set_tags(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.inner = self.inner.set_tags(input);
            self
        }
        /// <p>The origin of the request. </p>
        pub fn request_origin(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.request_origin(input.into());
            self
        }
        /// <p>The origin of the request. </p>
        pub fn set_request_origin(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_request_origin(input);
            self
        }
    }
    /// Fluent builder constructing a request to `ListStatements`.
    ///
    /// <p>Lists statements for the session.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct ListStatements {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::list_statements_input::Builder,
    }
    impl ListStatements {
        /// Creates a new `ListStatements`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::ListStatements,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::ListStatementsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::ListStatementsOutput,
            aws_smithy_http::result::SdkError<crate::error::ListStatementsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The Session ID of the statements.</p>
        pub fn session_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.session_id(input.into());
            self
        }
        /// <p>The Session ID of the statements.</p>
        pub fn set_session_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_session_id(input);
            self
        }
        /// <p>The origin of the request to list statements.</p>
        pub fn request_origin(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.request_origin(input.into());
            self
        }
        /// <p>The origin of the request to list statements.</p>
        pub fn set_request_origin(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_request_origin(input);
            self
        }
        /// <p>A continuation token, if this is a continuation call.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A continuation token, if this is a continuation call.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
    }
    /// Fluent builder constructing a request to `ListTriggers`.
    ///
    /// <p>Retrieves the names of all trigger resources in this Amazon Web Services account, or the resources with the specified tag. This operation allows you to see which resources are available in your account, and their names.</p>
    /// <p>This operation takes the optional <code>Tags</code> field, which you can use as a filter on the response so that tagged resources can be retrieved as a group. If you choose to use tags filtering, only resources with the tag are retrieved.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct ListTriggers {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::list_triggers_input::Builder,
    }
    impl ListTriggers {
        /// Creates a new `ListTriggers`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::ListTriggers,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::ListTriggersError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::ListTriggersOutput,
            aws_smithy_http::result::SdkError<crate::error::ListTriggersError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::ListTriggersPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::ListTriggersPaginator {
            crate::paginator::ListTriggersPaginator::new(self.handle, self.inner)
        }
        /// <p>A continuation token, if this is a continuation request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A continuation token, if this is a continuation request.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
        /// <p> The name of the job for which to retrieve triggers. The trigger that can start this job is returned. If there is no such trigger, all triggers are returned.</p>
        pub fn dependent_job_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.dependent_job_name(input.into());
            self
        }
        /// <p> The name of the job for which to retrieve triggers. The trigger that can start this job is returned. If there is no such trigger, all triggers are returned.</p>
        pub fn set_dependent_job_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_dependent_job_name(input);
            self
        }
        /// <p>The maximum size of a list to return.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum size of a list to return.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
        /// Adds a key-value pair to `Tags`.
        ///
        /// To override the contents of this collection use [`set_tags`](Self::set_tags).
        ///
        /// <p>Specifies to return only these tagged resources.</p>
        pub fn tags(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.tags(k.into(), v.into());
            self
        }
        /// <p>Specifies to return only these tagged resources.</p>
        pub fn set_tags(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.inner = self.inner.set_tags(input);
            self
        }
    }
    /// Fluent builder constructing a request to `ListWorkflows`.
    ///
    /// <p>Lists names of workflows created in the account.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct ListWorkflows {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::list_workflows_input::Builder,
    }
    impl ListWorkflows {
        /// Creates a new `ListWorkflows`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::ListWorkflows,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::ListWorkflowsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::ListWorkflowsOutput,
            aws_smithy_http::result::SdkError<crate::error::ListWorkflowsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::ListWorkflowsPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::ListWorkflowsPaginator {
            crate::paginator::ListWorkflowsPaginator::new(self.handle, self.inner)
        }
        /// <p>A continuation token, if this is a continuation request.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A continuation token, if this is a continuation request.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
        /// <p>The maximum size of a list to return.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum size of a list to return.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
    }
    /// Fluent builder constructing a request to `PutDataCatalogEncryptionSettings`.
    ///
    /// <p>Sets the security configuration for a specified catalog. After the configuration has been set, the specified encryption is applied to every catalog write thereafter.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct PutDataCatalogEncryptionSettings {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::put_data_catalog_encryption_settings_input::Builder,
    }
    impl PutDataCatalogEncryptionSettings {
        /// Creates a new `PutDataCatalogEncryptionSettings`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::PutDataCatalogEncryptionSettings,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::PutDataCatalogEncryptionSettingsError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::PutDataCatalogEncryptionSettingsOutput,
            aws_smithy_http::result::SdkError<crate::error::PutDataCatalogEncryptionSettingsError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the Data Catalog to set the security configuration for. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog to set the security configuration for. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The security configuration to set.</p>
        pub fn data_catalog_encryption_settings(
            mut self,
            input: crate::model::DataCatalogEncryptionSettings,
        ) -> Self {
            self.inner = self.inner.data_catalog_encryption_settings(input);
            self
        }
        /// <p>The security configuration to set.</p>
        pub fn set_data_catalog_encryption_settings(
            mut self,
            input: std::option::Option<crate::model::DataCatalogEncryptionSettings>,
        ) -> Self {
            self.inner = self.inner.set_data_catalog_encryption_settings(input);
            self
        }
    }
    /// Fluent builder constructing a request to `PutResourcePolicy`.
    ///
    /// <p>Sets the Data Catalog resource policy for access control.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct PutResourcePolicy {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::put_resource_policy_input::Builder,
    }
    impl PutResourcePolicy {
        /// Creates a new `PutResourcePolicy`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::PutResourcePolicy,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::PutResourcePolicyError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::PutResourcePolicyOutput,
            aws_smithy_http::result::SdkError<crate::error::PutResourcePolicyError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>Contains the policy document to set, in JSON format.</p>
        pub fn policy_in_json(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.policy_in_json(input.into());
            self
        }
        /// <p>Contains the policy document to set, in JSON format.</p>
        pub fn set_policy_in_json(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_policy_in_json(input);
            self
        }
        /// <p>Do not use. For internal use only.</p>
        pub fn resource_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.resource_arn(input.into());
            self
        }
        /// <p>Do not use. For internal use only.</p>
        pub fn set_resource_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_resource_arn(input);
            self
        }
        /// <p>The hash value returned when the previous policy was set using <code>PutResourcePolicy</code>. Its purpose is to prevent concurrent modifications of a policy. Do not use this parameter if no previous policy has been set.</p>
        pub fn policy_hash_condition(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.policy_hash_condition(input.into());
            self
        }
        /// <p>The hash value returned when the previous policy was set using <code>PutResourcePolicy</code>. Its purpose is to prevent concurrent modifications of a policy. Do not use this parameter if no previous policy has been set.</p>
        pub fn set_policy_hash_condition(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_policy_hash_condition(input);
            self
        }
        /// <p>A value of <code>MUST_EXIST</code> is used to update a policy. A value of <code>NOT_EXIST</code> is used to create a new policy. If a value of <code>NONE</code> or a null value is used, the call does not depend on the existence of a policy.</p>
        pub fn policy_exists_condition(mut self, input: crate::model::ExistCondition) -> Self {
            self.inner = self.inner.policy_exists_condition(input);
            self
        }
        /// <p>A value of <code>MUST_EXIST</code> is used to update a policy. A value of <code>NOT_EXIST</code> is used to create a new policy. If a value of <code>NONE</code> or a null value is used, the call does not depend on the existence of a policy.</p>
        pub fn set_policy_exists_condition(
            mut self,
            input: std::option::Option<crate::model::ExistCondition>,
        ) -> Self {
            self.inner = self.inner.set_policy_exists_condition(input);
            self
        }
        /// <p>If <code>'TRUE'</code>, indicates that you are using both methods to grant cross-account access to Data Catalog resources:</p>
        /// <ul>
        /// <li> <p>By directly updating the resource policy with <code>PutResourePolicy</code> </p> </li>
        /// <li> <p>By using the <b>Grant permissions</b> command on the Amazon Web Services Management Console.</p> </li>
        /// </ul>
        /// <p>Must be set to <code>'TRUE'</code> if you have already used the Management Console to grant cross-account access, otherwise the call fails. Default is 'FALSE'.</p>
        pub fn enable_hybrid(mut self, input: crate::model::EnableHybridValues) -> Self {
            self.inner = self.inner.enable_hybrid(input);
            self
        }
        /// <p>If <code>'TRUE'</code>, indicates that you are using both methods to grant cross-account access to Data Catalog resources:</p>
        /// <ul>
        /// <li> <p>By directly updating the resource policy with <code>PutResourePolicy</code> </p> </li>
        /// <li> <p>By using the <b>Grant permissions</b> command on the Amazon Web Services Management Console.</p> </li>
        /// </ul>
        /// <p>Must be set to <code>'TRUE'</code> if you have already used the Management Console to grant cross-account access, otherwise the call fails. Default is 'FALSE'.</p>
        pub fn set_enable_hybrid(
            mut self,
            input: std::option::Option<crate::model::EnableHybridValues>,
        ) -> Self {
            self.inner = self.inner.set_enable_hybrid(input);
            self
        }
    }
    /// Fluent builder constructing a request to `PutSchemaVersionMetadata`.
    ///
    /// <p>Puts the metadata key value pair for a specified schema version ID. A maximum of 10 key value pairs will be allowed per schema version. They can be added over one or more calls.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct PutSchemaVersionMetadata {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::put_schema_version_metadata_input::Builder,
    }
    impl PutSchemaVersionMetadata {
        /// Creates a new `PutSchemaVersionMetadata`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::PutSchemaVersionMetadata,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::PutSchemaVersionMetadataError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::PutSchemaVersionMetadataOutput,
            aws_smithy_http::result::SdkError<crate::error::PutSchemaVersionMetadataError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The unique ID for the schema.</p>
        pub fn schema_id(mut self, input: crate::model::SchemaId) -> Self {
            self.inner = self.inner.schema_id(input);
            self
        }
        /// <p>The unique ID for the schema.</p>
        pub fn set_schema_id(mut self, input: std::option::Option<crate::model::SchemaId>) -> Self {
            self.inner = self.inner.set_schema_id(input);
            self
        }
        /// <p>The version number of the schema.</p>
        pub fn schema_version_number(mut self, input: crate::model::SchemaVersionNumber) -> Self {
            self.inner = self.inner.schema_version_number(input);
            self
        }
        /// <p>The version number of the schema.</p>
        pub fn set_schema_version_number(
            mut self,
            input: std::option::Option<crate::model::SchemaVersionNumber>,
        ) -> Self {
            self.inner = self.inner.set_schema_version_number(input);
            self
        }
        /// <p>The unique version ID of the schema version.</p>
        pub fn schema_version_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.schema_version_id(input.into());
            self
        }
        /// <p>The unique version ID of the schema version.</p>
        pub fn set_schema_version_id(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_schema_version_id(input);
            self
        }
        /// <p>The metadata key's corresponding value.</p>
        pub fn metadata_key_value(mut self, input: crate::model::MetadataKeyValuePair) -> Self {
            self.inner = self.inner.metadata_key_value(input);
            self
        }
        /// <p>The metadata key's corresponding value.</p>
        pub fn set_metadata_key_value(
            mut self,
            input: std::option::Option<crate::model::MetadataKeyValuePair>,
        ) -> Self {
            self.inner = self.inner.set_metadata_key_value(input);
            self
        }
    }
    /// Fluent builder constructing a request to `PutWorkflowRunProperties`.
    ///
    /// <p>Puts the specified workflow run properties for the given workflow run. If a property already exists for the specified run, then it overrides the value otherwise adds the property to existing properties.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct PutWorkflowRunProperties {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::put_workflow_run_properties_input::Builder,
    }
    impl PutWorkflowRunProperties {
        /// Creates a new `PutWorkflowRunProperties`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::PutWorkflowRunProperties,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::PutWorkflowRunPropertiesError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::PutWorkflowRunPropertiesOutput,
            aws_smithy_http::result::SdkError<crate::error::PutWorkflowRunPropertiesError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>Name of the workflow which was run.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>Name of the workflow which was run.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
        /// <p>The ID of the workflow run for which the run properties should be updated.</p>
        pub fn run_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.run_id(input.into());
            self
        }
        /// <p>The ID of the workflow run for which the run properties should be updated.</p>
        pub fn set_run_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_run_id(input);
            self
        }
        /// Adds a key-value pair to `RunProperties`.
        ///
        /// To override the contents of this collection use [`set_run_properties`](Self::set_run_properties).
        ///
        /// <p>The properties to put for the specified run.</p>
        pub fn run_properties(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.run_properties(k.into(), v.into());
            self
        }
        /// <p>The properties to put for the specified run.</p>
        pub fn set_run_properties(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.inner = self.inner.set_run_properties(input);
            self
        }
    }
    /// Fluent builder constructing a request to `QuerySchemaVersionMetadata`.
    ///
    /// <p>Queries for the schema version metadata information. </p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct QuerySchemaVersionMetadata {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::query_schema_version_metadata_input::Builder,
    }
    impl QuerySchemaVersionMetadata {
        /// Creates a new `QuerySchemaVersionMetadata`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::QuerySchemaVersionMetadata,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::QuerySchemaVersionMetadataError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::QuerySchemaVersionMetadataOutput,
            aws_smithy_http::result::SdkError<crate::error::QuerySchemaVersionMetadataError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>A wrapper structure that may contain the schema name and Amazon Resource Name (ARN).</p>
        pub fn schema_id(mut self, input: crate::model::SchemaId) -> Self {
            self.inner = self.inner.schema_id(input);
            self
        }
        /// <p>A wrapper structure that may contain the schema name and Amazon Resource Name (ARN).</p>
        pub fn set_schema_id(mut self, input: std::option::Option<crate::model::SchemaId>) -> Self {
            self.inner = self.inner.set_schema_id(input);
            self
        }
        /// <p>The version number of the schema.</p>
        pub fn schema_version_number(mut self, input: crate::model::SchemaVersionNumber) -> Self {
            self.inner = self.inner.schema_version_number(input);
            self
        }
        /// <p>The version number of the schema.</p>
        pub fn set_schema_version_number(
            mut self,
            input: std::option::Option<crate::model::SchemaVersionNumber>,
        ) -> Self {
            self.inner = self.inner.set_schema_version_number(input);
            self
        }
        /// <p>The unique version ID of the schema version.</p>
        pub fn schema_version_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.schema_version_id(input.into());
            self
        }
        /// <p>The unique version ID of the schema version.</p>
        pub fn set_schema_version_id(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_schema_version_id(input);
            self
        }
        /// Appends an item to `MetadataList`.
        ///
        /// To override the contents of this collection use [`set_metadata_list`](Self::set_metadata_list).
        ///
        /// <p>Search key-value pairs for metadata, if they are not provided all the metadata information will be fetched.</p>
        pub fn metadata_list(mut self, input: crate::model::MetadataKeyValuePair) -> Self {
            self.inner = self.inner.metadata_list(input);
            self
        }
        /// <p>Search key-value pairs for metadata, if they are not provided all the metadata information will be fetched.</p>
        pub fn set_metadata_list(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::MetadataKeyValuePair>>,
        ) -> Self {
            self.inner = self.inner.set_metadata_list(input);
            self
        }
        /// <p>Maximum number of results required per page. If the value is not supplied, this will be defaulted to 25 per page.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>Maximum number of results required per page. If the value is not supplied, this will be defaulted to 25 per page.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
        /// <p>A continuation token, if this is a continuation call.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A continuation token, if this is a continuation call.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
    }
    /// Fluent builder constructing a request to `RegisterSchemaVersion`.
    ///
    /// <p>Adds a new version to the existing schema. Returns an error if new version of schema does not meet the compatibility requirements of the schema set. This API will not create a new schema set and will return a 404 error if the schema set is not already present in the Schema Registry.</p>
    /// <p>If this is the first schema definition to be registered in the Schema Registry, this API will store the schema version and return immediately. Otherwise, this call has the potential to run longer than other operations due to compatibility modes. You can call the <code>GetSchemaVersion</code> API with the <code>SchemaVersionId</code> to check compatibility modes.</p>
    /// <p>If the same schema definition is already stored in Schema Registry as a version, the schema ID of the existing schema is returned to the caller.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct RegisterSchemaVersion {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::register_schema_version_input::Builder,
    }
    impl RegisterSchemaVersion {
        /// Creates a new `RegisterSchemaVersion`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::RegisterSchemaVersion,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::RegisterSchemaVersionError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::RegisterSchemaVersionOutput,
            aws_smithy_http::result::SdkError<crate::error::RegisterSchemaVersionError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>This is a wrapper structure to contain schema identity fields. The structure contains:</p>
        /// <ul>
        /// <li> <p>SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema. Either <code>SchemaArn</code> or <code>SchemaName</code> and <code>RegistryName</code> has to be provided.</p> </li>
        /// <li> <p>SchemaId$SchemaName: The name of the schema. Either <code>SchemaArn</code> or <code>SchemaName</code> and <code>RegistryName</code> has to be provided.</p> </li>
        /// </ul>
        pub fn schema_id(mut self, input: crate::model::SchemaId) -> Self {
            self.inner = self.inner.schema_id(input);
            self
        }
        /// <p>This is a wrapper structure to contain schema identity fields. The structure contains:</p>
        /// <ul>
        /// <li> <p>SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema. Either <code>SchemaArn</code> or <code>SchemaName</code> and <code>RegistryName</code> has to be provided.</p> </li>
        /// <li> <p>SchemaId$SchemaName: The name of the schema. Either <code>SchemaArn</code> or <code>SchemaName</code> and <code>RegistryName</code> has to be provided.</p> </li>
        /// </ul>
        pub fn set_schema_id(mut self, input: std::option::Option<crate::model::SchemaId>) -> Self {
            self.inner = self.inner.set_schema_id(input);
            self
        }
        /// <p>The schema definition using the <code>DataFormat</code> setting for the <code>SchemaName</code>.</p>
        pub fn schema_definition(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.schema_definition(input.into());
            self
        }
        /// <p>The schema definition using the <code>DataFormat</code> setting for the <code>SchemaName</code>.</p>
        pub fn set_schema_definition(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_schema_definition(input);
            self
        }
    }
    /// Fluent builder constructing a request to `RemoveSchemaVersionMetadata`.
    ///
    /// <p>Removes a key value pair from the schema version metadata for the specified schema version ID.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct RemoveSchemaVersionMetadata {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::remove_schema_version_metadata_input::Builder,
    }
    impl RemoveSchemaVersionMetadata {
        /// Creates a new `RemoveSchemaVersionMetadata`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::RemoveSchemaVersionMetadata,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::RemoveSchemaVersionMetadataError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::RemoveSchemaVersionMetadataOutput,
            aws_smithy_http::result::SdkError<crate::error::RemoveSchemaVersionMetadataError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>A wrapper structure that may contain the schema name and Amazon Resource Name (ARN).</p>
        pub fn schema_id(mut self, input: crate::model::SchemaId) -> Self {
            self.inner = self.inner.schema_id(input);
            self
        }
        /// <p>A wrapper structure that may contain the schema name and Amazon Resource Name (ARN).</p>
        pub fn set_schema_id(mut self, input: std::option::Option<crate::model::SchemaId>) -> Self {
            self.inner = self.inner.set_schema_id(input);
            self
        }
        /// <p>The version number of the schema.</p>
        pub fn schema_version_number(mut self, input: crate::model::SchemaVersionNumber) -> Self {
            self.inner = self.inner.schema_version_number(input);
            self
        }
        /// <p>The version number of the schema.</p>
        pub fn set_schema_version_number(
            mut self,
            input: std::option::Option<crate::model::SchemaVersionNumber>,
        ) -> Self {
            self.inner = self.inner.set_schema_version_number(input);
            self
        }
        /// <p>The unique version ID of the schema version.</p>
        pub fn schema_version_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.schema_version_id(input.into());
            self
        }
        /// <p>The unique version ID of the schema version.</p>
        pub fn set_schema_version_id(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_schema_version_id(input);
            self
        }
        /// <p>The value of the metadata key.</p>
        pub fn metadata_key_value(mut self, input: crate::model::MetadataKeyValuePair) -> Self {
            self.inner = self.inner.metadata_key_value(input);
            self
        }
        /// <p>The value of the metadata key.</p>
        pub fn set_metadata_key_value(
            mut self,
            input: std::option::Option<crate::model::MetadataKeyValuePair>,
        ) -> Self {
            self.inner = self.inner.set_metadata_key_value(input);
            self
        }
    }
    /// Fluent builder constructing a request to `ResetJobBookmark`.
    ///
    /// <p>Resets a bookmark entry.</p>
    /// <p>For more information about enabling and using job bookmarks, see:</p>
    /// <ul>
    /// <li> <p> <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-continuations.html">Tracking processed data using job bookmarks</a> </p> </li>
    /// <li> <p> <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html">Job parameters used by Glue</a> </p> </li>
    /// <li> <p> <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html#aws-glue-api-jobs-job-Job">Job structure</a> </p> </li>
    /// </ul>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct ResetJobBookmark {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::reset_job_bookmark_input::Builder,
    }
    impl ResetJobBookmark {
        /// Creates a new `ResetJobBookmark`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::ResetJobBookmark,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::ResetJobBookmarkError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::ResetJobBookmarkOutput,
            aws_smithy_http::result::SdkError<crate::error::ResetJobBookmarkError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the job in question.</p>
        pub fn job_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.job_name(input.into());
            self
        }
        /// <p>The name of the job in question.</p>
        pub fn set_job_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_job_name(input);
            self
        }
        /// <p>The unique run identifier associated with this job run.</p>
        pub fn run_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.run_id(input.into());
            self
        }
        /// <p>The unique run identifier associated with this job run.</p>
        pub fn set_run_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_run_id(input);
            self
        }
    }
    /// Fluent builder constructing a request to `ResumeWorkflowRun`.
    ///
    /// <p>Restarts selected nodes of a previous partially completed workflow run and resumes the workflow run. The selected nodes and all nodes that are downstream from the selected nodes are run.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct ResumeWorkflowRun {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::resume_workflow_run_input::Builder,
    }
    impl ResumeWorkflowRun {
        /// Creates a new `ResumeWorkflowRun`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::ResumeWorkflowRun,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::ResumeWorkflowRunError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::ResumeWorkflowRunOutput,
            aws_smithy_http::result::SdkError<crate::error::ResumeWorkflowRunError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the workflow to resume.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The name of the workflow to resume.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
        /// <p>The ID of the workflow run to resume.</p>
        pub fn run_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.run_id(input.into());
            self
        }
        /// <p>The ID of the workflow run to resume.</p>
        pub fn set_run_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_run_id(input);
            self
        }
        /// Appends an item to `NodeIds`.
        ///
        /// To override the contents of this collection use [`set_node_ids`](Self::set_node_ids).
        ///
        /// <p>A list of the node IDs for the nodes you want to restart. The nodes that are to be restarted must have a run attempt in the original run.</p>
        pub fn node_ids(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.node_ids(input.into());
            self
        }
        /// <p>A list of the node IDs for the nodes you want to restart. The nodes that are to be restarted must have a run attempt in the original run.</p>
        pub fn set_node_ids(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.inner = self.inner.set_node_ids(input);
            self
        }
    }
    /// Fluent builder constructing a request to `RunStatement`.
    ///
    /// <p>Executes the statement.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct RunStatement {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::run_statement_input::Builder,
    }
    impl RunStatement {
        /// Creates a new `RunStatement`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::RunStatement,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::RunStatementError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::RunStatementOutput,
            aws_smithy_http::result::SdkError<crate::error::RunStatementError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The Session Id of the statement to be run.</p>
        pub fn session_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.session_id(input.into());
            self
        }
        /// <p>The Session Id of the statement to be run.</p>
        pub fn set_session_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_session_id(input);
            self
        }
        /// <p>The statement code to be run.</p>
        pub fn code(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.code(input.into());
            self
        }
        /// <p>The statement code to be run.</p>
        pub fn set_code(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_code(input);
            self
        }
        /// <p>The origin of the request.</p>
        pub fn request_origin(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.request_origin(input.into());
            self
        }
        /// <p>The origin of the request.</p>
        pub fn set_request_origin(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_request_origin(input);
            self
        }
    }
    /// Fluent builder constructing a request to `SearchTables`.
    ///
    /// <p>Searches a set of tables based on properties in the table metadata as well as on the parent database. You can search against text or filter conditions. </p>
    /// <p>You can only get tables that you have access to based on the security policies defined in Lake Formation. You need at least a read-only access to the table for it to be returned. If you do not have access to all the columns in the table, these columns will not be searched against when returning the list of tables back to you. If you have access to the columns but not the data in the columns, those columns and the associated metadata for those columns will be included in the search. </p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct SearchTables {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::search_tables_input::Builder,
    }
    impl SearchTables {
        /// Creates a new `SearchTables`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::SearchTables,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::SearchTablesError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::SearchTablesOutput,
            aws_smithy_http::result::SdkError<crate::error::SearchTablesError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// Create a paginator for this request
        ///
        /// Paginators are used by calling [`send().await`](crate::paginator::SearchTablesPaginator::send) which returns a [`Stream`](tokio_stream::Stream).
        pub fn into_paginator(self) -> crate::paginator::SearchTablesPaginator {
            crate::paginator::SearchTablesPaginator::new(self.handle, self.inner)
        }
        /// <p>A unique identifier, consisting of <code> <i>account_id</i> </code>.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>A unique identifier, consisting of <code> <i>account_id</i> </code>.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>A continuation token, included if this is a continuation call.</p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.next_token(input.into());
            self
        }
        /// <p>A continuation token, included if this is a continuation call.</p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_next_token(input);
            self
        }
        /// Appends an item to `Filters`.
        ///
        /// To override the contents of this collection use [`set_filters`](Self::set_filters).
        ///
        /// <p>A list of key-value pairs, and a comparator used to filter the search results. Returns all entities matching the predicate.</p>
        /// <p>The <code>Comparator</code> member of the <code>PropertyPredicate</code> struct is used only for time fields, and can be omitted for other field types. Also, when comparing string values, such as when <code>Key=Name</code>, a fuzzy match algorithm is used. The <code>Key</code> field (for example, the value of the <code>Name</code> field) is split on certain punctuation characters, for example, -, :, #, etc. into tokens. Then each token is exact-match compared with the <code>Value</code> member of <code>PropertyPredicate</code>. For example, if <code>Key=Name</code> and <code>Value=link</code>, tables named <code>customer-link</code> and <code>xx-link-yy</code> are returned, but <code>xxlinkyy</code> is not returned.</p>
        pub fn filters(mut self, input: crate::model::PropertyPredicate) -> Self {
            self.inner = self.inner.filters(input);
            self
        }
        /// <p>A list of key-value pairs, and a comparator used to filter the search results. Returns all entities matching the predicate.</p>
        /// <p>The <code>Comparator</code> member of the <code>PropertyPredicate</code> struct is used only for time fields, and can be omitted for other field types. Also, when comparing string values, such as when <code>Key=Name</code>, a fuzzy match algorithm is used. The <code>Key</code> field (for example, the value of the <code>Name</code> field) is split on certain punctuation characters, for example, -, :, #, etc. into tokens. Then each token is exact-match compared with the <code>Value</code> member of <code>PropertyPredicate</code>. For example, if <code>Key=Name</code> and <code>Value=link</code>, tables named <code>customer-link</code> and <code>xx-link-yy</code> are returned, but <code>xxlinkyy</code> is not returned.</p>
        pub fn set_filters(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::PropertyPredicate>>,
        ) -> Self {
            self.inner = self.inner.set_filters(input);
            self
        }
        /// <p>A string used for a text search.</p>
        /// <p>Specifying a value in quotes filters based on an exact match to the value.</p>
        pub fn search_text(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.search_text(input.into());
            self
        }
        /// <p>A string used for a text search.</p>
        /// <p>Specifying a value in quotes filters based on an exact match to the value.</p>
        pub fn set_search_text(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_search_text(input);
            self
        }
        /// Appends an item to `SortCriteria`.
        ///
        /// To override the contents of this collection use [`set_sort_criteria`](Self::set_sort_criteria).
        ///
        /// <p>A list of criteria for sorting the results by a field name, in an ascending or descending order.</p>
        pub fn sort_criteria(mut self, input: crate::model::SortCriterion) -> Self {
            self.inner = self.inner.sort_criteria(input);
            self
        }
        /// <p>A list of criteria for sorting the results by a field name, in an ascending or descending order.</p>
        pub fn set_sort_criteria(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::SortCriterion>>,
        ) -> Self {
            self.inner = self.inner.set_sort_criteria(input);
            self
        }
        /// <p>The maximum number of tables to return in a single response.</p>
        pub fn max_results(mut self, input: i32) -> Self {
            self.inner = self.inner.max_results(input);
            self
        }
        /// <p>The maximum number of tables to return in a single response.</p>
        pub fn set_max_results(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_results(input);
            self
        }
        /// <p>Allows you to specify that you want to search the tables shared with your account. The allowable values are <code>FOREIGN</code> or <code>ALL</code>. </p>
        /// <ul>
        /// <li> <p>If set to <code>FOREIGN</code>, will search the tables shared with your account. </p> </li>
        /// <li> <p>If set to <code>ALL</code>, will search the tables shared with your account, as well as the tables in yor local account. </p> </li>
        /// </ul>
        pub fn resource_share_type(mut self, input: crate::model::ResourceShareType) -> Self {
            self.inner = self.inner.resource_share_type(input);
            self
        }
        /// <p>Allows you to specify that you want to search the tables shared with your account. The allowable values are <code>FOREIGN</code> or <code>ALL</code>. </p>
        /// <ul>
        /// <li> <p>If set to <code>FOREIGN</code>, will search the tables shared with your account. </p> </li>
        /// <li> <p>If set to <code>ALL</code>, will search the tables shared with your account, as well as the tables in yor local account. </p> </li>
        /// </ul>
        pub fn set_resource_share_type(
            mut self,
            input: std::option::Option<crate::model::ResourceShareType>,
        ) -> Self {
            self.inner = self.inner.set_resource_share_type(input);
            self
        }
    }
    /// Fluent builder constructing a request to `StartBlueprintRun`.
    ///
    /// <p>Starts a new run of the specified blueprint.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct StartBlueprintRun {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::start_blueprint_run_input::Builder,
    }
    impl StartBlueprintRun {
        /// Creates a new `StartBlueprintRun`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::StartBlueprintRun,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::StartBlueprintRunError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::StartBlueprintRunOutput,
            aws_smithy_http::result::SdkError<crate::error::StartBlueprintRunError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the blueprint.</p>
        pub fn blueprint_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.blueprint_name(input.into());
            self
        }
        /// <p>The name of the blueprint.</p>
        pub fn set_blueprint_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_blueprint_name(input);
            self
        }
        /// <p>Specifies the parameters as a <code>BlueprintParameters</code> object.</p>
        pub fn parameters(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.parameters(input.into());
            self
        }
        /// <p>Specifies the parameters as a <code>BlueprintParameters</code> object.</p>
        pub fn set_parameters(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_parameters(input);
            self
        }
        /// <p>Specifies the IAM role used to create the workflow.</p>
        pub fn role_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.role_arn(input.into());
            self
        }
        /// <p>Specifies the IAM role used to create the workflow.</p>
        pub fn set_role_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_role_arn(input);
            self
        }
    }
    /// Fluent builder constructing a request to `StartCrawler`.
    ///
    /// <p>Starts a crawl using the specified crawler, regardless of what is scheduled. If the crawler is already running, returns a <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-exceptions.html#aws-glue-api-exceptions-CrawlerRunningException">CrawlerRunningException</a>.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct StartCrawler {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::start_crawler_input::Builder,
    }
    impl StartCrawler {
        /// Creates a new `StartCrawler`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::StartCrawler,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::StartCrawlerError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::StartCrawlerOutput,
            aws_smithy_http::result::SdkError<crate::error::StartCrawlerError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>Name of the crawler to start.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>Name of the crawler to start.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
    }
    /// Fluent builder constructing a request to `StartCrawlerSchedule`.
    ///
    /// <p>Changes the schedule state of the specified crawler to <code>SCHEDULED</code>, unless the crawler is already running or the schedule state is already <code>SCHEDULED</code>.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct StartCrawlerSchedule {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::start_crawler_schedule_input::Builder,
    }
    impl StartCrawlerSchedule {
        /// Creates a new `StartCrawlerSchedule`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::StartCrawlerSchedule,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::StartCrawlerScheduleError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::StartCrawlerScheduleOutput,
            aws_smithy_http::result::SdkError<crate::error::StartCrawlerScheduleError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>Name of the crawler to schedule.</p>
        pub fn crawler_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.crawler_name(input.into());
            self
        }
        /// <p>Name of the crawler to schedule.</p>
        pub fn set_crawler_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_crawler_name(input);
            self
        }
    }
    /// Fluent builder constructing a request to `StartDataQualityRuleRecommendationRun`.
    ///
    /// <p>Starts a recommendation run that is used to generate rules when you don't know what rules to write. Glue Data Quality analyzes the data and comes up with recommendations for a potential ruleset. You can then triage the ruleset and modify the generated ruleset to your liking.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct StartDataQualityRuleRecommendationRun {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::start_data_quality_rule_recommendation_run_input::Builder,
    }
    impl StartDataQualityRuleRecommendationRun {
        /// Creates a new `StartDataQualityRuleRecommendationRun`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::StartDataQualityRuleRecommendationRun,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<
                crate::error::StartDataQualityRuleRecommendationRunError,
            >,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::StartDataQualityRuleRecommendationRunOutput,
            aws_smithy_http::result::SdkError<
                crate::error::StartDataQualityRuleRecommendationRunError,
            >,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The data source (Glue table) associated with this run.</p>
        pub fn data_source(mut self, input: crate::model::DataSource) -> Self {
            self.inner = self.inner.data_source(input);
            self
        }
        /// <p>The data source (Glue table) associated with this run.</p>
        pub fn set_data_source(
            mut self,
            input: std::option::Option<crate::model::DataSource>,
        ) -> Self {
            self.inner = self.inner.set_data_source(input);
            self
        }
        /// <p>An IAM role supplied to encrypt the results of the run.</p>
        pub fn role(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.role(input.into());
            self
        }
        /// <p>An IAM role supplied to encrypt the results of the run.</p>
        pub fn set_role(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_role(input);
            self
        }
        /// <p>The number of <code>G.1X</code> workers to be used in the run. The default is 5.</p>
        pub fn number_of_workers(mut self, input: i32) -> Self {
            self.inner = self.inner.number_of_workers(input);
            self
        }
        /// <p>The number of <code>G.1X</code> workers to be used in the run. The default is 5.</p>
        pub fn set_number_of_workers(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_number_of_workers(input);
            self
        }
        /// <p>The timeout for a run in minutes. This is the maximum time that a run can consume resources before it is terminated and enters <code>TIMEOUT</code> status. The default is 2,880 minutes (48 hours).</p>
        pub fn timeout(mut self, input: i32) -> Self {
            self.inner = self.inner.timeout(input);
            self
        }
        /// <p>The timeout for a run in minutes. This is the maximum time that a run can consume resources before it is terminated and enters <code>TIMEOUT</code> status. The default is 2,880 minutes (48 hours).</p>
        pub fn set_timeout(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_timeout(input);
            self
        }
        /// <p>A name for the ruleset.</p>
        pub fn created_ruleset_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.created_ruleset_name(input.into());
            self
        }
        /// <p>A name for the ruleset.</p>
        pub fn set_created_ruleset_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_created_ruleset_name(input);
            self
        }
        /// <p>Used for idempotency and is recommended to be set to a random ID (such as a UUID) to avoid creating or starting multiple instances of the same resource.</p>
        pub fn client_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.client_token(input.into());
            self
        }
        /// <p>Used for idempotency and is recommended to be set to a random ID (such as a UUID) to avoid creating or starting multiple instances of the same resource.</p>
        pub fn set_client_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_client_token(input);
            self
        }
    }
    /// Fluent builder constructing a request to `StartDataQualityRulesetEvaluationRun`.
    ///
    /// <p>Once you have a ruleset definition (either recommended or your own), you call this operation to evaluate the ruleset against a data source (Glue table). The evaluation computes results which you can retrieve with the <code>GetDataQualityResult</code> API.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct StartDataQualityRulesetEvaluationRun {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::start_data_quality_ruleset_evaluation_run_input::Builder,
    }
    impl StartDataQualityRulesetEvaluationRun {
        /// Creates a new `StartDataQualityRulesetEvaluationRun`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::StartDataQualityRulesetEvaluationRun,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<
                crate::error::StartDataQualityRulesetEvaluationRunError,
            >,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::StartDataQualityRulesetEvaluationRunOutput,
            aws_smithy_http::result::SdkError<
                crate::error::StartDataQualityRulesetEvaluationRunError,
            >,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The data source (Glue table) associated with this run.</p>
        pub fn data_source(mut self, input: crate::model::DataSource) -> Self {
            self.inner = self.inner.data_source(input);
            self
        }
        /// <p>The data source (Glue table) associated with this run.</p>
        pub fn set_data_source(
            mut self,
            input: std::option::Option<crate::model::DataSource>,
        ) -> Self {
            self.inner = self.inner.set_data_source(input);
            self
        }
        /// <p>An IAM role supplied to encrypt the results of the run.</p>
        pub fn role(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.role(input.into());
            self
        }
        /// <p>An IAM role supplied to encrypt the results of the run.</p>
        pub fn set_role(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_role(input);
            self
        }
        /// <p>The number of <code>G.1X</code> workers to be used in the run. The default is 5.</p>
        pub fn number_of_workers(mut self, input: i32) -> Self {
            self.inner = self.inner.number_of_workers(input);
            self
        }
        /// <p>The number of <code>G.1X</code> workers to be used in the run. The default is 5.</p>
        pub fn set_number_of_workers(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_number_of_workers(input);
            self
        }
        /// <p>The timeout for a run in minutes. This is the maximum time that a run can consume resources before it is terminated and enters <code>TIMEOUT</code> status. The default is 2,880 minutes (48 hours).</p>
        pub fn timeout(mut self, input: i32) -> Self {
            self.inner = self.inner.timeout(input);
            self
        }
        /// <p>The timeout for a run in minutes. This is the maximum time that a run can consume resources before it is terminated and enters <code>TIMEOUT</code> status. The default is 2,880 minutes (48 hours).</p>
        pub fn set_timeout(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_timeout(input);
            self
        }
        /// <p>Used for idempotency and is recommended to be set to a random ID (such as a UUID) to avoid creating or starting multiple instances of the same resource.</p>
        pub fn client_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.client_token(input.into());
            self
        }
        /// <p>Used for idempotency and is recommended to be set to a random ID (such as a UUID) to avoid creating or starting multiple instances of the same resource.</p>
        pub fn set_client_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_client_token(input);
            self
        }
        /// <p>Additional run options you can specify for an evaluation run.</p>
        pub fn additional_run_options(
            mut self,
            input: crate::model::DataQualityEvaluationRunAdditionalRunOptions,
        ) -> Self {
            self.inner = self.inner.additional_run_options(input);
            self
        }
        /// <p>Additional run options you can specify for an evaluation run.</p>
        pub fn set_additional_run_options(
            mut self,
            input: std::option::Option<crate::model::DataQualityEvaluationRunAdditionalRunOptions>,
        ) -> Self {
            self.inner = self.inner.set_additional_run_options(input);
            self
        }
        /// Appends an item to `RulesetNames`.
        ///
        /// To override the contents of this collection use [`set_ruleset_names`](Self::set_ruleset_names).
        ///
        /// <p>A list of ruleset names.</p>
        pub fn ruleset_names(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.ruleset_names(input.into());
            self
        }
        /// <p>A list of ruleset names.</p>
        pub fn set_ruleset_names(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.inner = self.inner.set_ruleset_names(input);
            self
        }
    }
    /// Fluent builder constructing a request to `StartExportLabelsTaskRun`.
    ///
    /// <p>Begins an asynchronous task to export all labeled data for a particular transform. This task is the only label-related API call that is not part of the typical active learning workflow. You typically use <code>StartExportLabelsTaskRun</code> when you want to work with all of your existing labels at the same time, such as when you want to remove or change labels that were previously submitted as truth. This API operation accepts the <code>TransformId</code> whose labels you want to export and an Amazon Simple Storage Service (Amazon S3) path to export the labels to. The operation returns a <code>TaskRunId</code>. You can check on the status of your task run by calling the <code>GetMLTaskRun</code> API.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct StartExportLabelsTaskRun {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::start_export_labels_task_run_input::Builder,
    }
    impl StartExportLabelsTaskRun {
        /// Creates a new `StartExportLabelsTaskRun`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::StartExportLabelsTaskRun,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::StartExportLabelsTaskRunError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::StartExportLabelsTaskRunOutput,
            aws_smithy_http::result::SdkError<crate::error::StartExportLabelsTaskRunError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The unique identifier of the machine learning transform.</p>
        pub fn transform_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.transform_id(input.into());
            self
        }
        /// <p>The unique identifier of the machine learning transform.</p>
        pub fn set_transform_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_transform_id(input);
            self
        }
        /// <p>The Amazon S3 path where you export the labels.</p>
        pub fn output_s3_path(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.output_s3_path(input.into());
            self
        }
        /// <p>The Amazon S3 path where you export the labels.</p>
        pub fn set_output_s3_path(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_output_s3_path(input);
            self
        }
    }
    /// Fluent builder constructing a request to `StartImportLabelsTaskRun`.
    ///
    /// <p>Enables you to provide additional labels (examples of truth) to be used to teach the machine learning transform and improve its quality. This API operation is generally used as part of the active learning workflow that starts with the <code>StartMLLabelingSetGenerationTaskRun</code> call and that ultimately results in improving the quality of your machine learning transform. </p>
    /// <p>After the <code>StartMLLabelingSetGenerationTaskRun</code> finishes, Glue machine learning will have generated a series of questions for humans to answer. (Answering these questions is often called 'labeling' in the machine learning workflows). In the case of the <code>FindMatches</code> transform, these questions are of the form, “What is the correct way to group these rows together into groups composed entirely of matching records?” After the labeling process is finished, users upload their answers/labels with a call to <code>StartImportLabelsTaskRun</code>. After <code>StartImportLabelsTaskRun</code> finishes, all future runs of the machine learning transform use the new and improved labels and perform a higher-quality transformation.</p>
    /// <p>By default, <code>StartMLLabelingSetGenerationTaskRun</code> continually learns from and combines all labels that you upload unless you set <code>Replace</code> to true. If you set <code>Replace</code> to true, <code>StartImportLabelsTaskRun</code> deletes and forgets all previously uploaded labels and learns only from the exact set that you upload. Replacing labels can be helpful if you realize that you previously uploaded incorrect labels, and you believe that they are having a negative effect on your transform quality.</p>
    /// <p>You can check on the status of your task run by calling the <code>GetMLTaskRun</code> operation. </p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct StartImportLabelsTaskRun {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::start_import_labels_task_run_input::Builder,
    }
    impl StartImportLabelsTaskRun {
        /// Creates a new `StartImportLabelsTaskRun`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::StartImportLabelsTaskRun,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::StartImportLabelsTaskRunError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::StartImportLabelsTaskRunOutput,
            aws_smithy_http::result::SdkError<crate::error::StartImportLabelsTaskRunError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The unique identifier of the machine learning transform.</p>
        pub fn transform_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.transform_id(input.into());
            self
        }
        /// <p>The unique identifier of the machine learning transform.</p>
        pub fn set_transform_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_transform_id(input);
            self
        }
        /// <p>The Amazon Simple Storage Service (Amazon S3) path from where you import the labels.</p>
        pub fn input_s3_path(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.input_s3_path(input.into());
            self
        }
        /// <p>The Amazon Simple Storage Service (Amazon S3) path from where you import the labels.</p>
        pub fn set_input_s3_path(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_input_s3_path(input);
            self
        }
        /// <p>Indicates whether to overwrite your existing labels.</p>
        pub fn replace_all_labels(mut self, input: bool) -> Self {
            self.inner = self.inner.replace_all_labels(input);
            self
        }
        /// <p>Indicates whether to overwrite your existing labels.</p>
        pub fn set_replace_all_labels(mut self, input: std::option::Option<bool>) -> Self {
            self.inner = self.inner.set_replace_all_labels(input);
            self
        }
    }
    /// Fluent builder constructing a request to `StartJobRun`.
    ///
    /// <p>Starts a job run using a job definition.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct StartJobRun {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::start_job_run_input::Builder,
    }
    impl StartJobRun {
        /// Creates a new `StartJobRun`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::StartJobRun,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::StartJobRunError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::StartJobRunOutput,
            aws_smithy_http::result::SdkError<crate::error::StartJobRunError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the job definition to use.</p>
        pub fn job_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.job_name(input.into());
            self
        }
        /// <p>The name of the job definition to use.</p>
        pub fn set_job_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_job_name(input);
            self
        }
        /// <p>The ID of a previous <code>JobRun</code> to retry.</p>
        pub fn job_run_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.job_run_id(input.into());
            self
        }
        /// <p>The ID of a previous <code>JobRun</code> to retry.</p>
        pub fn set_job_run_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_job_run_id(input);
            self
        }
        /// Adds a key-value pair to `Arguments`.
        ///
        /// To override the contents of this collection use [`set_arguments`](Self::set_arguments).
        ///
        /// <p>The job arguments specifically for this run. For this job run, they replace the default arguments set in the job definition itself.</p>
        /// <p>You can specify arguments here that your own job-execution script consumes, as well as arguments that Glue itself consumes.</p>
        /// <p>Job arguments may be logged. Do not pass plaintext secrets as arguments. Retrieve secrets from a Glue Connection, Secrets Manager or other secret management mechanism if you intend to keep them within the Job. </p>
        /// <p>For information about how to specify and consume your own Job arguments, see the <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html">Calling Glue APIs in Python</a> topic in the developer guide.</p>
        /// <p>For information about the key-value pairs that Glue consumes to set up your job, see the <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html">Special Parameters Used by Glue</a> topic in the developer guide.</p>
        pub fn arguments(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.arguments(k.into(), v.into());
            self
        }
        /// <p>The job arguments specifically for this run. For this job run, they replace the default arguments set in the job definition itself.</p>
        /// <p>You can specify arguments here that your own job-execution script consumes, as well as arguments that Glue itself consumes.</p>
        /// <p>Job arguments may be logged. Do not pass plaintext secrets as arguments. Retrieve secrets from a Glue Connection, Secrets Manager or other secret management mechanism if you intend to keep them within the Job. </p>
        /// <p>For information about how to specify and consume your own Job arguments, see the <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html">Calling Glue APIs in Python</a> topic in the developer guide.</p>
        /// <p>For information about the key-value pairs that Glue consumes to set up your job, see the <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html">Special Parameters Used by Glue</a> topic in the developer guide.</p>
        pub fn set_arguments(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.inner = self.inner.set_arguments(input);
            self
        }
        /// <p>This field is deprecated. Use <code>MaxCapacity</code> instead.</p>
        /// <p>The number of Glue data processing units (DPUs) to allocate to this JobRun. You can allocate a minimum of 2 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the <a href="https://aws.amazon.com/glue/pricing/">Glue pricing page</a>.</p>
        #[deprecated(note = "This property is deprecated, use MaxCapacity instead.")]
        pub fn allocated_capacity(mut self, input: i32) -> Self {
            self.inner = self.inner.allocated_capacity(input);
            self
        }
        /// <p>This field is deprecated. Use <code>MaxCapacity</code> instead.</p>
        /// <p>The number of Glue data processing units (DPUs) to allocate to this JobRun. You can allocate a minimum of 2 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the <a href="https://aws.amazon.com/glue/pricing/">Glue pricing page</a>.</p>
        #[deprecated(note = "This property is deprecated, use MaxCapacity instead.")]
        pub fn set_allocated_capacity(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_allocated_capacity(input);
            self
        }
        /// <p>The <code>JobRun</code> timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters <code>TIMEOUT</code> status. This value overrides the timeout value set in the parent job.</p>
        /// <p>Streaming jobs do not have a timeout. The default for non-streaming jobs is 2,880 minutes (48 hours).</p>
        pub fn timeout(mut self, input: i32) -> Self {
            self.inner = self.inner.timeout(input);
            self
        }
        /// <p>The <code>JobRun</code> timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters <code>TIMEOUT</code> status. This value overrides the timeout value set in the parent job.</p>
        /// <p>Streaming jobs do not have a timeout. The default for non-streaming jobs is 2,880 minutes (48 hours).</p>
        pub fn set_timeout(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_timeout(input);
            self
        }
        /// <p>The number of Glue data processing units (DPUs) that can be allocated when this job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the <a href="https://aws.amazon.com/glue/pricing/">Glue pricing page</a>.</p>
        /// <p>Do not set <code>Max Capacity</code> if using <code>WorkerType</code> and <code>NumberOfWorkers</code>.</p>
        /// <p>The value that can be allocated for <code>MaxCapacity</code> depends on whether you are running a Python shell job, or an Apache Spark ETL job:</p>
        /// <ul>
        /// <li> <p>When you specify a Python shell job (<code>JobCommand.Name</code>="pythonshell"), you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.</p> </li>
        /// <li> <p>When you specify an Apache Spark ETL job (<code>JobCommand.Name</code>="glueetl"), you can allocate a minimum of 2 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU allocation.</p> </li>
        /// </ul>
        pub fn max_capacity(mut self, input: f64) -> Self {
            self.inner = self.inner.max_capacity(input);
            self
        }
        /// <p>The number of Glue data processing units (DPUs) that can be allocated when this job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the <a href="https://aws.amazon.com/glue/pricing/">Glue pricing page</a>.</p>
        /// <p>Do not set <code>Max Capacity</code> if using <code>WorkerType</code> and <code>NumberOfWorkers</code>.</p>
        /// <p>The value that can be allocated for <code>MaxCapacity</code> depends on whether you are running a Python shell job, or an Apache Spark ETL job:</p>
        /// <ul>
        /// <li> <p>When you specify a Python shell job (<code>JobCommand.Name</code>="pythonshell"), you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.</p> </li>
        /// <li> <p>When you specify an Apache Spark ETL job (<code>JobCommand.Name</code>="glueetl"), you can allocate a minimum of 2 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU allocation.</p> </li>
        /// </ul>
        pub fn set_max_capacity(mut self, input: std::option::Option<f64>) -> Self {
            self.inner = self.inner.set_max_capacity(input);
            self
        }
        /// <p>The name of the <code>SecurityConfiguration</code> structure to be used with this job run.</p>
        pub fn security_configuration(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.security_configuration(input.into());
            self
        }
        /// <p>The name of the <code>SecurityConfiguration</code> structure to be used with this job run.</p>
        pub fn set_security_configuration(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_security_configuration(input);
            self
        }
        /// <p>Specifies configuration properties of a job run notification.</p>
        pub fn notification_property(mut self, input: crate::model::NotificationProperty) -> Self {
            self.inner = self.inner.notification_property(input);
            self
        }
        /// <p>Specifies configuration properties of a job run notification.</p>
        pub fn set_notification_property(
            mut self,
            input: std::option::Option<crate::model::NotificationProperty>,
        ) -> Self {
            self.inner = self.inner.set_notification_property(input);
            self
        }
        /// <p>The type of predefined worker that is allocated when a job runs. Accepts a value of Standard, G.1X, G.2X, or G.025X.</p>
        /// <ul>
        /// <li> <p>For the <code>Standard</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.</p> </li>
        /// <li> <p>For the <code>G.1X</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 64GB disk, and 1 executor per worker.</p> </li>
        /// <li> <p>For the <code>G.2X</code> worker type, each worker provides 8 vCPU, 32 GB of memory and a 128GB disk, and 1 executor per worker.</p> </li>
        /// <li> <p>For the <code>G.025X</code> worker type, each worker maps to 0.25 DPU (2 vCPU, 4 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for low volume streaming jobs. This worker type is only available for Glue version 3.0 streaming jobs.</p> </li>
        /// </ul>
        pub fn worker_type(mut self, input: crate::model::WorkerType) -> Self {
            self.inner = self.inner.worker_type(input);
            self
        }
        /// <p>The type of predefined worker that is allocated when a job runs. Accepts a value of Standard, G.1X, G.2X, or G.025X.</p>
        /// <ul>
        /// <li> <p>For the <code>Standard</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.</p> </li>
        /// <li> <p>For the <code>G.1X</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 64GB disk, and 1 executor per worker.</p> </li>
        /// <li> <p>For the <code>G.2X</code> worker type, each worker provides 8 vCPU, 32 GB of memory and a 128GB disk, and 1 executor per worker.</p> </li>
        /// <li> <p>For the <code>G.025X</code> worker type, each worker maps to 0.25 DPU (2 vCPU, 4 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for low volume streaming jobs. This worker type is only available for Glue version 3.0 streaming jobs.</p> </li>
        /// </ul>
        pub fn set_worker_type(
            mut self,
            input: std::option::Option<crate::model::WorkerType>,
        ) -> Self {
            self.inner = self.inner.set_worker_type(input);
            self
        }
        /// <p>The number of workers of a defined <code>workerType</code> that are allocated when a job runs.</p>
        pub fn number_of_workers(mut self, input: i32) -> Self {
            self.inner = self.inner.number_of_workers(input);
            self
        }
        /// <p>The number of workers of a defined <code>workerType</code> that are allocated when a job runs.</p>
        pub fn set_number_of_workers(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_number_of_workers(input);
            self
        }
        /// <p>Indicates whether the job is run with a standard or flexible execution class. The standard execution-class is ideal for time-sensitive workloads that require fast job startup and dedicated resources.</p>
        /// <p>The flexible execution class is appropriate for time-insensitive jobs whose start and completion times may vary. </p>
        /// <p>Only jobs with Glue version 3.0 and above and command type <code>glueetl</code> will be allowed to set <code>ExecutionClass</code> to <code>FLEX</code>. The flexible execution class is available for Spark jobs.</p>
        pub fn execution_class(mut self, input: crate::model::ExecutionClass) -> Self {
            self.inner = self.inner.execution_class(input);
            self
        }
        /// <p>Indicates whether the job is run with a standard or flexible execution class. The standard execution-class is ideal for time-sensitive workloads that require fast job startup and dedicated resources.</p>
        /// <p>The flexible execution class is appropriate for time-insensitive jobs whose start and completion times may vary. </p>
        /// <p>Only jobs with Glue version 3.0 and above and command type <code>glueetl</code> will be allowed to set <code>ExecutionClass</code> to <code>FLEX</code>. The flexible execution class is available for Spark jobs.</p>
        pub fn set_execution_class(
            mut self,
            input: std::option::Option<crate::model::ExecutionClass>,
        ) -> Self {
            self.inner = self.inner.set_execution_class(input);
            self
        }
    }
    /// Fluent builder constructing a request to `StartMLEvaluationTaskRun`.
    ///
    /// <p>Starts a task to estimate the quality of the transform. </p>
    /// <p>When you provide label sets as examples of truth, Glue machine learning uses some of those examples to learn from them. The rest of the labels are used as a test to estimate quality.</p>
    /// <p>Returns a unique identifier for the run. You can call <code>GetMLTaskRun</code> to get more information about the stats of the <code>EvaluationTaskRun</code>.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct StartMLEvaluationTaskRun {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::start_ml_evaluation_task_run_input::Builder,
    }
    impl StartMLEvaluationTaskRun {
        /// Creates a new `StartMLEvaluationTaskRun`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::StartMLEvaluationTaskRun,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::StartMLEvaluationTaskRunError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::StartMlEvaluationTaskRunOutput,
            aws_smithy_http::result::SdkError<crate::error::StartMLEvaluationTaskRunError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The unique identifier of the machine learning transform.</p>
        pub fn transform_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.transform_id(input.into());
            self
        }
        /// <p>The unique identifier of the machine learning transform.</p>
        pub fn set_transform_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_transform_id(input);
            self
        }
    }
    /// Fluent builder constructing a request to `StartMLLabelingSetGenerationTaskRun`.
    ///
    /// <p>Starts the active learning workflow for your machine learning transform to improve the transform's quality by generating label sets and adding labels.</p>
    /// <p>When the <code>StartMLLabelingSetGenerationTaskRun</code> finishes, Glue will have generated a "labeling set" or a set of questions for humans to answer.</p>
    /// <p>In the case of the <code>FindMatches</code> transform, these questions are of the form, “What is the correct way to group these rows together into groups composed entirely of matching records?” </p>
    /// <p>After the labeling process is finished, you can upload your labels with a call to <code>StartImportLabelsTaskRun</code>. After <code>StartImportLabelsTaskRun</code> finishes, all future runs of the machine learning transform will use the new and improved labels and perform a higher-quality transformation.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct StartMLLabelingSetGenerationTaskRun {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::start_ml_labeling_set_generation_task_run_input::Builder,
    }
    impl StartMLLabelingSetGenerationTaskRun {
        /// Creates a new `StartMLLabelingSetGenerationTaskRun`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::StartMLLabelingSetGenerationTaskRun,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<
                crate::error::StartMLLabelingSetGenerationTaskRunError,
            >,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::StartMlLabelingSetGenerationTaskRunOutput,
            aws_smithy_http::result::SdkError<
                crate::error::StartMLLabelingSetGenerationTaskRunError,
            >,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The unique identifier of the machine learning transform.</p>
        pub fn transform_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.transform_id(input.into());
            self
        }
        /// <p>The unique identifier of the machine learning transform.</p>
        pub fn set_transform_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_transform_id(input);
            self
        }
        /// <p>The Amazon Simple Storage Service (Amazon S3) path where you generate the labeling set.</p>
        pub fn output_s3_path(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.output_s3_path(input.into());
            self
        }
        /// <p>The Amazon Simple Storage Service (Amazon S3) path where you generate the labeling set.</p>
        pub fn set_output_s3_path(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_output_s3_path(input);
            self
        }
    }
    /// Fluent builder constructing a request to `StartTrigger`.
    ///
    /// <p>Starts an existing trigger. See <a href="https://docs.aws.amazon.com/glue/latest/dg/trigger-job.html">Triggering Jobs</a> for information about how different types of trigger are started.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct StartTrigger {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::start_trigger_input::Builder,
    }
    impl StartTrigger {
        /// Creates a new `StartTrigger`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::StartTrigger,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::StartTriggerError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::StartTriggerOutput,
            aws_smithy_http::result::SdkError<crate::error::StartTriggerError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the trigger to start.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The name of the trigger to start.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
    }
    /// Fluent builder constructing a request to `StartWorkflowRun`.
    ///
    /// <p>Starts a new run of the specified workflow.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct StartWorkflowRun {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::start_workflow_run_input::Builder,
    }
    impl StartWorkflowRun {
        /// Creates a new `StartWorkflowRun`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::StartWorkflowRun,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::StartWorkflowRunError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::StartWorkflowRunOutput,
            aws_smithy_http::result::SdkError<crate::error::StartWorkflowRunError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the workflow to start.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The name of the workflow to start.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
        /// Adds a key-value pair to `RunProperties`.
        ///
        /// To override the contents of this collection use [`set_run_properties`](Self::set_run_properties).
        ///
        /// <p>The workflow run properties for the new workflow run.</p>
        pub fn run_properties(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.run_properties(k.into(), v.into());
            self
        }
        /// <p>The workflow run properties for the new workflow run.</p>
        pub fn set_run_properties(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.inner = self.inner.set_run_properties(input);
            self
        }
    }
    /// Fluent builder constructing a request to `StopCrawler`.
    ///
    /// <p>If the specified crawler is running, stops the crawl.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct StopCrawler {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::stop_crawler_input::Builder,
    }
    impl StopCrawler {
        /// Creates a new `StopCrawler`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::StopCrawler,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::StopCrawlerError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::StopCrawlerOutput,
            aws_smithy_http::result::SdkError<crate::error::StopCrawlerError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>Name of the crawler to stop.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>Name of the crawler to stop.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
    }
    /// Fluent builder constructing a request to `StopCrawlerSchedule`.
    ///
    /// <p>Sets the schedule state of the specified crawler to <code>NOT_SCHEDULED</code>, but does not stop the crawler if it is already running.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct StopCrawlerSchedule {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::stop_crawler_schedule_input::Builder,
    }
    impl StopCrawlerSchedule {
        /// Creates a new `StopCrawlerSchedule`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::StopCrawlerSchedule,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::StopCrawlerScheduleError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::StopCrawlerScheduleOutput,
            aws_smithy_http::result::SdkError<crate::error::StopCrawlerScheduleError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>Name of the crawler whose schedule state to set.</p>
        pub fn crawler_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.crawler_name(input.into());
            self
        }
        /// <p>Name of the crawler whose schedule state to set.</p>
        pub fn set_crawler_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_crawler_name(input);
            self
        }
    }
    /// Fluent builder constructing a request to `StopSession`.
    ///
    /// <p>Stops the session.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct StopSession {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::stop_session_input::Builder,
    }
    impl StopSession {
        /// Creates a new `StopSession`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::StopSession,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::StopSessionError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::StopSessionOutput,
            aws_smithy_http::result::SdkError<crate::error::StopSessionError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the session to be stopped.</p>
        pub fn id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.id(input.into());
            self
        }
        /// <p>The ID of the session to be stopped.</p>
        pub fn set_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_id(input);
            self
        }
        /// <p>The origin of the request.</p>
        pub fn request_origin(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.request_origin(input.into());
            self
        }
        /// <p>The origin of the request.</p>
        pub fn set_request_origin(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_request_origin(input);
            self
        }
    }
    /// Fluent builder constructing a request to `StopTrigger`.
    ///
    /// <p>Stops a specified trigger.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct StopTrigger {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::stop_trigger_input::Builder,
    }
    impl StopTrigger {
        /// Creates a new `StopTrigger`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::StopTrigger,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::StopTriggerError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::StopTriggerOutput,
            aws_smithy_http::result::SdkError<crate::error::StopTriggerError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the trigger to stop.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The name of the trigger to stop.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
    }
    /// Fluent builder constructing a request to `StopWorkflowRun`.
    ///
    /// <p>Stops the execution of the specified workflow run.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct StopWorkflowRun {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::stop_workflow_run_input::Builder,
    }
    impl StopWorkflowRun {
        /// Creates a new `StopWorkflowRun`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::StopWorkflowRun,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::StopWorkflowRunError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::StopWorkflowRunOutput,
            aws_smithy_http::result::SdkError<crate::error::StopWorkflowRunError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the workflow to stop.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The name of the workflow to stop.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
        /// <p>The ID of the workflow run to stop.</p>
        pub fn run_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.run_id(input.into());
            self
        }
        /// <p>The ID of the workflow run to stop.</p>
        pub fn set_run_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_run_id(input);
            self
        }
    }
    /// Fluent builder constructing a request to `TagResource`.
    ///
    /// <p>Adds tags to a resource. A tag is a label you can assign to an Amazon Web Services resource. In Glue, you can tag only certain resources. For information about what resources you can tag, see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html">Amazon Web Services Tags in Glue</a>.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct TagResource {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::tag_resource_input::Builder,
    }
    impl TagResource {
        /// Creates a new `TagResource`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::TagResource,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::TagResourceError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::TagResourceOutput,
            aws_smithy_http::result::SdkError<crate::error::TagResourceError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ARN of the Glue resource to which to add the tags. For more information about Glue resource ARNs, see the <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-common.html#aws-glue-api-regex-aws-glue-arn-id">Glue ARN string pattern</a>.</p>
        pub fn resource_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.resource_arn(input.into());
            self
        }
        /// <p>The ARN of the Glue resource to which to add the tags. For more information about Glue resource ARNs, see the <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-common.html#aws-glue-api-regex-aws-glue-arn-id">Glue ARN string pattern</a>.</p>
        pub fn set_resource_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_resource_arn(input);
            self
        }
        /// Adds a key-value pair to `TagsToAdd`.
        ///
        /// To override the contents of this collection use [`set_tags_to_add`](Self::set_tags_to_add).
        ///
        /// <p>Tags to add to this resource.</p>
        pub fn tags_to_add(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.tags_to_add(k.into(), v.into());
            self
        }
        /// <p>Tags to add to this resource.</p>
        pub fn set_tags_to_add(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.inner = self.inner.set_tags_to_add(input);
            self
        }
    }
    /// Fluent builder constructing a request to `UntagResource`.
    ///
    /// <p>Removes tags from a resource.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct UntagResource {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::untag_resource_input::Builder,
    }
    impl UntagResource {
        /// Creates a new `UntagResource`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::UntagResource,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::UntagResourceError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::UntagResourceOutput,
            aws_smithy_http::result::SdkError<crate::error::UntagResourceError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The Amazon Resource Name (ARN) of the resource from which to remove the tags.</p>
        pub fn resource_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.resource_arn(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the resource from which to remove the tags.</p>
        pub fn set_resource_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_resource_arn(input);
            self
        }
        /// Appends an item to `TagsToRemove`.
        ///
        /// To override the contents of this collection use [`set_tags_to_remove`](Self::set_tags_to_remove).
        ///
        /// <p>Tags to remove from this resource.</p>
        pub fn tags_to_remove(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.tags_to_remove(input.into());
            self
        }
        /// <p>Tags to remove from this resource.</p>
        pub fn set_tags_to_remove(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.inner = self.inner.set_tags_to_remove(input);
            self
        }
    }
    /// Fluent builder constructing a request to `UpdateBlueprint`.
    ///
    /// <p>Updates a registered blueprint.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct UpdateBlueprint {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::update_blueprint_input::Builder,
    }
    impl UpdateBlueprint {
        /// Creates a new `UpdateBlueprint`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::UpdateBlueprint,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::UpdateBlueprintError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::UpdateBlueprintOutput,
            aws_smithy_http::result::SdkError<crate::error::UpdateBlueprintError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the blueprint.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The name of the blueprint.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
        /// <p>A description of the blueprint.</p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.description(input.into());
            self
        }
        /// <p>A description of the blueprint.</p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_description(input);
            self
        }
        /// <p>Specifies a path in Amazon S3 where the blueprint is published.</p>
        pub fn blueprint_location(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.blueprint_location(input.into());
            self
        }
        /// <p>Specifies a path in Amazon S3 where the blueprint is published.</p>
        pub fn set_blueprint_location(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_blueprint_location(input);
            self
        }
    }
    /// Fluent builder constructing a request to `UpdateClassifier`.
    ///
    /// <p>Modifies an existing classifier (a <code>GrokClassifier</code>, an <code>XMLClassifier</code>, a <code>JsonClassifier</code>, or a <code>CsvClassifier</code>, depending on which field is present).</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct UpdateClassifier {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::update_classifier_input::Builder,
    }
    impl UpdateClassifier {
        /// Creates a new `UpdateClassifier`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::UpdateClassifier,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::UpdateClassifierError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::UpdateClassifierOutput,
            aws_smithy_http::result::SdkError<crate::error::UpdateClassifierError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>A <code>GrokClassifier</code> object with updated fields.</p>
        pub fn grok_classifier(mut self, input: crate::model::UpdateGrokClassifierRequest) -> Self {
            self.inner = self.inner.grok_classifier(input);
            self
        }
        /// <p>A <code>GrokClassifier</code> object with updated fields.</p>
        pub fn set_grok_classifier(
            mut self,
            input: std::option::Option<crate::model::UpdateGrokClassifierRequest>,
        ) -> Self {
            self.inner = self.inner.set_grok_classifier(input);
            self
        }
        /// <p>An <code>XMLClassifier</code> object with updated fields.</p>
        pub fn xml_classifier(mut self, input: crate::model::UpdateXmlClassifierRequest) -> Self {
            self.inner = self.inner.xml_classifier(input);
            self
        }
        /// <p>An <code>XMLClassifier</code> object with updated fields.</p>
        pub fn set_xml_classifier(
            mut self,
            input: std::option::Option<crate::model::UpdateXmlClassifierRequest>,
        ) -> Self {
            self.inner = self.inner.set_xml_classifier(input);
            self
        }
        /// <p>A <code>JsonClassifier</code> object with updated fields.</p>
        pub fn json_classifier(mut self, input: crate::model::UpdateJsonClassifierRequest) -> Self {
            self.inner = self.inner.json_classifier(input);
            self
        }
        /// <p>A <code>JsonClassifier</code> object with updated fields.</p>
        pub fn set_json_classifier(
            mut self,
            input: std::option::Option<crate::model::UpdateJsonClassifierRequest>,
        ) -> Self {
            self.inner = self.inner.set_json_classifier(input);
            self
        }
        /// <p>A <code>CsvClassifier</code> object with updated fields.</p>
        pub fn csv_classifier(mut self, input: crate::model::UpdateCsvClassifierRequest) -> Self {
            self.inner = self.inner.csv_classifier(input);
            self
        }
        /// <p>A <code>CsvClassifier</code> object with updated fields.</p>
        pub fn set_csv_classifier(
            mut self,
            input: std::option::Option<crate::model::UpdateCsvClassifierRequest>,
        ) -> Self {
            self.inner = self.inner.set_csv_classifier(input);
            self
        }
    }
    /// Fluent builder constructing a request to `UpdateColumnStatisticsForPartition`.
    ///
    /// <p>Creates or updates partition statistics of columns.</p>
    /// <p>The Identity and Access Management (IAM) permission required for this operation is <code>UpdatePartition</code>.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct UpdateColumnStatisticsForPartition {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::update_column_statistics_for_partition_input::Builder,
    }
    impl UpdateColumnStatisticsForPartition {
        /// Creates a new `UpdateColumnStatisticsForPartition`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::UpdateColumnStatisticsForPartition,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<
                crate::error::UpdateColumnStatisticsForPartitionError,
            >,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::UpdateColumnStatisticsForPartitionOutput,
            aws_smithy_http::result::SdkError<
                crate::error::UpdateColumnStatisticsForPartitionError,
            >,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the Data Catalog where the partitions in question reside. If none is supplied, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog where the partitions in question reside. If none is supplied, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The name of the catalog database where the partitions reside.</p>
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        /// <p>The name of the catalog database where the partitions reside.</p>
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        /// <p>The name of the partitions' table.</p>
        pub fn table_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.table_name(input.into());
            self
        }
        /// <p>The name of the partitions' table.</p>
        pub fn set_table_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_table_name(input);
            self
        }
        /// Appends an item to `PartitionValues`.
        ///
        /// To override the contents of this collection use [`set_partition_values`](Self::set_partition_values).
        ///
        /// <p>A list of partition values identifying the partition.</p>
        pub fn partition_values(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.partition_values(input.into());
            self
        }
        /// <p>A list of partition values identifying the partition.</p>
        pub fn set_partition_values(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.inner = self.inner.set_partition_values(input);
            self
        }
        /// Appends an item to `ColumnStatisticsList`.
        ///
        /// To override the contents of this collection use [`set_column_statistics_list`](Self::set_column_statistics_list).
        ///
        /// <p>A list of the column statistics.</p>
        pub fn column_statistics_list(mut self, input: crate::model::ColumnStatistics) -> Self {
            self.inner = self.inner.column_statistics_list(input);
            self
        }
        /// <p>A list of the column statistics.</p>
        pub fn set_column_statistics_list(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::ColumnStatistics>>,
        ) -> Self {
            self.inner = self.inner.set_column_statistics_list(input);
            self
        }
    }
    /// Fluent builder constructing a request to `UpdateColumnStatisticsForTable`.
    ///
    /// <p>Creates or updates table statistics of columns.</p>
    /// <p>The Identity and Access Management (IAM) permission required for this operation is <code>UpdateTable</code>.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct UpdateColumnStatisticsForTable {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::update_column_statistics_for_table_input::Builder,
    }
    impl UpdateColumnStatisticsForTable {
        /// Creates a new `UpdateColumnStatisticsForTable`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::UpdateColumnStatisticsForTable,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::UpdateColumnStatisticsForTableError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::UpdateColumnStatisticsForTableOutput,
            aws_smithy_http::result::SdkError<crate::error::UpdateColumnStatisticsForTableError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the Data Catalog where the partitions in question reside. If none is supplied, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog where the partitions in question reside. If none is supplied, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The name of the catalog database where the partitions reside.</p>
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        /// <p>The name of the catalog database where the partitions reside.</p>
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        /// <p>The name of the partitions' table.</p>
        pub fn table_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.table_name(input.into());
            self
        }
        /// <p>The name of the partitions' table.</p>
        pub fn set_table_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_table_name(input);
            self
        }
        /// Appends an item to `ColumnStatisticsList`.
        ///
        /// To override the contents of this collection use [`set_column_statistics_list`](Self::set_column_statistics_list).
        ///
        /// <p>A list of the column statistics.</p>
        pub fn column_statistics_list(mut self, input: crate::model::ColumnStatistics) -> Self {
            self.inner = self.inner.column_statistics_list(input);
            self
        }
        /// <p>A list of the column statistics.</p>
        pub fn set_column_statistics_list(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::ColumnStatistics>>,
        ) -> Self {
            self.inner = self.inner.set_column_statistics_list(input);
            self
        }
    }
    /// Fluent builder constructing a request to `UpdateConnection`.
    ///
    /// <p>Updates a connection definition in the Data Catalog.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct UpdateConnection {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::update_connection_input::Builder,
    }
    impl UpdateConnection {
        /// Creates a new `UpdateConnection`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::UpdateConnection,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::UpdateConnectionError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::UpdateConnectionOutput,
            aws_smithy_http::result::SdkError<crate::error::UpdateConnectionError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the Data Catalog in which the connection resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog in which the connection resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The name of the connection definition to update.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The name of the connection definition to update.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
        /// <p>A <code>ConnectionInput</code> object that redefines the connection in question.</p>
        pub fn connection_input(mut self, input: crate::model::ConnectionInput) -> Self {
            self.inner = self.inner.connection_input(input);
            self
        }
        /// <p>A <code>ConnectionInput</code> object that redefines the connection in question.</p>
        pub fn set_connection_input(
            mut self,
            input: std::option::Option<crate::model::ConnectionInput>,
        ) -> Self {
            self.inner = self.inner.set_connection_input(input);
            self
        }
    }
    /// Fluent builder constructing a request to `UpdateCrawler`.
    ///
    /// <p>Updates a crawler. If a crawler is running, you must stop it using <code>StopCrawler</code> before updating it.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct UpdateCrawler {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::update_crawler_input::Builder,
    }
    impl UpdateCrawler {
        /// Creates a new `UpdateCrawler`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::UpdateCrawler,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::UpdateCrawlerError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::UpdateCrawlerOutput,
            aws_smithy_http::result::SdkError<crate::error::UpdateCrawlerError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>Name of the new crawler.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>Name of the new crawler.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
        /// <p>The IAM role or Amazon Resource Name (ARN) of an IAM role that is used by the new crawler to access customer resources.</p>
        pub fn role(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.role(input.into());
            self
        }
        /// <p>The IAM role or Amazon Resource Name (ARN) of an IAM role that is used by the new crawler to access customer resources.</p>
        pub fn set_role(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_role(input);
            self
        }
        /// <p>The Glue database where results are stored, such as: <code>arn:aws:daylight:us-east-1::database/sometable/*</code>.</p>
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        /// <p>The Glue database where results are stored, such as: <code>arn:aws:daylight:us-east-1::database/sometable/*</code>.</p>
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        /// <p>A description of the new crawler.</p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.description(input.into());
            self
        }
        /// <p>A description of the new crawler.</p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_description(input);
            self
        }
        /// <p>A list of targets to crawl.</p>
        pub fn targets(mut self, input: crate::model::CrawlerTargets) -> Self {
            self.inner = self.inner.targets(input);
            self
        }
        /// <p>A list of targets to crawl.</p>
        pub fn set_targets(
            mut self,
            input: std::option::Option<crate::model::CrawlerTargets>,
        ) -> Self {
            self.inner = self.inner.set_targets(input);
            self
        }
        /// <p>A <code>cron</code> expression used to specify the schedule (see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html">Time-Based Schedules for Jobs and Crawlers</a>. For example, to run something every day at 12:15 UTC, you would specify: <code>cron(15 12 * * ? *)</code>.</p>
        pub fn schedule(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.schedule(input.into());
            self
        }
        /// <p>A <code>cron</code> expression used to specify the schedule (see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html">Time-Based Schedules for Jobs and Crawlers</a>. For example, to run something every day at 12:15 UTC, you would specify: <code>cron(15 12 * * ? *)</code>.</p>
        pub fn set_schedule(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_schedule(input);
            self
        }
        /// Appends an item to `Classifiers`.
        ///
        /// To override the contents of this collection use [`set_classifiers`](Self::set_classifiers).
        ///
        /// <p>A list of custom classifiers that the user has registered. By default, all built-in classifiers are included in a crawl, but these custom classifiers always override the default classifiers for a given classification.</p>
        pub fn classifiers(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.classifiers(input.into());
            self
        }
        /// <p>A list of custom classifiers that the user has registered. By default, all built-in classifiers are included in a crawl, but these custom classifiers always override the default classifiers for a given classification.</p>
        pub fn set_classifiers(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.inner = self.inner.set_classifiers(input);
            self
        }
        /// <p>The table prefix used for catalog tables that are created.</p>
        pub fn table_prefix(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.table_prefix(input.into());
            self
        }
        /// <p>The table prefix used for catalog tables that are created.</p>
        pub fn set_table_prefix(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_table_prefix(input);
            self
        }
        /// <p>The policy for the crawler's update and deletion behavior.</p>
        pub fn schema_change_policy(mut self, input: crate::model::SchemaChangePolicy) -> Self {
            self.inner = self.inner.schema_change_policy(input);
            self
        }
        /// <p>The policy for the crawler's update and deletion behavior.</p>
        pub fn set_schema_change_policy(
            mut self,
            input: std::option::Option<crate::model::SchemaChangePolicy>,
        ) -> Self {
            self.inner = self.inner.set_schema_change_policy(input);
            self
        }
        /// <p>A policy that specifies whether to crawl the entire dataset again, or to crawl only folders that were added since the last crawler run.</p>
        pub fn recrawl_policy(mut self, input: crate::model::RecrawlPolicy) -> Self {
            self.inner = self.inner.recrawl_policy(input);
            self
        }
        /// <p>A policy that specifies whether to crawl the entire dataset again, or to crawl only folders that were added since the last crawler run.</p>
        pub fn set_recrawl_policy(
            mut self,
            input: std::option::Option<crate::model::RecrawlPolicy>,
        ) -> Self {
            self.inner = self.inner.set_recrawl_policy(input);
            self
        }
        /// <p>Specifies data lineage configuration settings for the crawler.</p>
        pub fn lineage_configuration(mut self, input: crate::model::LineageConfiguration) -> Self {
            self.inner = self.inner.lineage_configuration(input);
            self
        }
        /// <p>Specifies data lineage configuration settings for the crawler.</p>
        pub fn set_lineage_configuration(
            mut self,
            input: std::option::Option<crate::model::LineageConfiguration>,
        ) -> Self {
            self.inner = self.inner.set_lineage_configuration(input);
            self
        }
        /// <p>Specifies Lake Formation configuration settings for the crawler.</p>
        pub fn lake_formation_configuration(
            mut self,
            input: crate::model::LakeFormationConfiguration,
        ) -> Self {
            self.inner = self.inner.lake_formation_configuration(input);
            self
        }
        /// <p>Specifies Lake Formation configuration settings for the crawler.</p>
        pub fn set_lake_formation_configuration(
            mut self,
            input: std::option::Option<crate::model::LakeFormationConfiguration>,
        ) -> Self {
            self.inner = self.inner.set_lake_formation_configuration(input);
            self
        }
        /// <p>Crawler configuration information. This versioned JSON string allows users to specify aspects of a crawler's behavior. For more information, see <a href="https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html">Setting crawler configuration options</a>.</p>
        pub fn configuration(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.configuration(input.into());
            self
        }
        /// <p>Crawler configuration information. This versioned JSON string allows users to specify aspects of a crawler's behavior. For more information, see <a href="https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html">Setting crawler configuration options</a>.</p>
        pub fn set_configuration(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_configuration(input);
            self
        }
        /// <p>The name of the <code>SecurityConfiguration</code> structure to be used by this crawler.</p>
        pub fn crawler_security_configuration(
            mut self,
            input: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.crawler_security_configuration(input.into());
            self
        }
        /// <p>The name of the <code>SecurityConfiguration</code> structure to be used by this crawler.</p>
        pub fn set_crawler_security_configuration(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_crawler_security_configuration(input);
            self
        }
    }
    /// Fluent builder constructing a request to `UpdateCrawlerSchedule`.
    ///
    /// <p>Updates the schedule of a crawler using a <code>cron</code> expression. </p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct UpdateCrawlerSchedule {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::update_crawler_schedule_input::Builder,
    }
    impl UpdateCrawlerSchedule {
        /// Creates a new `UpdateCrawlerSchedule`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::UpdateCrawlerSchedule,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::UpdateCrawlerScheduleError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::UpdateCrawlerScheduleOutput,
            aws_smithy_http::result::SdkError<crate::error::UpdateCrawlerScheduleError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the crawler whose schedule to update.</p>
        pub fn crawler_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.crawler_name(input.into());
            self
        }
        /// <p>The name of the crawler whose schedule to update.</p>
        pub fn set_crawler_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_crawler_name(input);
            self
        }
        /// <p>The updated <code>cron</code> expression used to specify the schedule (see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html">Time-Based Schedules for Jobs and Crawlers</a>. For example, to run something every day at 12:15 UTC, you would specify: <code>cron(15 12 * * ? *)</code>.</p>
        pub fn schedule(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.schedule(input.into());
            self
        }
        /// <p>The updated <code>cron</code> expression used to specify the schedule (see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html">Time-Based Schedules for Jobs and Crawlers</a>. For example, to run something every day at 12:15 UTC, you would specify: <code>cron(15 12 * * ? *)</code>.</p>
        pub fn set_schedule(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_schedule(input);
            self
        }
    }
    /// Fluent builder constructing a request to `UpdateDatabase`.
    ///
    /// <p>Updates an existing database definition in a Data Catalog.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct UpdateDatabase {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::update_database_input::Builder,
    }
    impl UpdateDatabase {
        /// Creates a new `UpdateDatabase`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::UpdateDatabase,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::UpdateDatabaseError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::UpdateDatabaseOutput,
            aws_smithy_http::result::SdkError<crate::error::UpdateDatabaseError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the Data Catalog in which the metadata database resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog in which the metadata database resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The name of the database to update in the catalog. For Hive compatibility, this is folded to lowercase.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The name of the database to update in the catalog. For Hive compatibility, this is folded to lowercase.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
        /// <p>A <code>DatabaseInput</code> object specifying the new definition of the metadata database in the catalog.</p>
        pub fn database_input(mut self, input: crate::model::DatabaseInput) -> Self {
            self.inner = self.inner.database_input(input);
            self
        }
        /// <p>A <code>DatabaseInput</code> object specifying the new definition of the metadata database in the catalog.</p>
        pub fn set_database_input(
            mut self,
            input: std::option::Option<crate::model::DatabaseInput>,
        ) -> Self {
            self.inner = self.inner.set_database_input(input);
            self
        }
    }
    /// Fluent builder constructing a request to `UpdateDataQualityRuleset`.
    ///
    /// <p>Updates the specified data quality ruleset.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct UpdateDataQualityRuleset {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::update_data_quality_ruleset_input::Builder,
    }
    impl UpdateDataQualityRuleset {
        /// Creates a new `UpdateDataQualityRuleset`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::UpdateDataQualityRuleset,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::UpdateDataQualityRulesetError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::UpdateDataQualityRulesetOutput,
            aws_smithy_http::result::SdkError<crate::error::UpdateDataQualityRulesetError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the data quality ruleset.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The name of the data quality ruleset.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
        /// <p>The new name of the ruleset, if you are renaming it.</p>
        pub fn updated_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.updated_name(input.into());
            self
        }
        /// <p>The new name of the ruleset, if you are renaming it.</p>
        pub fn set_updated_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_updated_name(input);
            self
        }
        /// <p>A description of the ruleset.</p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.description(input.into());
            self
        }
        /// <p>A description of the ruleset.</p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_description(input);
            self
        }
        /// <p>A Data Quality Definition Language (DQDL) ruleset. For more information, see the Glue developer guide.</p>
        pub fn ruleset(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.ruleset(input.into());
            self
        }
        /// <p>A Data Quality Definition Language (DQDL) ruleset. For more information, see the Glue developer guide.</p>
        pub fn set_ruleset(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_ruleset(input);
            self
        }
    }
    /// Fluent builder constructing a request to `UpdateDevEndpoint`.
    ///
    /// <p>Updates a specified development endpoint.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct UpdateDevEndpoint {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::update_dev_endpoint_input::Builder,
    }
    impl UpdateDevEndpoint {
        /// Creates a new `UpdateDevEndpoint`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::UpdateDevEndpoint,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::UpdateDevEndpointError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::UpdateDevEndpointOutput,
            aws_smithy_http::result::SdkError<crate::error::UpdateDevEndpointError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the <code>DevEndpoint</code> to be updated.</p>
        pub fn endpoint_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.endpoint_name(input.into());
            self
        }
        /// <p>The name of the <code>DevEndpoint</code> to be updated.</p>
        pub fn set_endpoint_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_endpoint_name(input);
            self
        }
        /// <p>The public key for the <code>DevEndpoint</code> to use.</p>
        pub fn public_key(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.public_key(input.into());
            self
        }
        /// <p>The public key for the <code>DevEndpoint</code> to use.</p>
        pub fn set_public_key(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_public_key(input);
            self
        }
        /// Appends an item to `AddPublicKeys`.
        ///
        /// To override the contents of this collection use [`set_add_public_keys`](Self::set_add_public_keys).
        ///
        /// <p>The list of public keys for the <code>DevEndpoint</code> to use.</p>
        pub fn add_public_keys(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.add_public_keys(input.into());
            self
        }
        /// <p>The list of public keys for the <code>DevEndpoint</code> to use.</p>
        pub fn set_add_public_keys(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.inner = self.inner.set_add_public_keys(input);
            self
        }
        /// Appends an item to `DeletePublicKeys`.
        ///
        /// To override the contents of this collection use [`set_delete_public_keys`](Self::set_delete_public_keys).
        ///
        /// <p>The list of public keys to be deleted from the <code>DevEndpoint</code>.</p>
        pub fn delete_public_keys(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.delete_public_keys(input.into());
            self
        }
        /// <p>The list of public keys to be deleted from the <code>DevEndpoint</code>.</p>
        pub fn set_delete_public_keys(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.inner = self.inner.set_delete_public_keys(input);
            self
        }
        /// <p>Custom Python or Java libraries to be loaded in the <code>DevEndpoint</code>.</p>
        pub fn custom_libraries(mut self, input: crate::model::DevEndpointCustomLibraries) -> Self {
            self.inner = self.inner.custom_libraries(input);
            self
        }
        /// <p>Custom Python or Java libraries to be loaded in the <code>DevEndpoint</code>.</p>
        pub fn set_custom_libraries(
            mut self,
            input: std::option::Option<crate::model::DevEndpointCustomLibraries>,
        ) -> Self {
            self.inner = self.inner.set_custom_libraries(input);
            self
        }
        /// <p> <code>True</code> if the list of custom libraries to be loaded in the development endpoint needs to be updated, or <code>False</code> if otherwise.</p>
        pub fn update_etl_libraries(mut self, input: bool) -> Self {
            self.inner = self.inner.update_etl_libraries(input);
            self
        }
        /// <p> <code>True</code> if the list of custom libraries to be loaded in the development endpoint needs to be updated, or <code>False</code> if otherwise.</p>
        pub fn set_update_etl_libraries(mut self, input: std::option::Option<bool>) -> Self {
            self.inner = self.inner.set_update_etl_libraries(input);
            self
        }
        /// Appends an item to `DeleteArguments`.
        ///
        /// To override the contents of this collection use [`set_delete_arguments`](Self::set_delete_arguments).
        ///
        /// <p>The list of argument keys to be deleted from the map of arguments used to configure the <code>DevEndpoint</code>.</p>
        pub fn delete_arguments(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.delete_arguments(input.into());
            self
        }
        /// <p>The list of argument keys to be deleted from the map of arguments used to configure the <code>DevEndpoint</code>.</p>
        pub fn set_delete_arguments(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.inner = self.inner.set_delete_arguments(input);
            self
        }
        /// Adds a key-value pair to `AddArguments`.
        ///
        /// To override the contents of this collection use [`set_add_arguments`](Self::set_add_arguments).
        ///
        /// <p>The map of arguments to add the map of arguments used to configure the <code>DevEndpoint</code>.</p>
        /// <p>Valid arguments are:</p>
        /// <ul>
        /// <li> <p> <code>"--enable-glue-datacatalog": ""</code> </p> </li>
        /// </ul>
        /// <p>You can specify a version of Python support for development endpoints by using the <code>Arguments</code> parameter in the <code>CreateDevEndpoint</code> or <code>UpdateDevEndpoint</code> APIs. If no arguments are provided, the version defaults to Python 2.</p>
        pub fn add_arguments(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.add_arguments(k.into(), v.into());
            self
        }
        /// <p>The map of arguments to add the map of arguments used to configure the <code>DevEndpoint</code>.</p>
        /// <p>Valid arguments are:</p>
        /// <ul>
        /// <li> <p> <code>"--enable-glue-datacatalog": ""</code> </p> </li>
        /// </ul>
        /// <p>You can specify a version of Python support for development endpoints by using the <code>Arguments</code> parameter in the <code>CreateDevEndpoint</code> or <code>UpdateDevEndpoint</code> APIs. If no arguments are provided, the version defaults to Python 2.</p>
        pub fn set_add_arguments(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.inner = self.inner.set_add_arguments(input);
            self
        }
    }
    /// Fluent builder constructing a request to `UpdateJob`.
    ///
    /// <p>Updates an existing job definition. The previous job definition is completely overwritten by this information.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct UpdateJob {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::update_job_input::Builder,
    }
    impl UpdateJob {
        /// Creates a new `UpdateJob`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::UpdateJob,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::UpdateJobError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::UpdateJobOutput,
            aws_smithy_http::result::SdkError<crate::error::UpdateJobError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the job definition to update.</p>
        pub fn job_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.job_name(input.into());
            self
        }
        /// <p>The name of the job definition to update.</p>
        pub fn set_job_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_job_name(input);
            self
        }
        /// <p>Specifies the values with which to update the job definition. Unspecified configuration is removed or reset to default values.</p>
        pub fn job_update(mut self, input: crate::model::JobUpdate) -> Self {
            self.inner = self.inner.job_update(input);
            self
        }
        /// <p>Specifies the values with which to update the job definition. Unspecified configuration is removed or reset to default values.</p>
        pub fn set_job_update(
            mut self,
            input: std::option::Option<crate::model::JobUpdate>,
        ) -> Self {
            self.inner = self.inner.set_job_update(input);
            self
        }
    }
    /// Fluent builder constructing a request to `UpdateJobFromSourceControl`.
    ///
    /// <p>Synchronizes a job from the source control repository. This operation takes the job artifacts that are located in the remote repository and updates the Glue internal stores with these artifacts.</p>
    /// <p>This API supports optional parameters which take in the repository information.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct UpdateJobFromSourceControl {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::update_job_from_source_control_input::Builder,
    }
    impl UpdateJobFromSourceControl {
        /// Creates a new `UpdateJobFromSourceControl`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::UpdateJobFromSourceControl,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::UpdateJobFromSourceControlError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::UpdateJobFromSourceControlOutput,
            aws_smithy_http::result::SdkError<crate::error::UpdateJobFromSourceControlError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the Glue job to be synchronized to or from the remote repository.</p>
        pub fn job_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.job_name(input.into());
            self
        }
        /// <p>The name of the Glue job to be synchronized to or from the remote repository.</p>
        pub fn set_job_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_job_name(input);
            self
        }
        /// <p>The provider for the remote repository.</p>
        pub fn provider(mut self, input: crate::model::SourceControlProvider) -> Self {
            self.inner = self.inner.provider(input);
            self
        }
        /// <p>The provider for the remote repository.</p>
        pub fn set_provider(
            mut self,
            input: std::option::Option<crate::model::SourceControlProvider>,
        ) -> Self {
            self.inner = self.inner.set_provider(input);
            self
        }
        /// <p>The name of the remote repository that contains the job artifacts.</p>
        pub fn repository_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.repository_name(input.into());
            self
        }
        /// <p>The name of the remote repository that contains the job artifacts.</p>
        pub fn set_repository_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_repository_name(input);
            self
        }
        /// <p>The owner of the remote repository that contains the job artifacts.</p>
        pub fn repository_owner(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.repository_owner(input.into());
            self
        }
        /// <p>The owner of the remote repository that contains the job artifacts.</p>
        pub fn set_repository_owner(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_repository_owner(input);
            self
        }
        /// <p>An optional branch in the remote repository.</p>
        pub fn branch_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.branch_name(input.into());
            self
        }
        /// <p>An optional branch in the remote repository.</p>
        pub fn set_branch_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_branch_name(input);
            self
        }
        /// <p>An optional folder in the remote repository.</p>
        pub fn folder(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.folder(input.into());
            self
        }
        /// <p>An optional folder in the remote repository.</p>
        pub fn set_folder(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_folder(input);
            self
        }
        /// <p>A commit ID for a commit in the remote repository.</p>
        pub fn commit_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.commit_id(input.into());
            self
        }
        /// <p>A commit ID for a commit in the remote repository.</p>
        pub fn set_commit_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_commit_id(input);
            self
        }
        /// <p>The type of authentication, which can be an authentication token stored in Amazon Web Services Secrets Manager, or a personal access token.</p>
        pub fn auth_strategy(mut self, input: crate::model::SourceControlAuthStrategy) -> Self {
            self.inner = self.inner.auth_strategy(input);
            self
        }
        /// <p>The type of authentication, which can be an authentication token stored in Amazon Web Services Secrets Manager, or a personal access token.</p>
        pub fn set_auth_strategy(
            mut self,
            input: std::option::Option<crate::model::SourceControlAuthStrategy>,
        ) -> Self {
            self.inner = self.inner.set_auth_strategy(input);
            self
        }
        /// <p>The value of the authorization token.</p>
        pub fn auth_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.auth_token(input.into());
            self
        }
        /// <p>The value of the authorization token.</p>
        pub fn set_auth_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_auth_token(input);
            self
        }
    }
    /// Fluent builder constructing a request to `UpdateMLTransform`.
    ///
    /// <p>Updates an existing machine learning transform. Call this operation to tune the algorithm parameters to achieve better results.</p>
    /// <p>After calling this operation, you can call the <code>StartMLEvaluationTaskRun</code> operation to assess how well your new parameters achieved your goals (such as improving the quality of your machine learning transform, or making it more cost-effective).</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct UpdateMLTransform {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::update_ml_transform_input::Builder,
    }
    impl UpdateMLTransform {
        /// Creates a new `UpdateMLTransform`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::UpdateMLTransform,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::UpdateMLTransformError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::UpdateMlTransformOutput,
            aws_smithy_http::result::SdkError<crate::error::UpdateMLTransformError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>A unique identifier that was generated when the transform was created.</p>
        pub fn transform_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.transform_id(input.into());
            self
        }
        /// <p>A unique identifier that was generated when the transform was created.</p>
        pub fn set_transform_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_transform_id(input);
            self
        }
        /// <p>The unique name that you gave the transform when you created it.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The unique name that you gave the transform when you created it.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
        /// <p>A description of the transform. The default is an empty string.</p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.description(input.into());
            self
        }
        /// <p>A description of the transform. The default is an empty string.</p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_description(input);
            self
        }
        /// <p>The configuration parameters that are specific to the transform type (algorithm) used. Conditionally dependent on the transform type.</p>
        pub fn parameters(mut self, input: crate::model::TransformParameters) -> Self {
            self.inner = self.inner.parameters(input);
            self
        }
        /// <p>The configuration parameters that are specific to the transform type (algorithm) used. Conditionally dependent on the transform type.</p>
        pub fn set_parameters(
            mut self,
            input: std::option::Option<crate::model::TransformParameters>,
        ) -> Self {
            self.inner = self.inner.set_parameters(input);
            self
        }
        /// <p>The name or Amazon Resource Name (ARN) of the IAM role with the required permissions.</p>
        pub fn role(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.role(input.into());
            self
        }
        /// <p>The name or Amazon Resource Name (ARN) of the IAM role with the required permissions.</p>
        pub fn set_role(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_role(input);
            self
        }
        /// <p>This value determines which version of Glue this machine learning transform is compatible with. Glue 1.0 is recommended for most customers. If the value is not set, the Glue compatibility defaults to Glue 0.9. For more information, see <a href="https://docs.aws.amazon.com/glue/latest/dg/release-notes.html#release-notes-versions">Glue Versions</a> in the developer guide.</p>
        pub fn glue_version(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.glue_version(input.into());
            self
        }
        /// <p>This value determines which version of Glue this machine learning transform is compatible with. Glue 1.0 is recommended for most customers. If the value is not set, the Glue compatibility defaults to Glue 0.9. For more information, see <a href="https://docs.aws.amazon.com/glue/latest/dg/release-notes.html#release-notes-versions">Glue Versions</a> in the developer guide.</p>
        pub fn set_glue_version(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_glue_version(input);
            self
        }
        /// <p>The number of Glue data processing units (DPUs) that are allocated to task runs for this transform. You can allocate from 2 to 100 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the <a href="https://aws.amazon.com/glue/pricing/">Glue pricing page</a>. </p>
        /// <p>When the <code>WorkerType</code> field is set to a value other than <code>Standard</code>, the <code>MaxCapacity</code> field is set automatically and becomes read-only.</p>
        pub fn max_capacity(mut self, input: f64) -> Self {
            self.inner = self.inner.max_capacity(input);
            self
        }
        /// <p>The number of Glue data processing units (DPUs) that are allocated to task runs for this transform. You can allocate from 2 to 100 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the <a href="https://aws.amazon.com/glue/pricing/">Glue pricing page</a>. </p>
        /// <p>When the <code>WorkerType</code> field is set to a value other than <code>Standard</code>, the <code>MaxCapacity</code> field is set automatically and becomes read-only.</p>
        pub fn set_max_capacity(mut self, input: std::option::Option<f64>) -> Self {
            self.inner = self.inner.set_max_capacity(input);
            self
        }
        /// <p>The type of predefined worker that is allocated when this task runs. Accepts a value of Standard, G.1X, or G.2X.</p>
        /// <ul>
        /// <li> <p>For the <code>Standard</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.</p> </li>
        /// <li> <p>For the <code>G.1X</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 64GB disk, and 1 executor per worker.</p> </li>
        /// <li> <p>For the <code>G.2X</code> worker type, each worker provides 8 vCPU, 32 GB of memory and a 128GB disk, and 1 executor per worker.</p> </li>
        /// </ul>
        pub fn worker_type(mut self, input: crate::model::WorkerType) -> Self {
            self.inner = self.inner.worker_type(input);
            self
        }
        /// <p>The type of predefined worker that is allocated when this task runs. Accepts a value of Standard, G.1X, or G.2X.</p>
        /// <ul>
        /// <li> <p>For the <code>Standard</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.</p> </li>
        /// <li> <p>For the <code>G.1X</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 64GB disk, and 1 executor per worker.</p> </li>
        /// <li> <p>For the <code>G.2X</code> worker type, each worker provides 8 vCPU, 32 GB of memory and a 128GB disk, and 1 executor per worker.</p> </li>
        /// </ul>
        pub fn set_worker_type(
            mut self,
            input: std::option::Option<crate::model::WorkerType>,
        ) -> Self {
            self.inner = self.inner.set_worker_type(input);
            self
        }
        /// <p>The number of workers of a defined <code>workerType</code> that are allocated when this task runs.</p>
        pub fn number_of_workers(mut self, input: i32) -> Self {
            self.inner = self.inner.number_of_workers(input);
            self
        }
        /// <p>The number of workers of a defined <code>workerType</code> that are allocated when this task runs.</p>
        pub fn set_number_of_workers(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_number_of_workers(input);
            self
        }
        /// <p>The timeout for a task run for this transform in minutes. This is the maximum time that a task run for this transform can consume resources before it is terminated and enters <code>TIMEOUT</code> status. The default is 2,880 minutes (48 hours).</p>
        pub fn timeout(mut self, input: i32) -> Self {
            self.inner = self.inner.timeout(input);
            self
        }
        /// <p>The timeout for a task run for this transform in minutes. This is the maximum time that a task run for this transform can consume resources before it is terminated and enters <code>TIMEOUT</code> status. The default is 2,880 minutes (48 hours).</p>
        pub fn set_timeout(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_timeout(input);
            self
        }
        /// <p>The maximum number of times to retry a task for this transform after a task run fails.</p>
        pub fn max_retries(mut self, input: i32) -> Self {
            self.inner = self.inner.max_retries(input);
            self
        }
        /// <p>The maximum number of times to retry a task for this transform after a task run fails.</p>
        pub fn set_max_retries(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_retries(input);
            self
        }
    }
    /// Fluent builder constructing a request to `UpdatePartition`.
    ///
    /// <p>Updates a partition.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct UpdatePartition {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::update_partition_input::Builder,
    }
    impl UpdatePartition {
        /// Creates a new `UpdatePartition`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::UpdatePartition,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::UpdatePartitionError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::UpdatePartitionOutput,
            aws_smithy_http::result::SdkError<crate::error::UpdatePartitionError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the Data Catalog where the partition to be updated resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog where the partition to be updated resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The name of the catalog database in which the table in question resides.</p>
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        /// <p>The name of the catalog database in which the table in question resides.</p>
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        /// <p>The name of the table in which the partition to be updated is located.</p>
        pub fn table_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.table_name(input.into());
            self
        }
        /// <p>The name of the table in which the partition to be updated is located.</p>
        pub fn set_table_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_table_name(input);
            self
        }
        /// Appends an item to `PartitionValueList`.
        ///
        /// To override the contents of this collection use [`set_partition_value_list`](Self::set_partition_value_list).
        ///
        /// <p>List of partition key values that define the partition to update.</p>
        pub fn partition_value_list(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.partition_value_list(input.into());
            self
        }
        /// <p>List of partition key values that define the partition to update.</p>
        pub fn set_partition_value_list(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.inner = self.inner.set_partition_value_list(input);
            self
        }
        /// <p>The new partition object to update the partition to.</p>
        /// <p>The <code>Values</code> property can't be changed. If you want to change the partition key values for a partition, delete and recreate the partition.</p>
        pub fn partition_input(mut self, input: crate::model::PartitionInput) -> Self {
            self.inner = self.inner.partition_input(input);
            self
        }
        /// <p>The new partition object to update the partition to.</p>
        /// <p>The <code>Values</code> property can't be changed. If you want to change the partition key values for a partition, delete and recreate the partition.</p>
        pub fn set_partition_input(
            mut self,
            input: std::option::Option<crate::model::PartitionInput>,
        ) -> Self {
            self.inner = self.inner.set_partition_input(input);
            self
        }
    }
    /// Fluent builder constructing a request to `UpdateRegistry`.
    ///
    /// <p>Updates an existing registry which is used to hold a collection of schemas. The updated properties relate to the registry, and do not modify any of the schemas within the registry. </p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct UpdateRegistry {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::update_registry_input::Builder,
    }
    impl UpdateRegistry {
        /// Creates a new `UpdateRegistry`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::UpdateRegistry,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::UpdateRegistryError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::UpdateRegistryOutput,
            aws_smithy_http::result::SdkError<crate::error::UpdateRegistryError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>This is a wrapper structure that may contain the registry name and Amazon Resource Name (ARN).</p>
        pub fn registry_id(mut self, input: crate::model::RegistryId) -> Self {
            self.inner = self.inner.registry_id(input);
            self
        }
        /// <p>This is a wrapper structure that may contain the registry name and Amazon Resource Name (ARN).</p>
        pub fn set_registry_id(
            mut self,
            input: std::option::Option<crate::model::RegistryId>,
        ) -> Self {
            self.inner = self.inner.set_registry_id(input);
            self
        }
        /// <p>A description of the registry. If description is not provided, this field will not be updated.</p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.description(input.into());
            self
        }
        /// <p>A description of the registry. If description is not provided, this field will not be updated.</p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_description(input);
            self
        }
    }
    /// Fluent builder constructing a request to `UpdateSchema`.
    ///
    /// <p>Updates the description, compatibility setting, or version checkpoint for a schema set.</p>
    /// <p>For updating the compatibility setting, the call will not validate compatibility for the entire set of schema versions with the new compatibility setting. If the value for <code>Compatibility</code> is provided, the <code>VersionNumber</code> (a checkpoint) is also required. The API will validate the checkpoint version number for consistency.</p>
    /// <p>If the value for the <code>VersionNumber</code> (checkpoint) is provided, <code>Compatibility</code> is optional and this can be used to set/reset a checkpoint for the schema.</p>
    /// <p>This update will happen only if the schema is in the AVAILABLE state.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct UpdateSchema {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::update_schema_input::Builder,
    }
    impl UpdateSchema {
        /// Creates a new `UpdateSchema`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::UpdateSchema,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::UpdateSchemaError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::UpdateSchemaOutput,
            aws_smithy_http::result::SdkError<crate::error::UpdateSchemaError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>This is a wrapper structure to contain schema identity fields. The structure contains:</p>
        /// <ul>
        /// <li> <p>SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.</p> </li>
        /// <li> <p>SchemaId$SchemaName: The name of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.</p> </li>
        /// </ul>
        pub fn schema_id(mut self, input: crate::model::SchemaId) -> Self {
            self.inner = self.inner.schema_id(input);
            self
        }
        /// <p>This is a wrapper structure to contain schema identity fields. The structure contains:</p>
        /// <ul>
        /// <li> <p>SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.</p> </li>
        /// <li> <p>SchemaId$SchemaName: The name of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.</p> </li>
        /// </ul>
        pub fn set_schema_id(mut self, input: std::option::Option<crate::model::SchemaId>) -> Self {
            self.inner = self.inner.set_schema_id(input);
            self
        }
        /// <p>Version number required for check pointing. One of <code>VersionNumber</code> or <code>Compatibility</code> has to be provided.</p>
        pub fn schema_version_number(mut self, input: crate::model::SchemaVersionNumber) -> Self {
            self.inner = self.inner.schema_version_number(input);
            self
        }
        /// <p>Version number required for check pointing. One of <code>VersionNumber</code> or <code>Compatibility</code> has to be provided.</p>
        pub fn set_schema_version_number(
            mut self,
            input: std::option::Option<crate::model::SchemaVersionNumber>,
        ) -> Self {
            self.inner = self.inner.set_schema_version_number(input);
            self
        }
        /// <p>The new compatibility setting for the schema.</p>
        pub fn compatibility(mut self, input: crate::model::Compatibility) -> Self {
            self.inner = self.inner.compatibility(input);
            self
        }
        /// <p>The new compatibility setting for the schema.</p>
        pub fn set_compatibility(
            mut self,
            input: std::option::Option<crate::model::Compatibility>,
        ) -> Self {
            self.inner = self.inner.set_compatibility(input);
            self
        }
        /// <p>The new description for the schema.</p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.description(input.into());
            self
        }
        /// <p>The new description for the schema.</p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_description(input);
            self
        }
    }
    /// Fluent builder constructing a request to `UpdateSourceControlFromJob`.
    ///
    /// <p>Synchronizes a job to the source control repository. This operation takes the job artifacts from the Glue internal stores and makes a commit to the remote repository that is configured on the job.</p>
    /// <p>This API supports optional parameters which take in the repository information.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct UpdateSourceControlFromJob {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::update_source_control_from_job_input::Builder,
    }
    impl UpdateSourceControlFromJob {
        /// Creates a new `UpdateSourceControlFromJob`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::UpdateSourceControlFromJob,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::UpdateSourceControlFromJobError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::UpdateSourceControlFromJobOutput,
            aws_smithy_http::result::SdkError<crate::error::UpdateSourceControlFromJobError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the Glue job to be synchronized to or from the remote repository.</p>
        pub fn job_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.job_name(input.into());
            self
        }
        /// <p>The name of the Glue job to be synchronized to or from the remote repository.</p>
        pub fn set_job_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_job_name(input);
            self
        }
        /// <p>The provider for the remote repository.</p>
        pub fn provider(mut self, input: crate::model::SourceControlProvider) -> Self {
            self.inner = self.inner.provider(input);
            self
        }
        /// <p>The provider for the remote repository.</p>
        pub fn set_provider(
            mut self,
            input: std::option::Option<crate::model::SourceControlProvider>,
        ) -> Self {
            self.inner = self.inner.set_provider(input);
            self
        }
        /// <p>The name of the remote repository that contains the job artifacts.</p>
        pub fn repository_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.repository_name(input.into());
            self
        }
        /// <p>The name of the remote repository that contains the job artifacts.</p>
        pub fn set_repository_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_repository_name(input);
            self
        }
        /// <p>The owner of the remote repository that contains the job artifacts.</p>
        pub fn repository_owner(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.repository_owner(input.into());
            self
        }
        /// <p>The owner of the remote repository that contains the job artifacts.</p>
        pub fn set_repository_owner(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_repository_owner(input);
            self
        }
        /// <p>An optional branch in the remote repository.</p>
        pub fn branch_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.branch_name(input.into());
            self
        }
        /// <p>An optional branch in the remote repository.</p>
        pub fn set_branch_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_branch_name(input);
            self
        }
        /// <p>An optional folder in the remote repository.</p>
        pub fn folder(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.folder(input.into());
            self
        }
        /// <p>An optional folder in the remote repository.</p>
        pub fn set_folder(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_folder(input);
            self
        }
        /// <p>A commit ID for a commit in the remote repository.</p>
        pub fn commit_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.commit_id(input.into());
            self
        }
        /// <p>A commit ID for a commit in the remote repository.</p>
        pub fn set_commit_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_commit_id(input);
            self
        }
        /// <p>The type of authentication, which can be an authentication token stored in Amazon Web Services Secrets Manager, or a personal access token.</p>
        pub fn auth_strategy(mut self, input: crate::model::SourceControlAuthStrategy) -> Self {
            self.inner = self.inner.auth_strategy(input);
            self
        }
        /// <p>The type of authentication, which can be an authentication token stored in Amazon Web Services Secrets Manager, or a personal access token.</p>
        pub fn set_auth_strategy(
            mut self,
            input: std::option::Option<crate::model::SourceControlAuthStrategy>,
        ) -> Self {
            self.inner = self.inner.set_auth_strategy(input);
            self
        }
        /// <p>The value of the authorization token.</p>
        pub fn auth_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.auth_token(input.into());
            self
        }
        /// <p>The value of the authorization token.</p>
        pub fn set_auth_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_auth_token(input);
            self
        }
    }
    /// Fluent builder constructing a request to `UpdateTable`.
    ///
    /// <p>Updates a metadata table in the Data Catalog.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct UpdateTable {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::update_table_input::Builder,
    }
    impl UpdateTable {
        /// Creates a new `UpdateTable`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::UpdateTable,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::UpdateTableError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::UpdateTableOutput,
            aws_smithy_http::result::SdkError<crate::error::UpdateTableError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the Data Catalog where the table resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog where the table resides. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The name of the catalog database in which the table resides. For Hive compatibility, this name is entirely lowercase.</p>
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        /// <p>The name of the catalog database in which the table resides. For Hive compatibility, this name is entirely lowercase.</p>
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        /// <p>An updated <code>TableInput</code> object to define the metadata table in the catalog.</p>
        pub fn table_input(mut self, input: crate::model::TableInput) -> Self {
            self.inner = self.inner.table_input(input);
            self
        }
        /// <p>An updated <code>TableInput</code> object to define the metadata table in the catalog.</p>
        pub fn set_table_input(
            mut self,
            input: std::option::Option<crate::model::TableInput>,
        ) -> Self {
            self.inner = self.inner.set_table_input(input);
            self
        }
        /// <p>By default, <code>UpdateTable</code> always creates an archived version of the table before updating it. However, if <code>skipArchive</code> is set to true, <code>UpdateTable</code> does not create the archived version.</p>
        pub fn skip_archive(mut self, input: bool) -> Self {
            self.inner = self.inner.skip_archive(input);
            self
        }
        /// <p>By default, <code>UpdateTable</code> always creates an archived version of the table before updating it. However, if <code>skipArchive</code> is set to true, <code>UpdateTable</code> does not create the archived version.</p>
        pub fn set_skip_archive(mut self, input: std::option::Option<bool>) -> Self {
            self.inner = self.inner.set_skip_archive(input);
            self
        }
        /// <p>The transaction ID at which to update the table contents. </p>
        pub fn transaction_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.transaction_id(input.into());
            self
        }
        /// <p>The transaction ID at which to update the table contents. </p>
        pub fn set_transaction_id(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_transaction_id(input);
            self
        }
        /// <p>The version ID at which to update the table contents. </p>
        pub fn version_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.version_id(input.into());
            self
        }
        /// <p>The version ID at which to update the table contents. </p>
        pub fn set_version_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_version_id(input);
            self
        }
    }
    /// Fluent builder constructing a request to `UpdateTrigger`.
    ///
    /// <p>Updates a trigger definition.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct UpdateTrigger {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::update_trigger_input::Builder,
    }
    impl UpdateTrigger {
        /// Creates a new `UpdateTrigger`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::UpdateTrigger,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::UpdateTriggerError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::UpdateTriggerOutput,
            aws_smithy_http::result::SdkError<crate::error::UpdateTriggerError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The name of the trigger to update.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>The name of the trigger to update.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
        /// <p>The new values with which to update the trigger.</p>
        pub fn trigger_update(mut self, input: crate::model::TriggerUpdate) -> Self {
            self.inner = self.inner.trigger_update(input);
            self
        }
        /// <p>The new values with which to update the trigger.</p>
        pub fn set_trigger_update(
            mut self,
            input: std::option::Option<crate::model::TriggerUpdate>,
        ) -> Self {
            self.inner = self.inner.set_trigger_update(input);
            self
        }
    }
    /// Fluent builder constructing a request to `UpdateUserDefinedFunction`.
    ///
    /// <p>Updates an existing function definition in the Data Catalog.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct UpdateUserDefinedFunction {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::update_user_defined_function_input::Builder,
    }
    impl UpdateUserDefinedFunction {
        /// Creates a new `UpdateUserDefinedFunction`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::UpdateUserDefinedFunction,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::UpdateUserDefinedFunctionError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::UpdateUserDefinedFunctionOutput,
            aws_smithy_http::result::SdkError<crate::error::UpdateUserDefinedFunctionError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>The ID of the Data Catalog where the function to be updated is located. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn catalog_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.catalog_id(input.into());
            self
        }
        /// <p>The ID of the Data Catalog where the function to be updated is located. If none is provided, the Amazon Web Services account ID is used by default.</p>
        pub fn set_catalog_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_catalog_id(input);
            self
        }
        /// <p>The name of the catalog database where the function to be updated is located.</p>
        pub fn database_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.database_name(input.into());
            self
        }
        /// <p>The name of the catalog database where the function to be updated is located.</p>
        pub fn set_database_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_database_name(input);
            self
        }
        /// <p>The name of the function.</p>
        pub fn function_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.function_name(input.into());
            self
        }
        /// <p>The name of the function.</p>
        pub fn set_function_name(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.inner = self.inner.set_function_name(input);
            self
        }
        /// <p>A <code>FunctionInput</code> object that redefines the function in the Data Catalog.</p>
        pub fn function_input(mut self, input: crate::model::UserDefinedFunctionInput) -> Self {
            self.inner = self.inner.function_input(input);
            self
        }
        /// <p>A <code>FunctionInput</code> object that redefines the function in the Data Catalog.</p>
        pub fn set_function_input(
            mut self,
            input: std::option::Option<crate::model::UserDefinedFunctionInput>,
        ) -> Self {
            self.inner = self.inner.set_function_input(input);
            self
        }
    }
    /// Fluent builder constructing a request to `UpdateWorkflow`.
    ///
    /// <p>Updates an existing workflow.</p>
    #[derive(std::clone::Clone, std::fmt::Debug)]
    pub struct UpdateWorkflow {
        handle: std::sync::Arc<super::Handle>,
        inner: crate::input::update_workflow_input::Builder,
    }
    impl UpdateWorkflow {
        /// Creates a new `UpdateWorkflow`.
        pub(crate) fn new(handle: std::sync::Arc<super::Handle>) -> Self {
            Self {
                handle,
                inner: Default::default(),
            }
        }

        /// Consume this builder, creating a customizable operation that can be modified before being
        /// sent. The operation's inner [http::Request] can be modified as well.
        pub async fn customize(
            self,
        ) -> std::result::Result<
            crate::operation::customize::CustomizableOperation<
                crate::operation::UpdateWorkflow,
                aws_http::retry::AwsResponseRetryClassifier,
            >,
            aws_smithy_http::result::SdkError<crate::error::UpdateWorkflowError>,
        > {
            let handle = self.handle.clone();
            let operation = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            Ok(crate::operation::customize::CustomizableOperation { handle, operation })
        }

        /// Sends the request and returns the response.
        ///
        /// If an error occurs, an `SdkError` will be returned with additional details that
        /// can be matched against.
        ///
        /// By default, any retryable failures will be retried twice. Retry behavior
        /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
        /// set when configuring the client.
        pub async fn send(
            self,
        ) -> std::result::Result<
            crate::output::UpdateWorkflowOutput,
            aws_smithy_http::result::SdkError<crate::error::UpdateWorkflowError>,
        > {
            let op = self
                .inner
                .build()
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?
                .make_operation(&self.handle.conf)
                .await
                .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
            self.handle.client.call(op).await
        }
        /// <p>Name of the workflow to be updated.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.name(input.into());
            self
        }
        /// <p>Name of the workflow to be updated.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_name(input);
            self
        }
        /// <p>The description of the workflow.</p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.inner = self.inner.description(input.into());
            self
        }
        /// <p>The description of the workflow.</p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.inner = self.inner.set_description(input);
            self
        }
        /// Adds a key-value pair to `DefaultRunProperties`.
        ///
        /// To override the contents of this collection use [`set_default_run_properties`](Self::set_default_run_properties).
        ///
        /// <p>A collection of properties to be used as part of each execution of the workflow.</p>
        pub fn default_run_properties(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            self.inner = self.inner.default_run_properties(k.into(), v.into());
            self
        }
        /// <p>A collection of properties to be used as part of each execution of the workflow.</p>
        pub fn set_default_run_properties(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.inner = self.inner.set_default_run_properties(input);
            self
        }
        /// <p>You can use this parameter to prevent unwanted multiple updates to data, to control costs, or in some cases, to prevent exceeding the maximum number of concurrent runs of any of the component jobs. If you leave this parameter blank, there is no limit to the number of concurrent workflow runs.</p>
        pub fn max_concurrent_runs(mut self, input: i32) -> Self {
            self.inner = self.inner.max_concurrent_runs(input);
            self
        }
        /// <p>You can use this parameter to prevent unwanted multiple updates to data, to control costs, or in some cases, to prevent exceeding the maximum number of concurrent runs of any of the component jobs. If you leave this parameter blank, there is no limit to the number of concurrent workflow runs.</p>
        pub fn set_max_concurrent_runs(mut self, input: std::option::Option<i32>) -> Self {
            self.inner = self.inner.set_max_concurrent_runs(input);
            self
        }
    }
}

impl Client {
    /// Creates a new client from an [SDK Config](aws_types::sdk_config::SdkConfig).
    ///
    /// # Panics
    ///
    /// - This method will panic if the `sdk_config` is missing an async sleep implementation. If you experience this panic, set
    ///     the `sleep_impl` on the Config passed into this function to fix it.
    /// - This method will panic if the `sdk_config` is missing an HTTP connector. If you experience this panic, set the
    ///     `http_connector` on the Config passed into this function to fix it.
    pub fn new(sdk_config: &aws_types::sdk_config::SdkConfig) -> Self {
        Self::from_conf(sdk_config.into())
    }

    /// Creates a new client from the service [`Config`](crate::Config).
    ///
    /// # Panics
    ///
    /// - This method will panic if the `conf` is missing an async sleep implementation. If you experience this panic, set
    ///     the `sleep_impl` on the Config passed into this function to fix it.
    /// - This method will panic if the `conf` is missing an HTTP connector. If you experience this panic, set the
    ///     `http_connector` on the Config passed into this function to fix it.
    pub fn from_conf(conf: crate::Config) -> Self {
        let retry_config = conf
            .retry_config()
            .cloned()
            .unwrap_or_else(aws_smithy_types::retry::RetryConfig::disabled);
        let timeout_config = conf
            .timeout_config()
            .cloned()
            .unwrap_or_else(aws_smithy_types::timeout::TimeoutConfig::disabled);
        let sleep_impl = conf.sleep_impl();
        if (retry_config.has_retry() || timeout_config.has_timeouts()) && sleep_impl.is_none() {
            panic!("An async sleep implementation is required for retries or timeouts to work. \
                                    Set the `sleep_impl` on the Config passed into this function to fix this panic.");
        }

        let connector = conf.http_connector().and_then(|c| {
            let timeout_config = conf
                .timeout_config()
                .cloned()
                .unwrap_or_else(aws_smithy_types::timeout::TimeoutConfig::disabled);
            let connector_settings =
                aws_smithy_client::http_connector::ConnectorSettings::from_timeout_config(
                    &timeout_config,
                );
            c.connector(&connector_settings, conf.sleep_impl())
        });

        let builder = aws_smithy_client::Builder::new();

        let builder = match connector {
            // Use provided connector
            Some(c) => builder.connector(c),
            None => {
                #[cfg(any(feature = "rustls", feature = "native-tls"))]
                {
                    // Use default connector based on enabled features
                    builder.dyn_https_connector(
                        aws_smithy_client::http_connector::ConnectorSettings::from_timeout_config(
                            &timeout_config,
                        ),
                    )
                }
                #[cfg(not(any(feature = "rustls", feature = "native-tls")))]
                {
                    panic!("No HTTP connector was available. Enable the `rustls` or `native-tls` crate feature or set a connector to fix this.");
                }
            }
        };
        let mut builder = builder
            .middleware(aws_smithy_client::erase::DynMiddleware::new(
                crate::middleware::DefaultMiddleware::new(),
            ))
            .retry_config(retry_config.into())
            .operation_timeout_config(timeout_config.into());
        builder.set_sleep_impl(sleep_impl);
        let client = builder.build();

        Self {
            handle: std::sync::Arc::new(Handle { client, conf }),
        }
    }
}