aws_sdk_ec2/operation/describe_capacity_block_offerings/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::describe_capacity_block_offerings::_describe_capacity_block_offerings_output::DescribeCapacityBlockOfferingsOutputBuilder;
3
4pub use crate::operation::describe_capacity_block_offerings::_describe_capacity_block_offerings_input::DescribeCapacityBlockOfferingsInputBuilder;
5
6impl crate::operation::describe_capacity_block_offerings::builders::DescribeCapacityBlockOfferingsInputBuilder {
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::describe_capacity_block_offerings::DescribeCapacityBlockOfferingsOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::describe_capacity_block_offerings::DescribeCapacityBlockOfferingsError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.describe_capacity_block_offerings();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `DescribeCapacityBlockOfferings`.
24///
25/// <p>Describes Capacity Block offerings available for purchase in the Amazon Web Services Region that you're currently using. With Capacity Blocks, you can purchase a specific GPU instance type or EC2 UltraServer for a period of time.</p>
26/// <p>To search for an available Capacity Block offering, you specify a reservation duration and instance count.</p>
27#[derive(::std::clone::Clone, ::std::fmt::Debug)]
28pub struct DescribeCapacityBlockOfferingsFluentBuilder {
29    handle: ::std::sync::Arc<crate::client::Handle>,
30    inner: crate::operation::describe_capacity_block_offerings::builders::DescribeCapacityBlockOfferingsInputBuilder,
31    config_override: ::std::option::Option<crate::config::Builder>,
32}
33impl
34    crate::client::customize::internal::CustomizableSend<
35        crate::operation::describe_capacity_block_offerings::DescribeCapacityBlockOfferingsOutput,
36        crate::operation::describe_capacity_block_offerings::DescribeCapacityBlockOfferingsError,
37    > for DescribeCapacityBlockOfferingsFluentBuilder
38{
39    fn send(
40        self,
41        config_override: crate::config::Builder,
42    ) -> crate::client::customize::internal::BoxFuture<
43        crate::client::customize::internal::SendResult<
44            crate::operation::describe_capacity_block_offerings::DescribeCapacityBlockOfferingsOutput,
45            crate::operation::describe_capacity_block_offerings::DescribeCapacityBlockOfferingsError,
46        >,
47    > {
48        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
49    }
50}
51impl DescribeCapacityBlockOfferingsFluentBuilder {
52    /// Creates a new `DescribeCapacityBlockOfferingsFluentBuilder`.
53    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
54        Self {
55            handle,
56            inner: ::std::default::Default::default(),
57            config_override: ::std::option::Option::None,
58        }
59    }
60    /// Access the DescribeCapacityBlockOfferings as a reference.
61    pub fn as_input(&self) -> &crate::operation::describe_capacity_block_offerings::builders::DescribeCapacityBlockOfferingsInputBuilder {
62        &self.inner
63    }
64    /// Sends the request and returns the response.
65    ///
66    /// If an error occurs, an `SdkError` will be returned with additional details that
67    /// can be matched against.
68    ///
69    /// By default, any retryable failures will be retried twice. Retry behavior
70    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
71    /// set when configuring the client.
72    pub async fn send(
73        self,
74    ) -> ::std::result::Result<
75        crate::operation::describe_capacity_block_offerings::DescribeCapacityBlockOfferingsOutput,
76        ::aws_smithy_runtime_api::client::result::SdkError<
77            crate::operation::describe_capacity_block_offerings::DescribeCapacityBlockOfferingsError,
78            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
79        >,
80    > {
81        let input = self
82            .inner
83            .build()
84            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
85        let runtime_plugins = crate::operation::describe_capacity_block_offerings::DescribeCapacityBlockOfferings::operation_runtime_plugins(
86            self.handle.runtime_plugins.clone(),
87            &self.handle.conf,
88            self.config_override,
89        );
90        crate::operation::describe_capacity_block_offerings::DescribeCapacityBlockOfferings::orchestrate(&runtime_plugins, input).await
91    }
92
93    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
94    pub fn customize(
95        self,
96    ) -> crate::client::customize::CustomizableOperation<
97        crate::operation::describe_capacity_block_offerings::DescribeCapacityBlockOfferingsOutput,
98        crate::operation::describe_capacity_block_offerings::DescribeCapacityBlockOfferingsError,
99        Self,
100    > {
101        crate::client::customize::CustomizableOperation::new(self)
102    }
103    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
104        self.set_config_override(::std::option::Option::Some(config_override.into()));
105        self
106    }
107
108    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
109        self.config_override = config_override;
110        self
111    }
112    /// Create a paginator for this request
113    ///
114    /// Paginators are used by calling [`send().await`](crate::operation::describe_capacity_block_offerings::paginator::DescribeCapacityBlockOfferingsPaginator::send) which returns a [`PaginationStream`](aws_smithy_async::future::pagination_stream::PaginationStream).
115    pub fn into_paginator(self) -> crate::operation::describe_capacity_block_offerings::paginator::DescribeCapacityBlockOfferingsPaginator {
116        crate::operation::describe_capacity_block_offerings::paginator::DescribeCapacityBlockOfferingsPaginator::new(self.handle, self.inner)
117    }
118    /// <p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>
119    pub fn dry_run(mut self, input: bool) -> Self {
120        self.inner = self.inner.dry_run(input);
121        self
122    }
123    /// <p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>
124    pub fn set_dry_run(mut self, input: ::std::option::Option<bool>) -> Self {
125        self.inner = self.inner.set_dry_run(input);
126        self
127    }
128    /// <p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>
129    pub fn get_dry_run(&self) -> &::std::option::Option<bool> {
130        self.inner.get_dry_run()
131    }
132    /// <p>The type of instance for which the Capacity Block offering reserves capacity.</p>
133    pub fn instance_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
134        self.inner = self.inner.instance_type(input.into());
135        self
136    }
137    /// <p>The type of instance for which the Capacity Block offering reserves capacity.</p>
138    pub fn set_instance_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
139        self.inner = self.inner.set_instance_type(input);
140        self
141    }
142    /// <p>The type of instance for which the Capacity Block offering reserves capacity.</p>
143    pub fn get_instance_type(&self) -> &::std::option::Option<::std::string::String> {
144        self.inner.get_instance_type()
145    }
146    /// <p>The number of instances for which to reserve capacity. Each Capacity Block can have up to 64 instances, and you can have up to 256 instances across Capacity Blocks.</p>
147    pub fn instance_count(mut self, input: i32) -> Self {
148        self.inner = self.inner.instance_count(input);
149        self
150    }
151    /// <p>The number of instances for which to reserve capacity. Each Capacity Block can have up to 64 instances, and you can have up to 256 instances across Capacity Blocks.</p>
152    pub fn set_instance_count(mut self, input: ::std::option::Option<i32>) -> Self {
153        self.inner = self.inner.set_instance_count(input);
154        self
155    }
156    /// <p>The number of instances for which to reserve capacity. Each Capacity Block can have up to 64 instances, and you can have up to 256 instances across Capacity Blocks.</p>
157    pub fn get_instance_count(&self) -> &::std::option::Option<i32> {
158        self.inner.get_instance_count()
159    }
160    /// <p>The earliest start date for the Capacity Block offering.</p>
161    pub fn start_date_range(mut self, input: ::aws_smithy_types::DateTime) -> Self {
162        self.inner = self.inner.start_date_range(input);
163        self
164    }
165    /// <p>The earliest start date for the Capacity Block offering.</p>
166    pub fn set_start_date_range(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
167        self.inner = self.inner.set_start_date_range(input);
168        self
169    }
170    /// <p>The earliest start date for the Capacity Block offering.</p>
171    pub fn get_start_date_range(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
172        self.inner.get_start_date_range()
173    }
174    /// <p>The latest end date for the Capacity Block offering.</p>
175    pub fn end_date_range(mut self, input: ::aws_smithy_types::DateTime) -> Self {
176        self.inner = self.inner.end_date_range(input);
177        self
178    }
179    /// <p>The latest end date for the Capacity Block offering.</p>
180    pub fn set_end_date_range(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
181        self.inner = self.inner.set_end_date_range(input);
182        self
183    }
184    /// <p>The latest end date for the Capacity Block offering.</p>
185    pub fn get_end_date_range(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
186        self.inner.get_end_date_range()
187    }
188    /// <p>The reservation duration for the Capacity Block, in hours. You must specify the duration in 1-day increments up 14 days, and in 7-day increments up to 182 days.</p>
189    pub fn capacity_duration_hours(mut self, input: i32) -> Self {
190        self.inner = self.inner.capacity_duration_hours(input);
191        self
192    }
193    /// <p>The reservation duration for the Capacity Block, in hours. You must specify the duration in 1-day increments up 14 days, and in 7-day increments up to 182 days.</p>
194    pub fn set_capacity_duration_hours(mut self, input: ::std::option::Option<i32>) -> Self {
195        self.inner = self.inner.set_capacity_duration_hours(input);
196        self
197    }
198    /// <p>The reservation duration for the Capacity Block, in hours. You must specify the duration in 1-day increments up 14 days, and in 7-day increments up to 182 days.</p>
199    pub fn get_capacity_duration_hours(&self) -> &::std::option::Option<i32> {
200        self.inner.get_capacity_duration_hours()
201    }
202    /// <p>The token to use to retrieve the next page of results.</p>
203    pub fn next_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
204        self.inner = self.inner.next_token(input.into());
205        self
206    }
207    /// <p>The token to use to retrieve the next page of results.</p>
208    pub fn set_next_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
209        self.inner = self.inner.set_next_token(input);
210        self
211    }
212    /// <p>The token to use to retrieve the next page of results.</p>
213    pub fn get_next_token(&self) -> &::std::option::Option<::std::string::String> {
214        self.inner.get_next_token()
215    }
216    /// <p>The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination">Pagination</a>.</p>
217    pub fn max_results(mut self, input: i32) -> Self {
218        self.inner = self.inner.max_results(input);
219        self
220    }
221    /// <p>The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination">Pagination</a>.</p>
222    pub fn set_max_results(mut self, input: ::std::option::Option<i32>) -> Self {
223        self.inner = self.inner.set_max_results(input);
224        self
225    }
226    /// <p>The maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination">Pagination</a>.</p>
227    pub fn get_max_results(&self) -> &::std::option::Option<i32> {
228        self.inner.get_max_results()
229    }
230    /// <p>The EC2 UltraServer type of the Capacity Block offerings.</p>
231    pub fn ultraserver_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
232        self.inner = self.inner.ultraserver_type(input.into());
233        self
234    }
235    /// <p>The EC2 UltraServer type of the Capacity Block offerings.</p>
236    pub fn set_ultraserver_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
237        self.inner = self.inner.set_ultraserver_type(input);
238        self
239    }
240    /// <p>The EC2 UltraServer type of the Capacity Block offerings.</p>
241    pub fn get_ultraserver_type(&self) -> &::std::option::Option<::std::string::String> {
242        self.inner.get_ultraserver_type()
243    }
244    /// <p>The number of EC2 UltraServers in the offerings.</p>
245    pub fn ultraserver_count(mut self, input: i32) -> Self {
246        self.inner = self.inner.ultraserver_count(input);
247        self
248    }
249    /// <p>The number of EC2 UltraServers in the offerings.</p>
250    pub fn set_ultraserver_count(mut self, input: ::std::option::Option<i32>) -> Self {
251        self.inner = self.inner.set_ultraserver_count(input);
252        self
253    }
254    /// <p>The number of EC2 UltraServers in the offerings.</p>
255    pub fn get_ultraserver_count(&self) -> &::std::option::Option<i32> {
256        self.inner.get_ultraserver_count()
257    }
258}