aws-sdk-deadline 1.79.0

AWS SDK for AWSDeadlineCloud
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub use crate::operation::create_queue_limit_association::_create_queue_limit_association_output::CreateQueueLimitAssociationOutputBuilder;

pub use crate::operation::create_queue_limit_association::_create_queue_limit_association_input::CreateQueueLimitAssociationInputBuilder;

impl crate::operation::create_queue_limit_association::builders::CreateQueueLimitAssociationInputBuilder {
    /// 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_queue_limit_association::CreateQueueLimitAssociationOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::create_queue_limit_association::CreateQueueLimitAssociationError,
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
        >,
    > {
        let mut fluent_builder = client.create_queue_limit_association();
        fluent_builder.inner = self;
        fluent_builder.send().await
    }
}
/// Fluent builder constructing a request to `CreateQueueLimitAssociation`.
///
/// <p>Associates a limit with a particular queue. After the limit is associated, all workers for jobs that specify the limit associated with the queue are subject to the limit. You can't associate two limits with the same <code>amountRequirementName</code> to the same queue.</p>
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
pub struct CreateQueueLimitAssociationFluentBuilder {
    handle: ::std::sync::Arc<crate::client::Handle>,
    inner: crate::operation::create_queue_limit_association::builders::CreateQueueLimitAssociationInputBuilder,
    config_override: ::std::option::Option<crate::config::Builder>,
}
impl
    crate::client::customize::internal::CustomizableSend<
        crate::operation::create_queue_limit_association::CreateQueueLimitAssociationOutput,
        crate::operation::create_queue_limit_association::CreateQueueLimitAssociationError,
    > for CreateQueueLimitAssociationFluentBuilder
{
    fn send(
        self,
        config_override: crate::config::Builder,
    ) -> crate::client::customize::internal::BoxFuture<
        crate::client::customize::internal::SendResult<
            crate::operation::create_queue_limit_association::CreateQueueLimitAssociationOutput,
            crate::operation::create_queue_limit_association::CreateQueueLimitAssociationError,
        >,
    > {
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
    }
}
impl CreateQueueLimitAssociationFluentBuilder {
    /// Creates a new `CreateQueueLimitAssociationFluentBuilder`.
    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 CreateQueueLimitAssociation as a reference.
    pub fn as_input(&self) -> &crate::operation::create_queue_limit_association::builders::CreateQueueLimitAssociationInputBuilder {
        &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_queue_limit_association::CreateQueueLimitAssociationOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::create_queue_limit_association::CreateQueueLimitAssociationError,
            ::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_queue_limit_association::CreateQueueLimitAssociation::operation_runtime_plugins(
            self.handle.runtime_plugins.clone(),
            &self.handle.conf,
            self.config_override,
        );
        crate::operation::create_queue_limit_association::CreateQueueLimitAssociation::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_queue_limit_association::CreateQueueLimitAssociationOutput,
        crate::operation::create_queue_limit_association::CreateQueueLimitAssociationError,
        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 of the farm that contains the queue and limit to associate.</p>
    pub fn farm_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.farm_id(input.into());
        self
    }
    /// <p>The unique identifier of the farm that contains the queue and limit to associate.</p>
    pub fn set_farm_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_farm_id(input);
        self
    }
    /// <p>The unique identifier of the farm that contains the queue and limit to associate.</p>
    pub fn get_farm_id(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_farm_id()
    }
    /// <p>The unique identifier of the queue to associate with the limit.</p>
    pub fn queue_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.queue_id(input.into());
        self
    }
    /// <p>The unique identifier of the queue to associate with the limit.</p>
    pub fn set_queue_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_queue_id(input);
        self
    }
    /// <p>The unique identifier of the queue to associate with the limit.</p>
    pub fn get_queue_id(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_queue_id()
    }
    /// <p>The unique identifier of the limit to associate with the queue.</p>
    pub fn limit_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.limit_id(input.into());
        self
    }
    /// <p>The unique identifier of the limit to associate with the queue.</p>
    pub fn set_limit_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_limit_id(input);
        self
    }
    /// <p>The unique identifier of the limit to associate with the queue.</p>
    pub fn get_limit_id(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_limit_id()
    }
}