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
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct CreateSiteToSiteVpnAttachmentInput {
    /// <p>The ID of a core network where you're creating a site-to-site VPN attachment.</p>
    pub core_network_id: ::std::option::Option<::std::string::String>,
    /// <p>The ARN identifying the VPN attachment.</p>
    pub vpn_connection_arn: ::std::option::Option<::std::string::String>,
    /// <p>The tags associated with the request.</p>
    pub tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
    /// <p>The client token associated with the request.</p>
    pub client_token: ::std::option::Option<::std::string::String>,
}
impl CreateSiteToSiteVpnAttachmentInput {
    /// <p>The ID of a core network where you're creating a site-to-site VPN attachment.</p>
    pub fn core_network_id(&self) -> ::std::option::Option<&str> {
        self.core_network_id.as_deref()
    }
    /// <p>The ARN identifying the VPN attachment.</p>
    pub fn vpn_connection_arn(&self) -> ::std::option::Option<&str> {
        self.vpn_connection_arn.as_deref()
    }
    /// <p>The tags associated with the request.</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 `.tags.is_none()`.
    pub fn tags(&self) -> &[crate::types::Tag] {
        self.tags.as_deref().unwrap_or_default()
    }
    /// <p>The client token associated with the request.</p>
    pub fn client_token(&self) -> ::std::option::Option<&str> {
        self.client_token.as_deref()
    }
}
impl CreateSiteToSiteVpnAttachmentInput {
    /// Creates a new builder-style object to manufacture [`CreateSiteToSiteVpnAttachmentInput`](crate::operation::create_site_to_site_vpn_attachment::CreateSiteToSiteVpnAttachmentInput).
    pub fn builder() -> crate::operation::create_site_to_site_vpn_attachment::builders::CreateSiteToSiteVpnAttachmentInputBuilder {
        crate::operation::create_site_to_site_vpn_attachment::builders::CreateSiteToSiteVpnAttachmentInputBuilder::default()
    }
}

/// A builder for [`CreateSiteToSiteVpnAttachmentInput`](crate::operation::create_site_to_site_vpn_attachment::CreateSiteToSiteVpnAttachmentInput).
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
pub struct CreateSiteToSiteVpnAttachmentInputBuilder {
    pub(crate) core_network_id: ::std::option::Option<::std::string::String>,
    pub(crate) vpn_connection_arn: ::std::option::Option<::std::string::String>,
    pub(crate) tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
    pub(crate) client_token: ::std::option::Option<::std::string::String>,
}
impl CreateSiteToSiteVpnAttachmentInputBuilder {
    /// <p>The ID of a core network where you're creating a site-to-site VPN attachment.</p>
    /// This field is required.
    pub fn core_network_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.core_network_id = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The ID of a core network where you're creating a site-to-site VPN attachment.</p>
    pub fn set_core_network_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.core_network_id = input;
        self
    }
    /// <p>The ID of a core network where you're creating a site-to-site VPN attachment.</p>
    pub fn get_core_network_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.core_network_id
    }
    /// <p>The ARN identifying the VPN attachment.</p>
    /// This field is required.
    pub fn vpn_connection_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.vpn_connection_arn = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The ARN identifying the VPN attachment.</p>
    pub fn set_vpn_connection_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.vpn_connection_arn = input;
        self
    }
    /// <p>The ARN identifying the VPN attachment.</p>
    pub fn get_vpn_connection_arn(&self) -> &::std::option::Option<::std::string::String> {
        &self.vpn_connection_arn
    }
    /// Appends an item to `tags`.
    ///
    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
    ///
    /// <p>The tags associated with the request.</p>
    pub fn tags(mut self, input: crate::types::Tag) -> Self {
        let mut v = self.tags.unwrap_or_default();
        v.push(input);
        self.tags = ::std::option::Option::Some(v);
        self
    }
    /// <p>The tags associated with the request.</p>
    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
        self.tags = input;
        self
    }
    /// <p>The tags associated with the request.</p>
    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
        &self.tags
    }
    /// <p>The client token associated with the request.</p>
    pub fn client_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.client_token = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The client token associated with the request.</p>
    pub fn set_client_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.client_token = input;
        self
    }
    /// <p>The client token associated with the request.</p>
    pub fn get_client_token(&self) -> &::std::option::Option<::std::string::String> {
        &self.client_token
    }
    /// Consumes the builder and constructs a [`CreateSiteToSiteVpnAttachmentInput`](crate::operation::create_site_to_site_vpn_attachment::CreateSiteToSiteVpnAttachmentInput).
    pub fn build(
        self,
    ) -> ::std::result::Result<
        crate::operation::create_site_to_site_vpn_attachment::CreateSiteToSiteVpnAttachmentInput,
        ::aws_smithy_types::error::operation::BuildError,
    > {
        ::std::result::Result::Ok(crate::operation::create_site_to_site_vpn_attachment::CreateSiteToSiteVpnAttachmentInput {
            core_network_id: self.core_network_id,
            vpn_connection_arn: self.vpn_connection_arn,
            tags: self.tags,
            client_token: self.client_token,
        })
    }
}