// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub use crate::operation::get_asset::_get_asset_input::GetAssetInputBuilder;
pub use crate::operation::get_asset::_get_asset_output::GetAssetOutputBuilder;
impl crate::operation::get_asset::builders::GetAssetInputBuilder {
/// Sends a request with this input using the given client.
pub async fn send_with(
self,
client: &crate::Client,
) -> ::std::result::Result<
crate::operation::get_asset::GetAssetOutput,
::aws_smithy_runtime_api::client::result::SdkError<
crate::operation::get_asset::GetAssetError,
::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
>,
> {
let mut fluent_builder = client.get_asset();
fluent_builder.inner = self;
fluent_builder.send().await
}
}
/// Fluent builder constructing a request to `GetAsset`.
///
/// <p>Gets an Amazon DataZone asset.</p>
/// <p>An asset is the fundamental building block in Amazon DataZone, representing any data resource that needs to be cataloged and managed. It can take many forms, from Amazon S3 buckets and database tables to dashboards and machine learning models. Each asset contains comprehensive metadata about the resource, including its location, schema, ownership, and lineage information. Assets are essential for organizing and managing data resources across an organization, making them discoverable and usable while maintaining proper governance.</p>
/// <p>Before using the Amazon DataZone GetAsset command, ensure the following prerequisites are met:</p>
/// <ul>
/// <li>
/// <p>Domain identifier must exist and be valid</p></li>
/// <li>
/// <p>Asset identifier must exist</p></li>
/// <li>
/// <p>User must have the required permissions to perform the action</p></li>
/// </ul>
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
pub struct GetAssetFluentBuilder {
handle: ::std::sync::Arc<crate::client::Handle>,
inner: crate::operation::get_asset::builders::GetAssetInputBuilder,
config_override: ::std::option::Option<crate::config::Builder>,
}
impl crate::client::customize::internal::CustomizableSend<crate::operation::get_asset::GetAssetOutput, crate::operation::get_asset::GetAssetError>
for GetAssetFluentBuilder
{
fn send(
self,
config_override: crate::config::Builder,
) -> crate::client::customize::internal::BoxFuture<
crate::client::customize::internal::SendResult<crate::operation::get_asset::GetAssetOutput, crate::operation::get_asset::GetAssetError>,
> {
::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
}
}
impl GetAssetFluentBuilder {
/// Creates a new `GetAssetFluentBuilder`.
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 GetAsset as a reference.
pub fn as_input(&self) -> &crate::operation::get_asset::builders::GetAssetInputBuilder {
&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::get_asset::GetAssetOutput,
::aws_smithy_runtime_api::client::result::SdkError<
crate::operation::get_asset::GetAssetError,
::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::get_asset::GetAsset::operation_runtime_plugins(
self.handle.runtime_plugins.clone(),
&self.handle.conf,
self.config_override,
);
crate::operation::get_asset::GetAsset::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::get_asset::GetAssetOutput, crate::operation::get_asset::GetAssetError, 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 ID of the Amazon DataZone domain to which the asset belongs.</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 ID of the Amazon DataZone domain to which the asset belongs.</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 ID of the Amazon DataZone domain to which the asset belongs.</p>
pub fn get_domain_identifier(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_domain_identifier()
}
/// <p>The ID of the Amazon DataZone asset.</p>
/// <p>This parameter supports either the value of <code>assetId</code> or <code>externalIdentifier</code> as input. If you are passing the value of <code>externalIdentifier</code>, you must prefix this value with <code>externalIdentifer%2F</code>.</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 ID of the Amazon DataZone asset.</p>
/// <p>This parameter supports either the value of <code>assetId</code> or <code>externalIdentifier</code> as input. If you are passing the value of <code>externalIdentifier</code>, you must prefix this value with <code>externalIdentifer%2F</code>.</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 ID of the Amazon DataZone asset.</p>
/// <p>This parameter supports either the value of <code>assetId</code> or <code>externalIdentifier</code> as input. If you are passing the value of <code>externalIdentifier</code>, you must prefix this value with <code>externalIdentifer%2F</code>.</p>
pub fn get_identifier(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_identifier()
}
/// <p>The revision of the Amazon DataZone asset.</p>
pub fn revision(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.revision(input.into());
self
}
/// <p>The revision of the Amazon DataZone asset.</p>
pub fn set_revision(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_revision(input);
self
}
/// <p>The revision of the Amazon DataZone asset.</p>
pub fn get_revision(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_revision()
}
}