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 > 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 > 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 > 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}