aws-sdk-cloudwatchlogs 1.134.0

AWS SDK for Amazon CloudWatch Logs
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub use crate::operation::associate_source_to_s3_table_integration::_associate_source_to_s3_table_integration_input::AssociateSourceToS3TableIntegrationInputBuilder;

pub use crate::operation::associate_source_to_s3_table_integration::_associate_source_to_s3_table_integration_output::AssociateSourceToS3TableIntegrationOutputBuilder;

impl crate::operation::associate_source_to_s3_table_integration::builders::AssociateSourceToS3TableIntegrationInputBuilder {
    /// Sends a request with this input using the given client.
    pub async fn send_with(
        self,
        client: &crate::Client,
    ) -> ::std::result::Result<
        crate::operation::associate_source_to_s3_table_integration::AssociateSourceToS3TableIntegrationOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::associate_source_to_s3_table_integration::AssociateSourceToS3TableIntegrationError,
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
        >,
    > {
        let mut fluent_builder = client.associate_source_to_s3_table_integration();
        fluent_builder.inner = self;
        fluent_builder.send().await
    }
}
/// Fluent builder constructing a request to `AssociateSourceToS3TableIntegration`.
///
/// <p>Associates a data source with an S3 Table Integration for query access in the 'logs' namespace. This enables querying log data using analytics engines that support Iceberg such as Amazon Athena, Amazon Redshift, and Apache Spark.</p>
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
pub struct AssociateSourceToS3TableIntegrationFluentBuilder {
    handle: ::std::sync::Arc<crate::client::Handle>,
    inner: crate::operation::associate_source_to_s3_table_integration::builders::AssociateSourceToS3TableIntegrationInputBuilder,
    config_override: ::std::option::Option<crate::config::Builder>,
}
impl
    crate::client::customize::internal::CustomizableSend<
        crate::operation::associate_source_to_s3_table_integration::AssociateSourceToS3TableIntegrationOutput,
        crate::operation::associate_source_to_s3_table_integration::AssociateSourceToS3TableIntegrationError,
    > for AssociateSourceToS3TableIntegrationFluentBuilder
{
    fn send(
        self,
        config_override: crate::config::Builder,
    ) -> crate::client::customize::internal::BoxFuture<
        crate::client::customize::internal::SendResult<
            crate::operation::associate_source_to_s3_table_integration::AssociateSourceToS3TableIntegrationOutput,
            crate::operation::associate_source_to_s3_table_integration::AssociateSourceToS3TableIntegrationError,
        >,
    > {
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
    }
}
impl AssociateSourceToS3TableIntegrationFluentBuilder {
    /// Creates a new `AssociateSourceToS3TableIntegrationFluentBuilder`.
    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
        Self {
            handle,
            inner: ::std::default::Default::default(),
            config_override: ::std::option::Option::None,
        }
    }
    /// Access the AssociateSourceToS3TableIntegration as a reference.
    pub fn as_input(&self) -> &crate::operation::associate_source_to_s3_table_integration::builders::AssociateSourceToS3TableIntegrationInputBuilder {
        &self.inner
    }
    /// 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::operation::associate_source_to_s3_table_integration::AssociateSourceToS3TableIntegrationOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::associate_source_to_s3_table_integration::AssociateSourceToS3TableIntegrationError,
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
        >,
    > {
        let input = self
            .inner
            .build()
            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
        let runtime_plugins =
            crate::operation::associate_source_to_s3_table_integration::AssociateSourceToS3TableIntegration::operation_runtime_plugins(
                self.handle.runtime_plugins.clone(),
                &self.handle.conf,
                self.config_override,
            );
        crate::operation::associate_source_to_s3_table_integration::AssociateSourceToS3TableIntegration::orchestrate(&runtime_plugins, input).await
    }

    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
    pub fn customize(
        self,
    ) -> crate::client::customize::CustomizableOperation<
        crate::operation::associate_source_to_s3_table_integration::AssociateSourceToS3TableIntegrationOutput,
        crate::operation::associate_source_to_s3_table_integration::AssociateSourceToS3TableIntegrationError,
        Self,
    > {
        crate::client::customize::CustomizableOperation::new(self)
    }
    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
        self.set_config_override(::std::option::Option::Some(config_override.into()));
        self
    }

    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
        self.config_override = config_override;
        self
    }
    /// <p>The Amazon Resource Name (ARN) of the S3 Table Integration to associate the data source with.</p>
    pub fn integration_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.integration_arn(input.into());
        self
    }
    /// <p>The Amazon Resource Name (ARN) of the S3 Table Integration to associate the data source with.</p>
    pub fn set_integration_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_integration_arn(input);
        self
    }
    /// <p>The Amazon Resource Name (ARN) of the S3 Table Integration to associate the data source with.</p>
    pub fn get_integration_arn(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_integration_arn()
    }
    /// <p>The data source to associate with the S3 Table Integration. Contains the name and type of the data source.</p>
    pub fn data_source(mut self, input: crate::types::DataSource) -> Self {
        self.inner = self.inner.data_source(input);
        self
    }
    /// <p>The data source to associate with the S3 Table Integration. Contains the name and type of the data source.</p>
    pub fn set_data_source(mut self, input: ::std::option::Option<crate::types::DataSource>) -> Self {
        self.inner = self.inner.set_data_source(input);
        self
    }
    /// <p>The data source to associate with the S3 Table Integration. Contains the name and type of the data source.</p>
    pub fn get_data_source(&self) -> &::std::option::Option<crate::types::DataSource> {
        self.inner.get_data_source()
    }
}