aws-sdk-connect 1.149.0

AWS SDK for Amazon Connect Service
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub use crate::operation::update_data_table_attribute::_update_data_table_attribute_output::UpdateDataTableAttributeOutputBuilder;

pub use crate::operation::update_data_table_attribute::_update_data_table_attribute_input::UpdateDataTableAttributeInputBuilder;

impl crate::operation::update_data_table_attribute::builders::UpdateDataTableAttributeInputBuilder {
    /// Sends a request with this input using the given client.
    pub async fn send_with(
        self,
        client: &crate::Client,
    ) -> ::std::result::Result<
        crate::operation::update_data_table_attribute::UpdateDataTableAttributeOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::update_data_table_attribute::UpdateDataTableAttributeError,
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
        >,
    > {
        let mut fluent_builder = client.update_data_table_attribute();
        fluent_builder.inner = self;
        fluent_builder.send().await
    }
}
/// Fluent builder constructing a request to `UpdateDataTableAttribute`.
///
/// <p>Updates all properties for an attribute using all properties from CreateDataTableAttribute. There are no other granular update endpoints. It does not act as a patch operation - all properties must be provided. System managed attributes are not mutable by customers. Changing an attribute's validation does not invalidate existing values since validation only runs when values are created or updated.</p>
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
pub struct UpdateDataTableAttributeFluentBuilder {
    handle: ::std::sync::Arc<crate::client::Handle>,
    inner: crate::operation::update_data_table_attribute::builders::UpdateDataTableAttributeInputBuilder,
    config_override: ::std::option::Option<crate::config::Builder>,
}
impl
    crate::client::customize::internal::CustomizableSend<
        crate::operation::update_data_table_attribute::UpdateDataTableAttributeOutput,
        crate::operation::update_data_table_attribute::UpdateDataTableAttributeError,
    > for UpdateDataTableAttributeFluentBuilder
{
    fn send(
        self,
        config_override: crate::config::Builder,
    ) -> crate::client::customize::internal::BoxFuture<
        crate::client::customize::internal::SendResult<
            crate::operation::update_data_table_attribute::UpdateDataTableAttributeOutput,
            crate::operation::update_data_table_attribute::UpdateDataTableAttributeError,
        >,
    > {
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
    }
}
impl UpdateDataTableAttributeFluentBuilder {
    /// Creates a new `UpdateDataTableAttributeFluentBuilder`.
    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 UpdateDataTableAttribute as a reference.
    pub fn as_input(&self) -> &crate::operation::update_data_table_attribute::builders::UpdateDataTableAttributeInputBuilder {
        &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::update_data_table_attribute::UpdateDataTableAttributeOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::update_data_table_attribute::UpdateDataTableAttributeError,
            ::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::update_data_table_attribute::UpdateDataTableAttribute::operation_runtime_plugins(
            self.handle.runtime_plugins.clone(),
            &self.handle.conf,
            self.config_override,
        );
        crate::operation::update_data_table_attribute::UpdateDataTableAttribute::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::update_data_table_attribute::UpdateDataTableAttributeOutput,
        crate::operation::update_data_table_attribute::UpdateDataTableAttributeError,
        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 unique identifier for the Amazon Connect instance.</p>
    pub fn instance_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.instance_id(input.into());
        self
    }
    /// <p>The unique identifier for the Amazon Connect instance.</p>
    pub fn set_instance_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_instance_id(input);
        self
    }
    /// <p>The unique identifier for the Amazon Connect instance.</p>
    pub fn get_instance_id(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_instance_id()
    }
    /// <p>The unique identifier for the data table. Must also accept the table ARN with or without a version alias.</p>
    pub fn data_table_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.data_table_id(input.into());
        self
    }
    /// <p>The unique identifier for the data table. Must also accept the table ARN with or without a version alias.</p>
    pub fn set_data_table_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_data_table_id(input);
        self
    }
    /// <p>The unique identifier for the data table. Must also accept the table ARN with or without a version alias.</p>
    pub fn get_data_table_id(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_data_table_id()
    }
    /// <p>The current name of the attribute to update. Used as an identifier since attribute names can be changed.</p>
    pub fn attribute_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.attribute_name(input.into());
        self
    }
    /// <p>The current name of the attribute to update. Used as an identifier since attribute names can be changed.</p>
    pub fn set_attribute_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_attribute_name(input);
        self
    }
    /// <p>The current name of the attribute to update. Used as an identifier since attribute names can be changed.</p>
    pub fn get_attribute_name(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_attribute_name()
    }
    /// <p>The new name for the attribute. Must conform to Connect human readable string specification and be unique within the data table.</p>
    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.name(input.into());
        self
    }
    /// <p>The new name for the attribute. Must conform to Connect human readable string specification and be unique within the data table.</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 for the attribute. Must conform to Connect human readable string specification and be unique within the data table.</p>
    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_name()
    }
    /// <p>The updated value type for the attribute. When changing value types, existing values are not deleted but may return default values if incompatible.</p>
    pub fn value_type(mut self, input: crate::types::DataTableAttributeValueType) -> Self {
        self.inner = self.inner.value_type(input);
        self
    }
    /// <p>The updated value type for the attribute. When changing value types, existing values are not deleted but may return default values if incompatible.</p>
    pub fn set_value_type(mut self, input: ::std::option::Option<crate::types::DataTableAttributeValueType>) -> Self {
        self.inner = self.inner.set_value_type(input);
        self
    }
    /// <p>The updated value type for the attribute. When changing value types, existing values are not deleted but may return default values if incompatible.</p>
    pub fn get_value_type(&self) -> &::std::option::Option<crate::types::DataTableAttributeValueType> {
        self.inner.get_value_type()
    }
    /// <p>The updated description for the attribute.</p>
    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.description(input.into());
        self
    }
    /// <p>The updated description for the attribute.</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 updated description for the attribute.</p>
    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_description()
    }
    /// <p>Whether the attribute should be treated as a primary key. Converting to primary attribute requires existing values to maintain uniqueness.</p>
    pub fn primary(mut self, input: bool) -> Self {
        self.inner = self.inner.primary(input);
        self
    }
    /// <p>Whether the attribute should be treated as a primary key. Converting to primary attribute requires existing values to maintain uniqueness.</p>
    pub fn set_primary(mut self, input: ::std::option::Option<bool>) -> Self {
        self.inner = self.inner.set_primary(input);
        self
    }
    /// <p>Whether the attribute should be treated as a primary key. Converting to primary attribute requires existing values to maintain uniqueness.</p>
    pub fn get_primary(&self) -> &::std::option::Option<bool> {
        self.inner.get_primary()
    }
    /// <p>The updated validation rules for the attribute. Changes do not affect existing values until they are modified.</p>
    pub fn validation(mut self, input: crate::types::Validation) -> Self {
        self.inner = self.inner.validation(input);
        self
    }
    /// <p>The updated validation rules for the attribute. Changes do not affect existing values until they are modified.</p>
    pub fn set_validation(mut self, input: ::std::option::Option<crate::types::Validation>) -> Self {
        self.inner = self.inner.set_validation(input);
        self
    }
    /// <p>The updated validation rules for the attribute. Changes do not affect existing values until they are modified.</p>
    pub fn get_validation(&self) -> &::std::option::Option<crate::types::Validation> {
        self.inner.get_validation()
    }
}