Skip to main content

aws_sdk_outposts/operation/create_quote/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_quote::_create_quote_input::CreateQuoteInputBuilder;
3
4pub use crate::operation::create_quote::_create_quote_output::CreateQuoteOutputBuilder;
5
6impl crate::operation::create_quote::builders::CreateQuoteInputBuilder {
7    /// Sends a request with this input using the given client.
8    pub async fn send_with(
9        self,
10        client: &crate::Client,
11    ) -> ::std::result::Result<
12        crate::operation::create_quote::CreateQuoteOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::create_quote::CreateQuoteError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.create_quote();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `CreateQuote`.
24///
25/// <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>
26#[derive(::std::clone::Clone, ::std::fmt::Debug)]
27pub struct CreateQuoteFluentBuilder {
28    handle: ::std::sync::Arc<crate::client::Handle>,
29    inner: crate::operation::create_quote::builders::CreateQuoteInputBuilder,
30    config_override: ::std::option::Option<crate::config::Builder>,
31}
32impl
33    crate::client::customize::internal::CustomizableSend<
34        crate::operation::create_quote::CreateQuoteOutput,
35        crate::operation::create_quote::CreateQuoteError,
36    > for CreateQuoteFluentBuilder
37{
38    fn send(
39        self,
40        config_override: crate::config::Builder,
41    ) -> crate::client::customize::internal::BoxFuture<
42        crate::client::customize::internal::SendResult<
43            crate::operation::create_quote::CreateQuoteOutput,
44            crate::operation::create_quote::CreateQuoteError,
45        >,
46    > {
47        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
48    }
49}
50impl CreateQuoteFluentBuilder {
51    /// Creates a new `CreateQuoteFluentBuilder`.
52    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
53        Self {
54            handle,
55            inner: ::std::default::Default::default(),
56            config_override: ::std::option::Option::None,
57        }
58    }
59    /// Access the CreateQuote as a reference.
60    pub fn as_input(&self) -> &crate::operation::create_quote::builders::CreateQuoteInputBuilder {
61        &self.inner
62    }
63    /// Sends the request and returns the response.
64    ///
65    /// If an error occurs, an `SdkError` will be returned with additional details that
66    /// can be matched against.
67    ///
68    /// By default, any retryable failures will be retried twice. Retry behavior
69    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
70    /// set when configuring the client.
71    pub async fn send(
72        self,
73    ) -> ::std::result::Result<
74        crate::operation::create_quote::CreateQuoteOutput,
75        ::aws_smithy_runtime_api::client::result::SdkError<
76            crate::operation::create_quote::CreateQuoteError,
77            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
78        >,
79    > {
80        let input = self
81            .inner
82            .build()
83            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
84        let runtime_plugins = crate::operation::create_quote::CreateQuote::operation_runtime_plugins(
85            self.handle.runtime_plugins.clone(),
86            &self.handle.conf,
87            self.config_override,
88        );
89        crate::operation::create_quote::CreateQuote::orchestrate(&runtime_plugins, input).await
90    }
91
92    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
93    pub fn customize(
94        self,
95    ) -> crate::client::customize::CustomizableOperation<
96        crate::operation::create_quote::CreateQuoteOutput,
97        crate::operation::create_quote::CreateQuoteError,
98        Self,
99    > {
100        crate::client::customize::CustomizableOperation::new(self)
101    }
102    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
103        self.set_config_override(::std::option::Option::Some(config_override.into()));
104        self
105    }
106
107    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
108        self.config_override = config_override;
109        self
110    }
111    /// <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>
112    pub fn outpost_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
113        self.inner = self.inner.outpost_identifier(input.into());
114        self
115    }
116    /// <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>
117    pub fn set_outpost_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
118        self.inner = self.inner.set_outpost_identifier(input);
119        self
120    }
121    /// <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>
122    pub fn get_outpost_identifier(&self) -> &::std::option::Option<::std::string::String> {
123        self.inner.get_outpost_identifier()
124    }
125    /// <p>The country code for the Outpost site location.</p>
126    pub fn country_code(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
127        self.inner = self.inner.country_code(input.into());
128        self
129    }
130    /// <p>The country code for the Outpost site location.</p>
131    pub fn set_country_code(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
132        self.inner = self.inner.set_country_code(input);
133        self
134    }
135    /// <p>The country code for the Outpost site location.</p>
136    pub fn get_country_code(&self) -> &::std::option::Option<::std::string::String> {
137        self.inner.get_country_code()
138    }
139    ///
140    /// Appends an item to `RequestedCapacities`.
141    ///
142    /// To override the contents of this collection use [`set_requested_capacities`](Self::set_requested_capacities).
143    ///
144    /// <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>
145    pub fn requested_capacities(mut self, input: crate::types::QuoteCapacity) -> Self {
146        self.inner = self.inner.requested_capacities(input);
147        self
148    }
149    /// <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>
150    pub fn set_requested_capacities(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::QuoteCapacity>>) -> Self {
151        self.inner = self.inner.set_requested_capacities(input);
152        self
153    }
154    /// <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>
155    pub fn get_requested_capacities(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::QuoteCapacity>> {
156        self.inner.get_requested_capacities()
157    }
158    ///
159    /// Appends an item to `RequestedConstraints`.
160    ///
161    /// To override the contents of this collection use [`set_requested_constraints`](Self::set_requested_constraints).
162    ///
163    /// <p>The physical constraints for the quote, such as maximum number of racks, maximum power draw per rack, or maximum weight per rack.</p>
164    pub fn requested_constraints(mut self, input: crate::types::QuoteConstraint) -> Self {
165        self.inner = self.inner.requested_constraints(input);
166        self
167    }
168    /// <p>The physical constraints for the quote, such as maximum number of racks, maximum power draw per rack, or maximum weight per rack.</p>
169    pub fn set_requested_constraints(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::QuoteConstraint>>) -> Self {
170        self.inner = self.inner.set_requested_constraints(input);
171        self
172    }
173    /// <p>The physical constraints for the quote, such as maximum number of racks, maximum power draw per rack, or maximum weight per rack.</p>
174    pub fn get_requested_constraints(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::QuoteConstraint>> {
175        self.inner.get_requested_constraints()
176    }
177    ///
178    /// Appends an item to `RequestedPaymentOptions`.
179    ///
180    /// To override the contents of this collection use [`set_requested_payment_options`](Self::set_requested_payment_options).
181    ///
182    /// <p>The payment options to include in the quote pricing. If not specified, all available payment options are returned.</p>
183    pub fn requested_payment_options(mut self, input: crate::types::PaymentOption) -> Self {
184        self.inner = self.inner.requested_payment_options(input);
185        self
186    }
187    /// <p>The payment options to include in the quote pricing. If not specified, all available payment options are returned.</p>
188    pub fn set_requested_payment_options(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::PaymentOption>>) -> Self {
189        self.inner = self.inner.set_requested_payment_options(input);
190        self
191    }
192    /// <p>The payment options to include in the quote pricing. If not specified, all available payment options are returned.</p>
193    pub fn get_requested_payment_options(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::PaymentOption>> {
194        self.inner.get_requested_payment_options()
195    }
196    ///
197    /// Appends an item to `RequestedPaymentTerms`.
198    ///
199    /// To override the contents of this collection use [`set_requested_payment_terms`](Self::set_requested_payment_terms).
200    ///
201    /// <p>The payment terms to include in the quote pricing. If not specified, all available payment terms are returned.</p>
202    pub fn requested_payment_terms(mut self, input: crate::types::PaymentTerm) -> Self {
203        self.inner = self.inner.requested_payment_terms(input);
204        self
205    }
206    /// <p>The payment terms to include in the quote pricing. If not specified, all available payment terms are returned.</p>
207    pub fn set_requested_payment_terms(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::PaymentTerm>>) -> Self {
208        self.inner = self.inner.set_requested_payment_terms(input);
209        self
210    }
211    /// <p>The payment terms to include in the quote pricing. If not specified, all available payment terms are returned.</p>
212    pub fn get_requested_payment_terms(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::PaymentTerm>> {
213        self.inner.get_requested_payment_terms()
214    }
215    /// <p>A description for the quote.</p>
216    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
217        self.inner = self.inner.description(input.into());
218        self
219    }
220    /// <p>A description for the quote.</p>
221    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
222        self.inner = self.inner.set_description(input);
223        self
224    }
225    /// <p>A description for the quote.</p>
226    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
227        self.inner.get_description()
228    }
229}