aws-sdk-datazone 1.136.0

AWS SDK for Amazon DataZone
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub use crate::operation::create_asset_revision::_create_asset_revision_input::CreateAssetRevisionInputBuilder;

pub use crate::operation::create_asset_revision::_create_asset_revision_output::CreateAssetRevisionOutputBuilder;

impl crate::operation::create_asset_revision::builders::CreateAssetRevisionInputBuilder {
    /// Sends a request with this input using the given client.
    pub async fn send_with(
        self,
        client: &crate::Client,
    ) -> ::std::result::Result<
        crate::operation::create_asset_revision::CreateAssetRevisionOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::create_asset_revision::CreateAssetRevisionError,
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
        >,
    > {
        let mut fluent_builder = client.create_asset_revision();
        fluent_builder.inner = self;
        fluent_builder.send().await
    }
}
/// Fluent builder constructing a request to `CreateAssetRevision`.
///
/// <p>Creates a revision of the asset.</p>
/// <p>Asset revisions represent new versions of existing assets, capturing changes to either the underlying data or its metadata. They maintain a historical record of how assets evolve over time, who made changes, and when those changes occurred. This versioning capability is crucial for governance and compliance, allowing organizations to track changes, understand their impact, and roll back if necessary.</p>
/// <p>Prerequisites:</p>
/// <ul>
/// <li>
/// <p>Asset must already exist in the domain with identifier.</p></li>
/// <li>
/// <p><code>formsInput</code> is required when asset has the form type. <code>typeRevision</code> should be the latest version of form type.</p></li>
/// <li>
/// <p>The form content must include all required fields (e.g., <code>bucketArn</code> for <code>S3ObjectCollectionForm</code>).</p></li>
/// <li>
/// <p>The owning project of the original asset must still exist and be active.</p></li>
/// <li>
/// <p>User must have write access to the project and domain.</p></li>
/// </ul>
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
pub struct CreateAssetRevisionFluentBuilder {
    handle: ::std::sync::Arc<crate::client::Handle>,
    inner: crate::operation::create_asset_revision::builders::CreateAssetRevisionInputBuilder,
    config_override: ::std::option::Option<crate::config::Builder>,
}
impl
    crate::client::customize::internal::CustomizableSend<
        crate::operation::create_asset_revision::CreateAssetRevisionOutput,
        crate::operation::create_asset_revision::CreateAssetRevisionError,
    > for CreateAssetRevisionFluentBuilder
{
    fn send(
        self,
        config_override: crate::config::Builder,
    ) -> crate::client::customize::internal::BoxFuture<
        crate::client::customize::internal::SendResult<
            crate::operation::create_asset_revision::CreateAssetRevisionOutput,
            crate::operation::create_asset_revision::CreateAssetRevisionError,
        >,
    > {
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
    }
}
impl CreateAssetRevisionFluentBuilder {
    /// Creates a new `CreateAssetRevisionFluentBuilder`.
    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 CreateAssetRevision as a reference.
    pub fn as_input(&self) -> &crate::operation::create_asset_revision::builders::CreateAssetRevisionInputBuilder {
        &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::create_asset_revision::CreateAssetRevisionOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::create_asset_revision::CreateAssetRevisionError,
            ::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::create_asset_revision::CreateAssetRevision::operation_runtime_plugins(
            self.handle.runtime_plugins.clone(),
            &self.handle.conf,
            self.config_override,
        );
        crate::operation::create_asset_revision::CreateAssetRevision::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::create_asset_revision::CreateAssetRevisionOutput,
        crate::operation::create_asset_revision::CreateAssetRevisionError,
        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>Te revised name of the asset.</p>
    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.name(input.into());
        self
    }
    /// <p>Te revised name of the asset.</p>
    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_name(input);
        self
    }
    /// <p>Te revised name of the asset.</p>
    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_name()
    }
    /// <p>The unique identifier of the domain where the asset is being revised.</p>
    pub fn domain_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.domain_identifier(input.into());
        self
    }
    /// <p>The unique identifier of the domain where the asset is being revised.</p>
    pub fn set_domain_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_domain_identifier(input);
        self
    }
    /// <p>The unique identifier of the domain where the asset is being revised.</p>
    pub fn get_domain_identifier(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_domain_identifier()
    }
    /// <p>The identifier of the asset.</p>
    pub fn identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.identifier(input.into());
        self
    }
    /// <p>The identifier of the asset.</p>
    pub fn set_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_identifier(input);
        self
    }
    /// <p>The identifier of the asset.</p>
    pub fn get_identifier(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_identifier()
    }
    /// <p>The revision type of the asset.</p>
    pub fn type_revision(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.type_revision(input.into());
        self
    }
    /// <p>The revision type of the asset.</p>
    pub fn set_type_revision(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_type_revision(input);
        self
    }
    /// <p>The revision type of the asset.</p>
    pub fn get_type_revision(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_type_revision()
    }
    /// <p>The revised description of the asset.</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 revised description of the asset.</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 revised description of the asset.</p>
    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_description()
    }
    ///
    /// Appends an item to `glossaryTerms`.
    ///
    /// To override the contents of this collection use [`set_glossary_terms`](Self::set_glossary_terms).
    ///
    /// <p>The glossary terms to be attached to the asset as part of asset revision.</p>
    pub fn glossary_terms(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.glossary_terms(input.into());
        self
    }
    /// <p>The glossary terms to be attached to the asset as part of asset revision.</p>
    pub fn set_glossary_terms(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
        self.inner = self.inner.set_glossary_terms(input);
        self
    }
    /// <p>The glossary terms to be attached to the asset as part of asset revision.</p>
    pub fn get_glossary_terms(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
        self.inner.get_glossary_terms()
    }
    ///
    /// Appends an item to `formsInput`.
    ///
    /// To override the contents of this collection use [`set_forms_input`](Self::set_forms_input).
    ///
    /// <p>The metadata forms to be attached to the asset as part of asset revision.</p>
    pub fn forms_input(mut self, input: crate::types::FormInput) -> Self {
        self.inner = self.inner.forms_input(input);
        self
    }
    /// <p>The metadata forms to be attached to the asset as part of asset revision.</p>
    pub fn set_forms_input(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::FormInput>>) -> Self {
        self.inner = self.inner.set_forms_input(input);
        self
    }
    /// <p>The metadata forms to be attached to the asset as part of asset revision.</p>
    pub fn get_forms_input(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::FormInput>> {
        self.inner.get_forms_input()
    }
    /// <p>The configuration of the automatically generated business-friendly metadata for the asset.</p>
    pub fn prediction_configuration(mut self, input: crate::types::PredictionConfiguration) -> Self {
        self.inner = self.inner.prediction_configuration(input);
        self
    }
    /// <p>The configuration of the automatically generated business-friendly metadata for the asset.</p>
    pub fn set_prediction_configuration(mut self, input: ::std::option::Option<crate::types::PredictionConfiguration>) -> Self {
        self.inner = self.inner.set_prediction_configuration(input);
        self
    }
    /// <p>The configuration of the automatically generated business-friendly metadata for the asset.</p>
    pub fn get_prediction_configuration(&self) -> &::std::option::Option<crate::types::PredictionConfiguration> {
        self.inner.get_prediction_configuration()
    }
    /// <p>A unique, case-sensitive identifier that is provided to ensure the idempotency of the request.</p>
    pub fn client_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.client_token(input.into());
        self
    }
    /// <p>A unique, case-sensitive identifier that is provided to ensure the idempotency of the request.</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>A unique, case-sensitive identifier that is provided to ensure the idempotency of the request.</p>
    pub fn get_client_token(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_client_token()
    }
}