aws-sdk-acm 1.117.0

AWS SDK for AWS Certificate Manager
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub use crate::operation::create_acme_external_account_binding::_create_acme_external_account_binding_input::CreateAcmeExternalAccountBindingInputBuilder;

pub use crate::operation::create_acme_external_account_binding::_create_acme_external_account_binding_output::CreateAcmeExternalAccountBindingOutputBuilder;

impl crate::operation::create_acme_external_account_binding::builders::CreateAcmeExternalAccountBindingInputBuilder {
    /// 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_acme_external_account_binding::CreateAcmeExternalAccountBindingOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::create_acme_external_account_binding::CreateAcmeExternalAccountBindingError,
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
        >,
    > {
        let mut fluent_builder = client.create_acme_external_account_binding();
        fluent_builder.inner = self;
        fluent_builder.send().await
    }
}
/// Fluent builder constructing a request to `CreateAcmeExternalAccountBinding`.
///
/// <p>Creates an external account binding (EAB) for an ACME endpoint. An EAB provides credentials that authorize an ACME client to register an account with the endpoint. Each EAB is associated with an IAM role that controls what certificate operations the ACME client can perform.</p>
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
pub struct CreateAcmeExternalAccountBindingFluentBuilder {
    handle: ::std::sync::Arc<crate::client::Handle>,
    inner: crate::operation::create_acme_external_account_binding::builders::CreateAcmeExternalAccountBindingInputBuilder,
    config_override: ::std::option::Option<crate::config::Builder>,
}
impl
    crate::client::customize::internal::CustomizableSend<
        crate::operation::create_acme_external_account_binding::CreateAcmeExternalAccountBindingOutput,
        crate::operation::create_acme_external_account_binding::CreateAcmeExternalAccountBindingError,
    > for CreateAcmeExternalAccountBindingFluentBuilder
{
    fn send(
        self,
        config_override: crate::config::Builder,
    ) -> crate::client::customize::internal::BoxFuture<
        crate::client::customize::internal::SendResult<
            crate::operation::create_acme_external_account_binding::CreateAcmeExternalAccountBindingOutput,
            crate::operation::create_acme_external_account_binding::CreateAcmeExternalAccountBindingError,
        >,
    > {
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
    }
}
impl CreateAcmeExternalAccountBindingFluentBuilder {
    /// Creates a new `CreateAcmeExternalAccountBindingFluentBuilder`.
    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 CreateAcmeExternalAccountBinding as a reference.
    pub fn as_input(&self) -> &crate::operation::create_acme_external_account_binding::builders::CreateAcmeExternalAccountBindingInputBuilder {
        &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_acme_external_account_binding::CreateAcmeExternalAccountBindingOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::create_acme_external_account_binding::CreateAcmeExternalAccountBindingError,
            ::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_acme_external_account_binding::CreateAcmeExternalAccountBinding::operation_runtime_plugins(
            self.handle.runtime_plugins.clone(),
            &self.handle.conf,
            self.config_override,
        );
        crate::operation::create_acme_external_account_binding::CreateAcmeExternalAccountBinding::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_acme_external_account_binding::CreateAcmeExternalAccountBindingOutput,
        crate::operation::create_acme_external_account_binding::CreateAcmeExternalAccountBindingError,
        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>A unique, case-sensitive identifier to ensure idempotency of the request.</p>
    pub fn idempotency_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.idempotency_token(input.into());
        self
    }
    /// <p>A unique, case-sensitive identifier to ensure idempotency of the request.</p>
    pub fn set_idempotency_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_idempotency_token(input);
        self
    }
    /// <p>A unique, case-sensitive identifier to ensure idempotency of the request.</p>
    pub fn get_idempotency_token(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_idempotency_token()
    }
    /// <p>The Amazon Resource Name (ARN) of the ACME endpoint.</p>
    pub fn acme_endpoint_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.acme_endpoint_arn(input.into());
        self
    }
    /// <p>The Amazon Resource Name (ARN) of the ACME endpoint.</p>
    pub fn set_acme_endpoint_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_acme_endpoint_arn(input);
        self
    }
    /// <p>The Amazon Resource Name (ARN) of the ACME endpoint.</p>
    pub fn get_acme_endpoint_arn(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_acme_endpoint_arn()
    }
    /// <p>The Amazon Resource Name (ARN) of the IAM role to associate with the external account binding.</p>
    pub fn role_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.role_arn(input.into());
        self
    }
    /// <p>The Amazon Resource Name (ARN) of the IAM role to associate with the external account binding.</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
    }
    /// <p>The Amazon Resource Name (ARN) of the IAM role to associate with the external account binding.</p>
    pub fn get_role_arn(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_role_arn()
    }
    /// <p>The expiration configuration for the external account binding.</p>
    pub fn expiration(mut self, input: crate::types::Expiration) -> Self {
        self.inner = self.inner.expiration(input);
        self
    }
    /// <p>The expiration configuration for the external account binding.</p>
    pub fn set_expiration(mut self, input: ::std::option::Option<crate::types::Expiration>) -> Self {
        self.inner = self.inner.set_expiration(input);
        self
    }
    /// <p>The expiration configuration for the external account binding.</p>
    pub fn get_expiration(&self) -> &::std::option::Option<crate::types::Expiration> {
        self.inner.get_expiration()
    }
    ///
    /// Appends an item to `Tags`.
    ///
    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
    ///
    /// <p>One or more tags to associate with the external account binding.</p>
    pub fn tags(mut self, input: crate::types::Tag) -> Self {
        self.inner = self.inner.tags(input);
        self
    }
    /// <p>One or more tags to associate with the external account binding.</p>
    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
        self.inner = self.inner.set_tags(input);
        self
    }
    /// <p>One or more tags to associate with the external account binding.</p>
    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
        self.inner.get_tags()
    }
}