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
155
156
157
158
159
160
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.

/// <p>The ParameterDeclaration data type.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct ParameterDeclaration {
    /// <p>The name that's associated with the parameter.</p>
    pub parameter_key: ::std::option::Option<::std::string::String>,
    /// <p>The default value of the parameter.</p>
    pub default_value: ::std::option::Option<::std::string::String>,
    /// <p>The type of parameter.</p>
    pub parameter_type: ::std::option::Option<::std::string::String>,
    /// <p>Flag that indicates whether the parameter value is shown as plain text in logs and in the Amazon Web Services Management Console.</p>
    pub no_echo: ::std::option::Option<bool>,
    /// <p>The description that's associate with the parameter.</p>
    pub description: ::std::option::Option<::std::string::String>,
    /// <p>The criteria that CloudFormation uses to validate parameter values.</p>
    pub parameter_constraints: ::std::option::Option<crate::types::ParameterConstraints>,
}
impl ParameterDeclaration {
    /// <p>The name that's associated with the parameter.</p>
    pub fn parameter_key(&self) -> ::std::option::Option<&str> {
        self.parameter_key.as_deref()
    }
    /// <p>The default value of the parameter.</p>
    pub fn default_value(&self) -> ::std::option::Option<&str> {
        self.default_value.as_deref()
    }
    /// <p>The type of parameter.</p>
    pub fn parameter_type(&self) -> ::std::option::Option<&str> {
        self.parameter_type.as_deref()
    }
    /// <p>Flag that indicates whether the parameter value is shown as plain text in logs and in the Amazon Web Services Management Console.</p>
    pub fn no_echo(&self) -> ::std::option::Option<bool> {
        self.no_echo
    }
    /// <p>The description that's associate with the parameter.</p>
    pub fn description(&self) -> ::std::option::Option<&str> {
        self.description.as_deref()
    }
    /// <p>The criteria that CloudFormation uses to validate parameter values.</p>
    pub fn parameter_constraints(&self) -> ::std::option::Option<&crate::types::ParameterConstraints> {
        self.parameter_constraints.as_ref()
    }
}
impl ParameterDeclaration {
    /// Creates a new builder-style object to manufacture [`ParameterDeclaration`](crate::types::ParameterDeclaration).
    pub fn builder() -> crate::types::builders::ParameterDeclarationBuilder {
        crate::types::builders::ParameterDeclarationBuilder::default()
    }
}

/// A builder for [`ParameterDeclaration`](crate::types::ParameterDeclaration).
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
pub struct ParameterDeclarationBuilder {
    pub(crate) parameter_key: ::std::option::Option<::std::string::String>,
    pub(crate) default_value: ::std::option::Option<::std::string::String>,
    pub(crate) parameter_type: ::std::option::Option<::std::string::String>,
    pub(crate) no_echo: ::std::option::Option<bool>,
    pub(crate) description: ::std::option::Option<::std::string::String>,
    pub(crate) parameter_constraints: ::std::option::Option<crate::types::ParameterConstraints>,
}
impl ParameterDeclarationBuilder {
    /// <p>The name that's associated with the parameter.</p>
    pub fn parameter_key(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.parameter_key = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The name that's associated with the parameter.</p>
    pub fn set_parameter_key(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.parameter_key = input;
        self
    }
    /// <p>The name that's associated with the parameter.</p>
    pub fn get_parameter_key(&self) -> &::std::option::Option<::std::string::String> {
        &self.parameter_key
    }
    /// <p>The default value of the parameter.</p>
    pub fn default_value(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.default_value = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The default value of the parameter.</p>
    pub fn set_default_value(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.default_value = input;
        self
    }
    /// <p>The default value of the parameter.</p>
    pub fn get_default_value(&self) -> &::std::option::Option<::std::string::String> {
        &self.default_value
    }
    /// <p>The type of parameter.</p>
    pub fn parameter_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.parameter_type = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The type of parameter.</p>
    pub fn set_parameter_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.parameter_type = input;
        self
    }
    /// <p>The type of parameter.</p>
    pub fn get_parameter_type(&self) -> &::std::option::Option<::std::string::String> {
        &self.parameter_type
    }
    /// <p>Flag that indicates whether the parameter value is shown as plain text in logs and in the Amazon Web Services Management Console.</p>
    pub fn no_echo(mut self, input: bool) -> Self {
        self.no_echo = ::std::option::Option::Some(input);
        self
    }
    /// <p>Flag that indicates whether the parameter value is shown as plain text in logs and in the Amazon Web Services Management Console.</p>
    pub fn set_no_echo(mut self, input: ::std::option::Option<bool>) -> Self {
        self.no_echo = input;
        self
    }
    /// <p>Flag that indicates whether the parameter value is shown as plain text in logs and in the Amazon Web Services Management Console.</p>
    pub fn get_no_echo(&self) -> &::std::option::Option<bool> {
        &self.no_echo
    }
    /// <p>The description that's associate with the parameter.</p>
    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.description = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The description that's associate with the parameter.</p>
    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.description = input;
        self
    }
    /// <p>The description that's associate with the parameter.</p>
    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
        &self.description
    }
    /// <p>The criteria that CloudFormation uses to validate parameter values.</p>
    pub fn parameter_constraints(mut self, input: crate::types::ParameterConstraints) -> Self {
        self.parameter_constraints = ::std::option::Option::Some(input);
        self
    }
    /// <p>The criteria that CloudFormation uses to validate parameter values.</p>
    pub fn set_parameter_constraints(mut self, input: ::std::option::Option<crate::types::ParameterConstraints>) -> Self {
        self.parameter_constraints = input;
        self
    }
    /// <p>The criteria that CloudFormation uses to validate parameter values.</p>
    pub fn get_parameter_constraints(&self) -> &::std::option::Option<crate::types::ParameterConstraints> {
        &self.parameter_constraints
    }
    /// Consumes the builder and constructs a [`ParameterDeclaration`](crate::types::ParameterDeclaration).
    pub fn build(self) -> crate::types::ParameterDeclaration {
        crate::types::ParameterDeclaration {
            parameter_key: self.parameter_key,
            default_value: self.default_value,
            parameter_type: self.parameter_type,
            no_echo: self.no_echo,
            description: self.description,
            parameter_constraints: self.parameter_constraints,
        }
    }
}