1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
/// <p>Contains the parameters for CreateVpnGateway.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct CreateVpnGatewayInput {
/// <p>The Availability Zone for the virtual private gateway.</p>
pub availability_zone: ::std::option::Option<::std::string::String>,
/// <p>The type of VPN connection this virtual private gateway supports.</p>
pub r#type: ::std::option::Option<crate::types::GatewayType>,
/// <p>The tags to apply to the virtual private gateway.</p>
pub tag_specifications: ::std::option::Option<::std::vec::Vec<crate::types::TagSpecification>>,
/// <p>A private Autonomous System Number (ASN) for the Amazon side of a BGP session. If you're using a 16-bit ASN, it must be in the 64512 to 65534 range. If you're using a 32-bit ASN, it must be in the 4200000000 to 4294967294 range.</p>
/// <p>Default: 64512</p>
pub amazon_side_asn: ::std::option::Option<i64>,
/// <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>
pub dry_run: ::std::option::Option<bool>,
}
impl CreateVpnGatewayInput {
/// <p>The Availability Zone for the virtual private gateway.</p>
pub fn availability_zone(&self) -> ::std::option::Option<&str> {
self.availability_zone.as_deref()
}
/// <p>The type of VPN connection this virtual private gateway supports.</p>
pub fn r#type(&self) -> ::std::option::Option<&crate::types::GatewayType> {
self.r#type.as_ref()
}
/// <p>The tags to apply to the virtual private gateway.</p>
///
/// 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()`.
pub fn tag_specifications(&self) -> &[crate::types::TagSpecification] {
self.tag_specifications.as_deref().unwrap_or_default()
}
/// <p>A private Autonomous System Number (ASN) for the Amazon side of a BGP session. If you're using a 16-bit ASN, it must be in the 64512 to 65534 range. If you're using a 32-bit ASN, it must be in the 4200000000 to 4294967294 range.</p>
/// <p>Default: 64512</p>
pub fn amazon_side_asn(&self) -> ::std::option::Option<i64> {
self.amazon_side_asn
}
/// <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>
pub fn dry_run(&self) -> ::std::option::Option<bool> {
self.dry_run
}
}
impl CreateVpnGatewayInput {
/// Creates a new builder-style object to manufacture [`CreateVpnGatewayInput`](crate::operation::create_vpn_gateway::CreateVpnGatewayInput).
pub fn builder() -> crate::operation::create_vpn_gateway::builders::CreateVpnGatewayInputBuilder {
crate::operation::create_vpn_gateway::builders::CreateVpnGatewayInputBuilder::default()
}
}
/// A builder for [`CreateVpnGatewayInput`](crate::operation::create_vpn_gateway::CreateVpnGatewayInput).
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
#[non_exhaustive]
pub struct CreateVpnGatewayInputBuilder {
pub(crate) availability_zone: ::std::option::Option<::std::string::String>,
pub(crate) r#type: ::std::option::Option<crate::types::GatewayType>,
pub(crate) tag_specifications: ::std::option::Option<::std::vec::Vec<crate::types::TagSpecification>>,
pub(crate) amazon_side_asn: ::std::option::Option<i64>,
pub(crate) dry_run: ::std::option::Option<bool>,
}
impl CreateVpnGatewayInputBuilder {
/// <p>The Availability Zone for the virtual private gateway.</p>
pub fn availability_zone(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.availability_zone = ::std::option::Option::Some(input.into());
self
}
/// <p>The Availability Zone for the virtual private gateway.</p>
pub fn set_availability_zone(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.availability_zone = input;
self
}
/// <p>The Availability Zone for the virtual private gateway.</p>
pub fn get_availability_zone(&self) -> &::std::option::Option<::std::string::String> {
&self.availability_zone
}
/// <p>The type of VPN connection this virtual private gateway supports.</p>
/// This field is required.
pub fn r#type(mut self, input: crate::types::GatewayType) -> Self {
self.r#type = ::std::option::Option::Some(input);
self
}
/// <p>The type of VPN connection this virtual private gateway supports.</p>
pub fn set_type(mut self, input: ::std::option::Option<crate::types::GatewayType>) -> Self {
self.r#type = input;
self
}
/// <p>The type of VPN connection this virtual private gateway supports.</p>
pub fn get_type(&self) -> &::std::option::Option<crate::types::GatewayType> {
&self.r#type
}
/// Appends an item to `tag_specifications`.
///
/// To override the contents of this collection use [`set_tag_specifications`](Self::set_tag_specifications).
///
/// <p>The tags to apply to the virtual private gateway.</p>
pub fn tag_specifications(mut self, input: crate::types::TagSpecification) -> Self {
let mut v = self.tag_specifications.unwrap_or_default();
v.push(input);
self.tag_specifications = ::std::option::Option::Some(v);
self
}
/// <p>The tags to apply to the virtual private gateway.</p>
pub fn set_tag_specifications(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::TagSpecification>>) -> Self {
self.tag_specifications = input;
self
}
/// <p>The tags to apply to the virtual private gateway.</p>
pub fn get_tag_specifications(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::TagSpecification>> {
&self.tag_specifications
}
/// <p>A private Autonomous System Number (ASN) for the Amazon side of a BGP session. If you're using a 16-bit ASN, it must be in the 64512 to 65534 range. If you're using a 32-bit ASN, it must be in the 4200000000 to 4294967294 range.</p>
/// <p>Default: 64512</p>
pub fn amazon_side_asn(mut self, input: i64) -> Self {
self.amazon_side_asn = ::std::option::Option::Some(input);
self
}
/// <p>A private Autonomous System Number (ASN) for the Amazon side of a BGP session. If you're using a 16-bit ASN, it must be in the 64512 to 65534 range. If you're using a 32-bit ASN, it must be in the 4200000000 to 4294967294 range.</p>
/// <p>Default: 64512</p>
pub fn set_amazon_side_asn(mut self, input: ::std::option::Option<i64>) -> Self {
self.amazon_side_asn = input;
self
}
/// <p>A private Autonomous System Number (ASN) for the Amazon side of a BGP session. If you're using a 16-bit ASN, it must be in the 64512 to 65534 range. If you're using a 32-bit ASN, it must be in the 4200000000 to 4294967294 range.</p>
/// <p>Default: 64512</p>
pub fn get_amazon_side_asn(&self) -> &::std::option::Option<i64> {
&self.amazon_side_asn
}
/// <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>
pub fn dry_run(mut self, input: bool) -> Self {
self.dry_run = ::std::option::Option::Some(input);
self
}
/// <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>
pub fn set_dry_run(mut self, input: ::std::option::Option<bool>) -> Self {
self.dry_run = input;
self
}
/// <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>
pub fn get_dry_run(&self) -> &::std::option::Option<bool> {
&self.dry_run
}
/// Consumes the builder and constructs a [`CreateVpnGatewayInput`](crate::operation::create_vpn_gateway::CreateVpnGatewayInput).
pub fn build(
self,
) -> ::std::result::Result<crate::operation::create_vpn_gateway::CreateVpnGatewayInput, ::aws_smithy_types::error::operation::BuildError> {
::std::result::Result::Ok(crate::operation::create_vpn_gateway::CreateVpnGatewayInput {
availability_zone: self.availability_zone,
r#type: self.r#type,
tag_specifications: self.tag_specifications,
amazon_side_asn: self.amazon_side_asn,
dry_run: self.dry_run,
})
}
}