aws-sdk-outposts 1.116.0

AWS SDK for AWS Outposts
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub use crate::operation::create_quote::_create_quote_input::CreateQuoteInputBuilder;

pub use crate::operation::create_quote::_create_quote_output::CreateQuoteOutputBuilder;

impl crate::operation::create_quote::builders::CreateQuoteInputBuilder {
    /// 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_quote::CreateQuoteOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::create_quote::CreateQuoteError,
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
        >,
    > {
        let mut fluent_builder = client.create_quote();
        fluent_builder.inner = self;
        fluent_builder.send().await
    }
}
/// Fluent builder constructing a request to `CreateQuote`.
///
/// <p>Creates a quote for an Outpost. A quote provides pricing and configuration options based on the requested capacity. You can optionally associate the quote with an existing Outpost or create a standalone quote by specifying only the country code and requested capacities.</p>
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
pub struct CreateQuoteFluentBuilder {
    handle: ::std::sync::Arc<crate::client::Handle>,
    inner: crate::operation::create_quote::builders::CreateQuoteInputBuilder,
    config_override: ::std::option::Option<crate::config::Builder>,
}
impl
    crate::client::customize::internal::CustomizableSend<
        crate::operation::create_quote::CreateQuoteOutput,
        crate::operation::create_quote::CreateQuoteError,
    > for CreateQuoteFluentBuilder
{
    fn send(
        self,
        config_override: crate::config::Builder,
    ) -> crate::client::customize::internal::BoxFuture<
        crate::client::customize::internal::SendResult<
            crate::operation::create_quote::CreateQuoteOutput,
            crate::operation::create_quote::CreateQuoteError,
        >,
    > {
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
    }
}
impl CreateQuoteFluentBuilder {
    /// Creates a new `CreateQuoteFluentBuilder`.
    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 CreateQuote as a reference.
    pub fn as_input(&self) -> &crate::operation::create_quote::builders::CreateQuoteInputBuilder {
        &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_quote::CreateQuoteOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::create_quote::CreateQuoteError,
            ::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_quote::CreateQuote::operation_runtime_plugins(
            self.handle.runtime_plugins.clone(),
            &self.handle.conf,
            self.config_override,
        );
        crate::operation::create_quote::CreateQuote::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_quote::CreateQuoteOutput,
        crate::operation::create_quote::CreateQuoteError,
        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 or ARN of the Outpost to associate with the quote. If not specified, the quote is created without an Outpost association.</p>
    pub fn outpost_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.outpost_identifier(input.into());
        self
    }
    /// <p>The ID or ARN of the Outpost to associate with the quote. If not specified, the quote is created without an Outpost association.</p>
    pub fn set_outpost_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_outpost_identifier(input);
        self
    }
    /// <p>The ID or ARN of the Outpost to associate with the quote. If not specified, the quote is created without an Outpost association.</p>
    pub fn get_outpost_identifier(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_outpost_identifier()
    }
    /// <p>The country code for the Outpost site location.</p>
    pub fn country_code(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.country_code(input.into());
        self
    }
    /// <p>The country code for the Outpost site location.</p>
    pub fn set_country_code(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_country_code(input);
        self
    }
    /// <p>The country code for the Outpost site location.</p>
    pub fn get_country_code(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_country_code()
    }
    ///
    /// Appends an item to `RequestedCapacities`.
    ///
    /// To override the contents of this collection use [`set_requested_capacities`](Self::set_requested_capacities).
    ///
    /// <p>The capacity requirements for the quote. Each entry specifies a capacity type (such as Amazon EC2), the unit, and the quantity. For Amazon EC2, the quantity is the number of additional instances to add to the Outpost. For Amazon EBS and Amazon S3, the quantity is the total desired end-state capacity of the Outpost.</p>
    pub fn requested_capacities(mut self, input: crate::types::QuoteCapacity) -> Self {
        self.inner = self.inner.requested_capacities(input);
        self
    }
    /// <p>The capacity requirements for the quote. Each entry specifies a capacity type (such as Amazon EC2), the unit, and the quantity. For Amazon EC2, the quantity is the number of additional instances to add to the Outpost. For Amazon EBS and Amazon S3, the quantity is the total desired end-state capacity of the Outpost.</p>
    pub fn set_requested_capacities(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::QuoteCapacity>>) -> Self {
        self.inner = self.inner.set_requested_capacities(input);
        self
    }
    /// <p>The capacity requirements for the quote. Each entry specifies a capacity type (such as Amazon EC2), the unit, and the quantity. For Amazon EC2, the quantity is the number of additional instances to add to the Outpost. For Amazon EBS and Amazon S3, the quantity is the total desired end-state capacity of the Outpost.</p>
    pub fn get_requested_capacities(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::QuoteCapacity>> {
        self.inner.get_requested_capacities()
    }
    ///
    /// Appends an item to `RequestedConstraints`.
    ///
    /// To override the contents of this collection use [`set_requested_constraints`](Self::set_requested_constraints).
    ///
    /// <p>The physical constraints for the quote, such as maximum number of racks, maximum power draw per rack, or maximum weight per rack.</p>
    pub fn requested_constraints(mut self, input: crate::types::QuoteConstraint) -> Self {
        self.inner = self.inner.requested_constraints(input);
        self
    }
    /// <p>The physical constraints for the quote, such as maximum number of racks, maximum power draw per rack, or maximum weight per rack.</p>
    pub fn set_requested_constraints(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::QuoteConstraint>>) -> Self {
        self.inner = self.inner.set_requested_constraints(input);
        self
    }
    /// <p>The physical constraints for the quote, such as maximum number of racks, maximum power draw per rack, or maximum weight per rack.</p>
    pub fn get_requested_constraints(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::QuoteConstraint>> {
        self.inner.get_requested_constraints()
    }
    ///
    /// Appends an item to `RequestedPaymentOptions`.
    ///
    /// To override the contents of this collection use [`set_requested_payment_options`](Self::set_requested_payment_options).
    ///
    /// <p>The payment options to include in the quote pricing. If not specified, all available payment options are returned.</p>
    pub fn requested_payment_options(mut self, input: crate::types::PaymentOption) -> Self {
        self.inner = self.inner.requested_payment_options(input);
        self
    }
    /// <p>The payment options to include in the quote pricing. If not specified, all available payment options are returned.</p>
    pub fn set_requested_payment_options(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::PaymentOption>>) -> Self {
        self.inner = self.inner.set_requested_payment_options(input);
        self
    }
    /// <p>The payment options to include in the quote pricing. If not specified, all available payment options are returned.</p>
    pub fn get_requested_payment_options(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::PaymentOption>> {
        self.inner.get_requested_payment_options()
    }
    ///
    /// Appends an item to `RequestedPaymentTerms`.
    ///
    /// To override the contents of this collection use [`set_requested_payment_terms`](Self::set_requested_payment_terms).
    ///
    /// <p>The payment terms to include in the quote pricing. If not specified, all available payment terms are returned.</p>
    pub fn requested_payment_terms(mut self, input: crate::types::PaymentTerm) -> Self {
        self.inner = self.inner.requested_payment_terms(input);
        self
    }
    /// <p>The payment terms to include in the quote pricing. If not specified, all available payment terms are returned.</p>
    pub fn set_requested_payment_terms(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::PaymentTerm>>) -> Self {
        self.inner = self.inner.set_requested_payment_terms(input);
        self
    }
    /// <p>The payment terms to include in the quote pricing. If not specified, all available payment terms are returned.</p>
    pub fn get_requested_payment_terms(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::PaymentTerm>> {
        self.inner.get_requested_payment_terms()
    }
    /// <p>A description for the quote.</p>
    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.description(input.into());
        self
    }
    /// <p>A description for the quote.</p>
    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_description(input);
        self
    }
    /// <p>A description for the quote.</p>
    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_description()
    }
}