aws_sdk_ec2/operation/modify_ipam/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::modify_ipam::_modify_ipam_output::ModifyIpamOutputBuilder;
3
4pub use crate::operation::modify_ipam::_modify_ipam_input::ModifyIpamInputBuilder;
5
6impl crate::operation::modify_ipam::builders::ModifyIpamInputBuilder {
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::modify_ipam::ModifyIpamOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::modify_ipam::ModifyIpamError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.modify_ipam();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `ModifyIpam`.
24///
25/// <p>Modify the configurations of an IPAM.</p>
26#[derive(::std::clone::Clone, ::std::fmt::Debug)]
27pub struct ModifyIpamFluentBuilder {
28    handle: ::std::sync::Arc<crate::client::Handle>,
29    inner: crate::operation::modify_ipam::builders::ModifyIpamInputBuilder,
30    config_override: ::std::option::Option<crate::config::Builder>,
31}
32impl
33    crate::client::customize::internal::CustomizableSend<
34        crate::operation::modify_ipam::ModifyIpamOutput,
35        crate::operation::modify_ipam::ModifyIpamError,
36    > for ModifyIpamFluentBuilder
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::modify_ipam::ModifyIpamOutput,
44            crate::operation::modify_ipam::ModifyIpamError,
45        >,
46    > {
47        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
48    }
49}
50impl ModifyIpamFluentBuilder {
51    /// Creates a new `ModifyIpamFluentBuilder`.
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 ModifyIpam as a reference.
60    pub fn as_input(&self) -> &crate::operation::modify_ipam::builders::ModifyIpamInputBuilder {
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::modify_ipam::ModifyIpamOutput,
75        ::aws_smithy_runtime_api::client::result::SdkError<
76            crate::operation::modify_ipam::ModifyIpamError,
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::modify_ipam::ModifyIpam::operation_runtime_plugins(
85            self.handle.runtime_plugins.clone(),
86            &self.handle.conf,
87            self.config_override,
88        );
89        crate::operation::modify_ipam::ModifyIpam::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::modify_ipam::ModifyIpamOutput,
97        crate::operation::modify_ipam::ModifyIpamError,
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>A check for 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>
112    pub fn dry_run(mut self, input: bool) -> Self {
113        self.inner = self.inner.dry_run(input);
114        self
115    }
116    /// <p>A check for 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>
117    pub fn set_dry_run(mut self, input: ::std::option::Option<bool>) -> Self {
118        self.inner = self.inner.set_dry_run(input);
119        self
120    }
121    /// <p>A check for 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>
122    pub fn get_dry_run(&self) -> &::std::option::Option<bool> {
123        self.inner.get_dry_run()
124    }
125    /// <p>The ID of the IPAM you want to modify.</p>
126    pub fn ipam_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
127        self.inner = self.inner.ipam_id(input.into());
128        self
129    }
130    /// <p>The ID of the IPAM you want to modify.</p>
131    pub fn set_ipam_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
132        self.inner = self.inner.set_ipam_id(input);
133        self
134    }
135    /// <p>The ID of the IPAM you want to modify.</p>
136    pub fn get_ipam_id(&self) -> &::std::option::Option<::std::string::String> {
137        self.inner.get_ipam_id()
138    }
139    /// <p>The description of the IPAM you want to modify.</p>
140    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
141        self.inner = self.inner.description(input.into());
142        self
143    }
144    /// <p>The description of the IPAM you want to modify.</p>
145    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
146        self.inner = self.inner.set_description(input);
147        self
148    }
149    /// <p>The description of the IPAM you want to modify.</p>
150    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
151        self.inner.get_description()
152    }
153    ///
154    /// Appends an item to `AddOperatingRegions`.
155    ///
156    /// To override the contents of this collection use [`set_add_operating_regions`](Self::set_add_operating_regions).
157    ///
158    /// <p>Choose the operating Regions for the IPAM. Operating Regions are Amazon Web Services Regions where the IPAM is allowed to manage IP address CIDRs. IPAM only discovers and monitors resources in the Amazon Web Services Regions you select as operating Regions.</p>
159    /// <p>For more information about operating Regions, see <a href="https://docs.aws.amazon.com/vpc/latest/ipam/create-ipam.html">Create an IPAM</a> in the <i>Amazon VPC IPAM User Guide</i>.</p>
160    pub fn add_operating_regions(mut self, input: crate::types::AddIpamOperatingRegion) -> Self {
161        self.inner = self.inner.add_operating_regions(input);
162        self
163    }
164    /// <p>Choose the operating Regions for the IPAM. Operating Regions are Amazon Web Services Regions where the IPAM is allowed to manage IP address CIDRs. IPAM only discovers and monitors resources in the Amazon Web Services Regions you select as operating Regions.</p>
165    /// <p>For more information about operating Regions, see <a href="https://docs.aws.amazon.com/vpc/latest/ipam/create-ipam.html">Create an IPAM</a> in the <i>Amazon VPC IPAM User Guide</i>.</p>
166    pub fn set_add_operating_regions(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::AddIpamOperatingRegion>>) -> Self {
167        self.inner = self.inner.set_add_operating_regions(input);
168        self
169    }
170    /// <p>Choose the operating Regions for the IPAM. Operating Regions are Amazon Web Services Regions where the IPAM is allowed to manage IP address CIDRs. IPAM only discovers and monitors resources in the Amazon Web Services Regions you select as operating Regions.</p>
171    /// <p>For more information about operating Regions, see <a href="https://docs.aws.amazon.com/vpc/latest/ipam/create-ipam.html">Create an IPAM</a> in the <i>Amazon VPC IPAM User Guide</i>.</p>
172    pub fn get_add_operating_regions(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::AddIpamOperatingRegion>> {
173        self.inner.get_add_operating_regions()
174    }
175    ///
176    /// Appends an item to `RemoveOperatingRegions`.
177    ///
178    /// To override the contents of this collection use [`set_remove_operating_regions`](Self::set_remove_operating_regions).
179    ///
180    /// <p>The operating Regions to remove.</p>
181    pub fn remove_operating_regions(mut self, input: crate::types::RemoveIpamOperatingRegion) -> Self {
182        self.inner = self.inner.remove_operating_regions(input);
183        self
184    }
185    /// <p>The operating Regions to remove.</p>
186    pub fn set_remove_operating_regions(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::RemoveIpamOperatingRegion>>) -> Self {
187        self.inner = self.inner.set_remove_operating_regions(input);
188        self
189    }
190    /// <p>The operating Regions to remove.</p>
191    pub fn get_remove_operating_regions(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::RemoveIpamOperatingRegion>> {
192        self.inner.get_remove_operating_regions()
193    }
194    /// <p>IPAM is offered in a Free Tier and an Advanced Tier. For more information about the features available in each tier and the costs associated with the tiers, see <a href="http://aws.amazon.com/vpc/pricing/">Amazon VPC pricing &gt; IPAM tab</a>.</p>
195    pub fn tier(mut self, input: crate::types::IpamTier) -> Self {
196        self.inner = self.inner.tier(input);
197        self
198    }
199    /// <p>IPAM is offered in a Free Tier and an Advanced Tier. For more information about the features available in each tier and the costs associated with the tiers, see <a href="http://aws.amazon.com/vpc/pricing/">Amazon VPC pricing &gt; IPAM tab</a>.</p>
200    pub fn set_tier(mut self, input: ::std::option::Option<crate::types::IpamTier>) -> Self {
201        self.inner = self.inner.set_tier(input);
202        self
203    }
204    /// <p>IPAM is offered in a Free Tier and an Advanced Tier. For more information about the features available in each tier and the costs associated with the tiers, see <a href="http://aws.amazon.com/vpc/pricing/">Amazon VPC pricing &gt; IPAM tab</a>.</p>
205    pub fn get_tier(&self) -> &::std::option::Option<crate::types::IpamTier> {
206        self.inner.get_tier()
207    }
208    /// <p>Enable this option to use your own GUA ranges as private IPv6 addresses. This option is disabled by default.</p>
209    pub fn enable_private_gua(mut self, input: bool) -> Self {
210        self.inner = self.inner.enable_private_gua(input);
211        self
212    }
213    /// <p>Enable this option to use your own GUA ranges as private IPv6 addresses. This option is disabled by default.</p>
214    pub fn set_enable_private_gua(mut self, input: ::std::option::Option<bool>) -> Self {
215        self.inner = self.inner.set_enable_private_gua(input);
216        self
217    }
218    /// <p>Enable this option to use your own GUA ranges as private IPv6 addresses. This option is disabled by default.</p>
219    pub fn get_enable_private_gua(&self) -> &::std::option::Option<bool> {
220        self.inner.get_enable_private_gua()
221    }
222    /// <p>A metered account is an Amazon Web Services account that is charged for active IP addresses managed in IPAM. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/ipam/ipam-enable-cost-distro.html">Enable cost distribution</a> in the <i>Amazon VPC IPAM User Guide</i>.</p>
223    /// <p>Possible values:</p>
224    /// <ul>
225    /// <li>
226    /// <p><code>ipam-owner</code> (default): The Amazon Web Services account which owns the IPAM is charged for all active IP addresses managed in IPAM.</p></li>
227    /// <li>
228    /// <p><code>resource-owner</code>: The Amazon Web Services account that owns the IP address is charged for the active IP address.</p></li>
229    /// </ul>
230    pub fn metered_account(mut self, input: crate::types::IpamMeteredAccount) -> Self {
231        self.inner = self.inner.metered_account(input);
232        self
233    }
234    /// <p>A metered account is an Amazon Web Services account that is charged for active IP addresses managed in IPAM. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/ipam/ipam-enable-cost-distro.html">Enable cost distribution</a> in the <i>Amazon VPC IPAM User Guide</i>.</p>
235    /// <p>Possible values:</p>
236    /// <ul>
237    /// <li>
238    /// <p><code>ipam-owner</code> (default): The Amazon Web Services account which owns the IPAM is charged for all active IP addresses managed in IPAM.</p></li>
239    /// <li>
240    /// <p><code>resource-owner</code>: The Amazon Web Services account that owns the IP address is charged for the active IP address.</p></li>
241    /// </ul>
242    pub fn set_metered_account(mut self, input: ::std::option::Option<crate::types::IpamMeteredAccount>) -> Self {
243        self.inner = self.inner.set_metered_account(input);
244        self
245    }
246    /// <p>A metered account is an Amazon Web Services account that is charged for active IP addresses managed in IPAM. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/ipam/ipam-enable-cost-distro.html">Enable cost distribution</a> in the <i>Amazon VPC IPAM User Guide</i>.</p>
247    /// <p>Possible values:</p>
248    /// <ul>
249    /// <li>
250    /// <p><code>ipam-owner</code> (default): The Amazon Web Services account which owns the IPAM is charged for all active IP addresses managed in IPAM.</p></li>
251    /// <li>
252    /// <p><code>resource-owner</code>: The Amazon Web Services account that owns the IP address is charged for the active IP address.</p></li>
253    /// </ul>
254    pub fn get_metered_account(&self) -> &::std::option::Option<crate::types::IpamMeteredAccount> {
255        self.inner.get_metered_account()
256    }
257}