aws_sdk_ec2/operation/create_vpc/_create_vpc_input.rs
1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(missing_docs)] // documentation missing in model
3#[non_exhaustive]
4#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
5pub struct CreateVpcInput {
6 /// <p>The IPv4 network range for the VPC, in CIDR notation. For example, <code>10.0.0.0/16</code>. We modify the specified CIDR block to its canonical form; for example, if you specify <code>100.68.0.18/18</code>, we modify it to <code>100.68.0.0/18</code>.</p>
7 pub cidr_block: ::std::option::Option<::std::string::String>,
8 /// <p>The ID of an IPv6 address pool from which to allocate the IPv6 CIDR block.</p>
9 pub ipv6_pool: ::std::option::Option<::std::string::String>,
10 /// <p>The IPv6 CIDR block from the IPv6 address pool. You must also specify <code>Ipv6Pool</code> in the request.</p>
11 /// <p>To let Amazon choose the IPv6 CIDR block for you, omit this parameter.</p>
12 pub ipv6_cidr_block: ::std::option::Option<::std::string::String>,
13 /// <p>The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html">What is IPAM?</a> in the <i>Amazon VPC IPAM User Guide</i>.</p>
14 pub ipv4_ipam_pool_id: ::std::option::Option<::std::string::String>,
15 /// <p>The netmask length of the IPv4 CIDR you want to allocate to this VPC from an Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see <a href="https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html">What is IPAM?</a> in the <i>Amazon VPC IPAM User Guide</i>.</p>
16 pub ipv4_netmask_length: ::std::option::Option<i32>,
17 /// <p>The ID of an IPv6 IPAM pool which will be used to allocate this VPC an IPv6 CIDR. IPAM is a VPC feature that you can use to automate your IP address management workflows including assigning, tracking, troubleshooting, and auditing IP addresses across Amazon Web Services Regions and accounts throughout your Amazon Web Services Organization. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html">What is IPAM?</a> in the <i>Amazon VPC IPAM User Guide</i>.</p>
18 pub ipv6_ipam_pool_id: ::std::option::Option<::std::string::String>,
19 /// <p>The netmask length of the IPv6 CIDR you want to allocate to this VPC from an Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see <a href="https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html">What is IPAM?</a> in the <i>Amazon VPC IPAM User Guide</i>.</p>
20 pub ipv6_netmask_length: ::std::option::Option<i32>,
21 /// <p>The name of the location from which we advertise the IPV6 CIDR block. Use this parameter to limit the address to this location.</p>
22 /// <p>You must set <code>AmazonProvidedIpv6CidrBlock</code> to <code>true</code> to use this parameter.</p>
23 pub ipv6_cidr_block_network_border_group: ::std::option::Option<::std::string::String>,
24 /// <p>The tags to assign to the VPC.</p>
25 pub tag_specifications: ::std::option::Option<::std::vec::Vec<crate::types::TagSpecification>>,
26 /// <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>
27 pub dry_run: ::std::option::Option<bool>,
28 /// <p>The tenancy options for instances launched into the VPC. For <code>default</code>, instances are launched with shared tenancy by default. You can launch instances with any tenancy into a shared tenancy VPC. For <code>dedicated</code>, instances are launched as dedicated tenancy instances by default. You can only launch instances with a tenancy of <code>dedicated</code> or <code>host</code> into a dedicated tenancy VPC.</p>
29 /// <p><b>Important:</b> The <code>host</code> value cannot be used with this parameter. Use the <code>default</code> or <code>dedicated</code> values only.</p>
30 /// <p>Default: <code>default</code></p>
31 pub instance_tenancy: ::std::option::Option<crate::types::Tenancy>,
32 /// <p>Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the VPC. You cannot specify the range of IP addresses, or the size of the CIDR block.</p>
33 pub amazon_provided_ipv6_cidr_block: ::std::option::Option<bool>,
34}
35impl CreateVpcInput {
36 /// <p>The IPv4 network range for the VPC, in CIDR notation. For example, <code>10.0.0.0/16</code>. We modify the specified CIDR block to its canonical form; for example, if you specify <code>100.68.0.18/18</code>, we modify it to <code>100.68.0.0/18</code>.</p>
37 pub fn cidr_block(&self) -> ::std::option::Option<&str> {
38 self.cidr_block.as_deref()
39 }
40 /// <p>The ID of an IPv6 address pool from which to allocate the IPv6 CIDR block.</p>
41 pub fn ipv6_pool(&self) -> ::std::option::Option<&str> {
42 self.ipv6_pool.as_deref()
43 }
44 /// <p>The IPv6 CIDR block from the IPv6 address pool. You must also specify <code>Ipv6Pool</code> in the request.</p>
45 /// <p>To let Amazon choose the IPv6 CIDR block for you, omit this parameter.</p>
46 pub fn ipv6_cidr_block(&self) -> ::std::option::Option<&str> {
47 self.ipv6_cidr_block.as_deref()
48 }
49 /// <p>The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html">What is IPAM?</a> in the <i>Amazon VPC IPAM User Guide</i>.</p>
50 pub fn ipv4_ipam_pool_id(&self) -> ::std::option::Option<&str> {
51 self.ipv4_ipam_pool_id.as_deref()
52 }
53 /// <p>The netmask length of the IPv4 CIDR you want to allocate to this VPC from an Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see <a href="https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html">What is IPAM?</a> in the <i>Amazon VPC IPAM User Guide</i>.</p>
54 pub fn ipv4_netmask_length(&self) -> ::std::option::Option<i32> {
55 self.ipv4_netmask_length
56 }
57 /// <p>The ID of an IPv6 IPAM pool which will be used to allocate this VPC an IPv6 CIDR. IPAM is a VPC feature that you can use to automate your IP address management workflows including assigning, tracking, troubleshooting, and auditing IP addresses across Amazon Web Services Regions and accounts throughout your Amazon Web Services Organization. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html">What is IPAM?</a> in the <i>Amazon VPC IPAM User Guide</i>.</p>
58 pub fn ipv6_ipam_pool_id(&self) -> ::std::option::Option<&str> {
59 self.ipv6_ipam_pool_id.as_deref()
60 }
61 /// <p>The netmask length of the IPv6 CIDR you want to allocate to this VPC from an Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see <a href="https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html">What is IPAM?</a> in the <i>Amazon VPC IPAM User Guide</i>.</p>
62 pub fn ipv6_netmask_length(&self) -> ::std::option::Option<i32> {
63 self.ipv6_netmask_length
64 }
65 /// <p>The name of the location from which we advertise the IPV6 CIDR block. Use this parameter to limit the address to this location.</p>
66 /// <p>You must set <code>AmazonProvidedIpv6CidrBlock</code> to <code>true</code> to use this parameter.</p>
67 pub fn ipv6_cidr_block_network_border_group(&self) -> ::std::option::Option<&str> {
68 self.ipv6_cidr_block_network_border_group.as_deref()
69 }
70 /// <p>The tags to assign to the VPC.</p>
71 ///
72 /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.tag_specifications.is_none()`.
73 pub fn tag_specifications(&self) -> &[crate::types::TagSpecification] {
74 self.tag_specifications.as_deref().unwrap_or_default()
75 }
76 /// <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>
77 pub fn dry_run(&self) -> ::std::option::Option<bool> {
78 self.dry_run
79 }
80 /// <p>The tenancy options for instances launched into the VPC. For <code>default</code>, instances are launched with shared tenancy by default. You can launch instances with any tenancy into a shared tenancy VPC. For <code>dedicated</code>, instances are launched as dedicated tenancy instances by default. You can only launch instances with a tenancy of <code>dedicated</code> or <code>host</code> into a dedicated tenancy VPC.</p>
81 /// <p><b>Important:</b> The <code>host</code> value cannot be used with this parameter. Use the <code>default</code> or <code>dedicated</code> values only.</p>
82 /// <p>Default: <code>default</code></p>
83 pub fn instance_tenancy(&self) -> ::std::option::Option<&crate::types::Tenancy> {
84 self.instance_tenancy.as_ref()
85 }
86 /// <p>Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the VPC. You cannot specify the range of IP addresses, or the size of the CIDR block.</p>
87 pub fn amazon_provided_ipv6_cidr_block(&self) -> ::std::option::Option<bool> {
88 self.amazon_provided_ipv6_cidr_block
89 }
90}
91impl CreateVpcInput {
92 /// Creates a new builder-style object to manufacture [`CreateVpcInput`](crate::operation::create_vpc::CreateVpcInput).
93 pub fn builder() -> crate::operation::create_vpc::builders::CreateVpcInputBuilder {
94 crate::operation::create_vpc::builders::CreateVpcInputBuilder::default()
95 }
96}
97
98/// A builder for [`CreateVpcInput`](crate::operation::create_vpc::CreateVpcInput).
99#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
100#[non_exhaustive]
101pub struct CreateVpcInputBuilder {
102 pub(crate) cidr_block: ::std::option::Option<::std::string::String>,
103 pub(crate) ipv6_pool: ::std::option::Option<::std::string::String>,
104 pub(crate) ipv6_cidr_block: ::std::option::Option<::std::string::String>,
105 pub(crate) ipv4_ipam_pool_id: ::std::option::Option<::std::string::String>,
106 pub(crate) ipv4_netmask_length: ::std::option::Option<i32>,
107 pub(crate) ipv6_ipam_pool_id: ::std::option::Option<::std::string::String>,
108 pub(crate) ipv6_netmask_length: ::std::option::Option<i32>,
109 pub(crate) ipv6_cidr_block_network_border_group: ::std::option::Option<::std::string::String>,
110 pub(crate) tag_specifications: ::std::option::Option<::std::vec::Vec<crate::types::TagSpecification>>,
111 pub(crate) dry_run: ::std::option::Option<bool>,
112 pub(crate) instance_tenancy: ::std::option::Option<crate::types::Tenancy>,
113 pub(crate) amazon_provided_ipv6_cidr_block: ::std::option::Option<bool>,
114}
115impl CreateVpcInputBuilder {
116 /// <p>The IPv4 network range for the VPC, in CIDR notation. For example, <code>10.0.0.0/16</code>. We modify the specified CIDR block to its canonical form; for example, if you specify <code>100.68.0.18/18</code>, we modify it to <code>100.68.0.0/18</code>.</p>
117 pub fn cidr_block(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
118 self.cidr_block = ::std::option::Option::Some(input.into());
119 self
120 }
121 /// <p>The IPv4 network range for the VPC, in CIDR notation. For example, <code>10.0.0.0/16</code>. We modify the specified CIDR block to its canonical form; for example, if you specify <code>100.68.0.18/18</code>, we modify it to <code>100.68.0.0/18</code>.</p>
122 pub fn set_cidr_block(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
123 self.cidr_block = input;
124 self
125 }
126 /// <p>The IPv4 network range for the VPC, in CIDR notation. For example, <code>10.0.0.0/16</code>. We modify the specified CIDR block to its canonical form; for example, if you specify <code>100.68.0.18/18</code>, we modify it to <code>100.68.0.0/18</code>.</p>
127 pub fn get_cidr_block(&self) -> &::std::option::Option<::std::string::String> {
128 &self.cidr_block
129 }
130 /// <p>The ID of an IPv6 address pool from which to allocate the IPv6 CIDR block.</p>
131 pub fn ipv6_pool(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
132 self.ipv6_pool = ::std::option::Option::Some(input.into());
133 self
134 }
135 /// <p>The ID of an IPv6 address pool from which to allocate the IPv6 CIDR block.</p>
136 pub fn set_ipv6_pool(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
137 self.ipv6_pool = input;
138 self
139 }
140 /// <p>The ID of an IPv6 address pool from which to allocate the IPv6 CIDR block.</p>
141 pub fn get_ipv6_pool(&self) -> &::std::option::Option<::std::string::String> {
142 &self.ipv6_pool
143 }
144 /// <p>The IPv6 CIDR block from the IPv6 address pool. You must also specify <code>Ipv6Pool</code> in the request.</p>
145 /// <p>To let Amazon choose the IPv6 CIDR block for you, omit this parameter.</p>
146 pub fn ipv6_cidr_block(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
147 self.ipv6_cidr_block = ::std::option::Option::Some(input.into());
148 self
149 }
150 /// <p>The IPv6 CIDR block from the IPv6 address pool. You must also specify <code>Ipv6Pool</code> in the request.</p>
151 /// <p>To let Amazon choose the IPv6 CIDR block for you, omit this parameter.</p>
152 pub fn set_ipv6_cidr_block(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
153 self.ipv6_cidr_block = input;
154 self
155 }
156 /// <p>The IPv6 CIDR block from the IPv6 address pool. You must also specify <code>Ipv6Pool</code> in the request.</p>
157 /// <p>To let Amazon choose the IPv6 CIDR block for you, omit this parameter.</p>
158 pub fn get_ipv6_cidr_block(&self) -> &::std::option::Option<::std::string::String> {
159 &self.ipv6_cidr_block
160 }
161 /// <p>The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html">What is IPAM?</a> in the <i>Amazon VPC IPAM User Guide</i>.</p>
162 pub fn ipv4_ipam_pool_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
163 self.ipv4_ipam_pool_id = ::std::option::Option::Some(input.into());
164 self
165 }
166 /// <p>The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html">What is IPAM?</a> in the <i>Amazon VPC IPAM User Guide</i>.</p>
167 pub fn set_ipv4_ipam_pool_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
168 self.ipv4_ipam_pool_id = input;
169 self
170 }
171 /// <p>The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html">What is IPAM?</a> in the <i>Amazon VPC IPAM User Guide</i>.</p>
172 pub fn get_ipv4_ipam_pool_id(&self) -> &::std::option::Option<::std::string::String> {
173 &self.ipv4_ipam_pool_id
174 }
175 /// <p>The netmask length of the IPv4 CIDR you want to allocate to this VPC from an Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see <a href="https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html">What is IPAM?</a> in the <i>Amazon VPC IPAM User Guide</i>.</p>
176 pub fn ipv4_netmask_length(mut self, input: i32) -> Self {
177 self.ipv4_netmask_length = ::std::option::Option::Some(input);
178 self
179 }
180 /// <p>The netmask length of the IPv4 CIDR you want to allocate to this VPC from an Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see <a href="https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html">What is IPAM?</a> in the <i>Amazon VPC IPAM User Guide</i>.</p>
181 pub fn set_ipv4_netmask_length(mut self, input: ::std::option::Option<i32>) -> Self {
182 self.ipv4_netmask_length = input;
183 self
184 }
185 /// <p>The netmask length of the IPv4 CIDR you want to allocate to this VPC from an Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see <a href="https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html">What is IPAM?</a> in the <i>Amazon VPC IPAM User Guide</i>.</p>
186 pub fn get_ipv4_netmask_length(&self) -> &::std::option::Option<i32> {
187 &self.ipv4_netmask_length
188 }
189 /// <p>The ID of an IPv6 IPAM pool which will be used to allocate this VPC an IPv6 CIDR. IPAM is a VPC feature that you can use to automate your IP address management workflows including assigning, tracking, troubleshooting, and auditing IP addresses across Amazon Web Services Regions and accounts throughout your Amazon Web Services Organization. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html">What is IPAM?</a> in the <i>Amazon VPC IPAM User Guide</i>.</p>
190 pub fn ipv6_ipam_pool_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
191 self.ipv6_ipam_pool_id = ::std::option::Option::Some(input.into());
192 self
193 }
194 /// <p>The ID of an IPv6 IPAM pool which will be used to allocate this VPC an IPv6 CIDR. IPAM is a VPC feature that you can use to automate your IP address management workflows including assigning, tracking, troubleshooting, and auditing IP addresses across Amazon Web Services Regions and accounts throughout your Amazon Web Services Organization. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html">What is IPAM?</a> in the <i>Amazon VPC IPAM User Guide</i>.</p>
195 pub fn set_ipv6_ipam_pool_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
196 self.ipv6_ipam_pool_id = input;
197 self
198 }
199 /// <p>The ID of an IPv6 IPAM pool which will be used to allocate this VPC an IPv6 CIDR. IPAM is a VPC feature that you can use to automate your IP address management workflows including assigning, tracking, troubleshooting, and auditing IP addresses across Amazon Web Services Regions and accounts throughout your Amazon Web Services Organization. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html">What is IPAM?</a> in the <i>Amazon VPC IPAM User Guide</i>.</p>
200 pub fn get_ipv6_ipam_pool_id(&self) -> &::std::option::Option<::std::string::String> {
201 &self.ipv6_ipam_pool_id
202 }
203 /// <p>The netmask length of the IPv6 CIDR you want to allocate to this VPC from an Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see <a href="https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html">What is IPAM?</a> in the <i>Amazon VPC IPAM User Guide</i>.</p>
204 pub fn ipv6_netmask_length(mut self, input: i32) -> Self {
205 self.ipv6_netmask_length = ::std::option::Option::Some(input);
206 self
207 }
208 /// <p>The netmask length of the IPv6 CIDR you want to allocate to this VPC from an Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see <a href="https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html">What is IPAM?</a> in the <i>Amazon VPC IPAM User Guide</i>.</p>
209 pub fn set_ipv6_netmask_length(mut self, input: ::std::option::Option<i32>) -> Self {
210 self.ipv6_netmask_length = input;
211 self
212 }
213 /// <p>The netmask length of the IPv6 CIDR you want to allocate to this VPC from an Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see <a href="https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html">What is IPAM?</a> in the <i>Amazon VPC IPAM User Guide</i>.</p>
214 pub fn get_ipv6_netmask_length(&self) -> &::std::option::Option<i32> {
215 &self.ipv6_netmask_length
216 }
217 /// <p>The name of the location from which we advertise the IPV6 CIDR block. Use this parameter to limit the address to this location.</p>
218 /// <p>You must set <code>AmazonProvidedIpv6CidrBlock</code> to <code>true</code> to use this parameter.</p>
219 pub fn ipv6_cidr_block_network_border_group(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
220 self.ipv6_cidr_block_network_border_group = ::std::option::Option::Some(input.into());
221 self
222 }
223 /// <p>The name of the location from which we advertise the IPV6 CIDR block. Use this parameter to limit the address to this location.</p>
224 /// <p>You must set <code>AmazonProvidedIpv6CidrBlock</code> to <code>true</code> to use this parameter.</p>
225 pub fn set_ipv6_cidr_block_network_border_group(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
226 self.ipv6_cidr_block_network_border_group = input;
227 self
228 }
229 /// <p>The name of the location from which we advertise the IPV6 CIDR block. Use this parameter to limit the address to this location.</p>
230 /// <p>You must set <code>AmazonProvidedIpv6CidrBlock</code> to <code>true</code> to use this parameter.</p>
231 pub fn get_ipv6_cidr_block_network_border_group(&self) -> &::std::option::Option<::std::string::String> {
232 &self.ipv6_cidr_block_network_border_group
233 }
234 /// Appends an item to `tag_specifications`.
235 ///
236 /// To override the contents of this collection use [`set_tag_specifications`](Self::set_tag_specifications).
237 ///
238 /// <p>The tags to assign to the VPC.</p>
239 pub fn tag_specifications(mut self, input: crate::types::TagSpecification) -> Self {
240 let mut v = self.tag_specifications.unwrap_or_default();
241 v.push(input);
242 self.tag_specifications = ::std::option::Option::Some(v);
243 self
244 }
245 /// <p>The tags to assign to the VPC.</p>
246 pub fn set_tag_specifications(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::TagSpecification>>) -> Self {
247 self.tag_specifications = input;
248 self
249 }
250 /// <p>The tags to assign to the VPC.</p>
251 pub fn get_tag_specifications(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::TagSpecification>> {
252 &self.tag_specifications
253 }
254 /// <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>
255 pub fn dry_run(mut self, input: bool) -> Self {
256 self.dry_run = ::std::option::Option::Some(input);
257 self
258 }
259 /// <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>
260 pub fn set_dry_run(mut self, input: ::std::option::Option<bool>) -> Self {
261 self.dry_run = input;
262 self
263 }
264 /// <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>
265 pub fn get_dry_run(&self) -> &::std::option::Option<bool> {
266 &self.dry_run
267 }
268 /// <p>The tenancy options for instances launched into the VPC. For <code>default</code>, instances are launched with shared tenancy by default. You can launch instances with any tenancy into a shared tenancy VPC. For <code>dedicated</code>, instances are launched as dedicated tenancy instances by default. You can only launch instances with a tenancy of <code>dedicated</code> or <code>host</code> into a dedicated tenancy VPC.</p>
269 /// <p><b>Important:</b> The <code>host</code> value cannot be used with this parameter. Use the <code>default</code> or <code>dedicated</code> values only.</p>
270 /// <p>Default: <code>default</code></p>
271 pub fn instance_tenancy(mut self, input: crate::types::Tenancy) -> Self {
272 self.instance_tenancy = ::std::option::Option::Some(input);
273 self
274 }
275 /// <p>The tenancy options for instances launched into the VPC. For <code>default</code>, instances are launched with shared tenancy by default. You can launch instances with any tenancy into a shared tenancy VPC. For <code>dedicated</code>, instances are launched as dedicated tenancy instances by default. You can only launch instances with a tenancy of <code>dedicated</code> or <code>host</code> into a dedicated tenancy VPC.</p>
276 /// <p><b>Important:</b> The <code>host</code> value cannot be used with this parameter. Use the <code>default</code> or <code>dedicated</code> values only.</p>
277 /// <p>Default: <code>default</code></p>
278 pub fn set_instance_tenancy(mut self, input: ::std::option::Option<crate::types::Tenancy>) -> Self {
279 self.instance_tenancy = input;
280 self
281 }
282 /// <p>The tenancy options for instances launched into the VPC. For <code>default</code>, instances are launched with shared tenancy by default. You can launch instances with any tenancy into a shared tenancy VPC. For <code>dedicated</code>, instances are launched as dedicated tenancy instances by default. You can only launch instances with a tenancy of <code>dedicated</code> or <code>host</code> into a dedicated tenancy VPC.</p>
283 /// <p><b>Important:</b> The <code>host</code> value cannot be used with this parameter. Use the <code>default</code> or <code>dedicated</code> values only.</p>
284 /// <p>Default: <code>default</code></p>
285 pub fn get_instance_tenancy(&self) -> &::std::option::Option<crate::types::Tenancy> {
286 &self.instance_tenancy
287 }
288 /// <p>Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the VPC. You cannot specify the range of IP addresses, or the size of the CIDR block.</p>
289 pub fn amazon_provided_ipv6_cidr_block(mut self, input: bool) -> Self {
290 self.amazon_provided_ipv6_cidr_block = ::std::option::Option::Some(input);
291 self
292 }
293 /// <p>Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the VPC. You cannot specify the range of IP addresses, or the size of the CIDR block.</p>
294 pub fn set_amazon_provided_ipv6_cidr_block(mut self, input: ::std::option::Option<bool>) -> Self {
295 self.amazon_provided_ipv6_cidr_block = input;
296 self
297 }
298 /// <p>Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the VPC. You cannot specify the range of IP addresses, or the size of the CIDR block.</p>
299 pub fn get_amazon_provided_ipv6_cidr_block(&self) -> &::std::option::Option<bool> {
300 &self.amazon_provided_ipv6_cidr_block
301 }
302 /// Consumes the builder and constructs a [`CreateVpcInput`](crate::operation::create_vpc::CreateVpcInput).
303 pub fn build(self) -> ::std::result::Result<crate::operation::create_vpc::CreateVpcInput, ::aws_smithy_types::error::operation::BuildError> {
304 ::std::result::Result::Ok(crate::operation::create_vpc::CreateVpcInput {
305 cidr_block: self.cidr_block,
306 ipv6_pool: self.ipv6_pool,
307 ipv6_cidr_block: self.ipv6_cidr_block,
308 ipv4_ipam_pool_id: self.ipv4_ipam_pool_id,
309 ipv4_netmask_length: self.ipv4_netmask_length,
310 ipv6_ipam_pool_id: self.ipv6_ipam_pool_id,
311 ipv6_netmask_length: self.ipv6_netmask_length,
312 ipv6_cidr_block_network_border_group: self.ipv6_cidr_block_network_border_group,
313 tag_specifications: self.tag_specifications,
314 dry_run: self.dry_run,
315 instance_tenancy: self.instance_tenancy,
316 amazon_provided_ipv6_cidr_block: self.amazon_provided_ipv6_cidr_block,
317 })
318 }
319}