1use serde::{Deserialize, Serialize};
6
7#[derive(Debug, Clone, Default, PartialEq, Eq, Hash, Serialize, Deserialize)]
13pub enum ParameterType {
14 #[default]
16 String,
17 StringList,
19 SecureString,
21}
22
23impl ParameterType {
24 #[must_use]
26 pub fn as_str(&self) -> &'static str {
27 match self {
28 Self::String => "String",
29 Self::StringList => "StringList",
30 Self::SecureString => "SecureString",
31 }
32 }
33}
34
35impl std::fmt::Display for ParameterType {
36 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
37 f.write_str(self.as_str())
38 }
39}
40
41#[derive(Debug, Clone, Default, PartialEq, Eq, Hash, Serialize, Deserialize)]
43pub enum ParameterTier {
44 #[default]
46 Standard,
47 Advanced,
49 #[serde(rename = "Intelligent-Tiering")]
51 IntelligentTiering,
52}
53
54impl ParameterTier {
55 #[must_use]
57 pub fn as_str(&self) -> &'static str {
58 match self {
59 Self::Standard => "Standard",
60 Self::Advanced => "Advanced",
61 Self::IntelligentTiering => "Intelligent-Tiering",
62 }
63 }
64}
65
66impl std::fmt::Display for ParameterTier {
67 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
68 f.write_str(self.as_str())
69 }
70}
71
72#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
78#[serde(rename_all = "PascalCase")]
79pub struct Tag {
80 pub key: String,
82 pub value: String,
84}
85
86#[derive(Debug, Clone, Serialize, Deserialize)]
88#[serde(rename_all = "PascalCase")]
89pub struct Parameter {
90 #[serde(skip_serializing_if = "Option::is_none")]
92 pub name: Option<String>,
93
94 #[serde(rename = "Type", skip_serializing_if = "Option::is_none")]
96 pub parameter_type: Option<String>,
97
98 #[serde(skip_serializing_if = "Option::is_none")]
100 pub value: Option<String>,
101
102 #[serde(skip_serializing_if = "Option::is_none")]
104 pub version: Option<i64>,
105
106 #[serde(skip_serializing_if = "Option::is_none")]
108 pub last_modified_date: Option<f64>,
109
110 #[serde(rename = "ARN", skip_serializing_if = "Option::is_none")]
112 pub arn: Option<String>,
113
114 #[serde(skip_serializing_if = "Option::is_none")]
116 pub data_type: Option<String>,
117}
118
119#[derive(Debug, Clone, Serialize, Deserialize)]
121#[serde(rename_all = "PascalCase")]
122pub struct ParameterStringFilter {
123 pub key: String,
125
126 #[serde(skip_serializing_if = "Option::is_none")]
128 pub option: Option<String>,
129
130 #[serde(default, skip_serializing_if = "Vec::is_empty")]
132 pub values: Vec<String>,
133}
134
135#[derive(Debug, Clone, Serialize, Deserialize)]
139#[serde(rename_all = "PascalCase")]
140pub struct ParameterMetadata {
141 #[serde(skip_serializing_if = "Option::is_none")]
143 pub name: Option<String>,
144
145 #[serde(rename = "Type", skip_serializing_if = "Option::is_none")]
147 pub parameter_type: Option<String>,
148
149 #[serde(skip_serializing_if = "Option::is_none")]
151 pub key_id: Option<String>,
152
153 #[serde(skip_serializing_if = "Option::is_none")]
155 pub last_modified_date: Option<f64>,
156
157 #[serde(skip_serializing_if = "Option::is_none")]
159 pub last_modified_user: Option<String>,
160
161 #[serde(skip_serializing_if = "Option::is_none")]
163 pub description: Option<String>,
164
165 #[serde(skip_serializing_if = "Option::is_none")]
167 pub allowed_pattern: Option<String>,
168
169 #[serde(skip_serializing_if = "Option::is_none")]
171 pub version: Option<i64>,
172
173 #[serde(skip_serializing_if = "Option::is_none")]
175 pub tier: Option<String>,
176
177 #[serde(default, skip_serializing_if = "Vec::is_empty")]
179 pub policies: Vec<ParameterInlinePolicy>,
180
181 #[serde(skip_serializing_if = "Option::is_none")]
183 pub data_type: Option<String>,
184}
185
186#[derive(Debug, Clone, Serialize, Deserialize)]
188#[serde(rename_all = "PascalCase")]
189pub struct ParameterHistory {
190 #[serde(skip_serializing_if = "Option::is_none")]
192 pub name: Option<String>,
193
194 #[serde(rename = "Type", skip_serializing_if = "Option::is_none")]
196 pub parameter_type: Option<String>,
197
198 #[serde(skip_serializing_if = "Option::is_none")]
200 pub key_id: Option<String>,
201
202 #[serde(skip_serializing_if = "Option::is_none")]
204 pub last_modified_date: Option<f64>,
205
206 #[serde(skip_serializing_if = "Option::is_none")]
208 pub last_modified_user: Option<String>,
209
210 #[serde(skip_serializing_if = "Option::is_none")]
212 pub description: Option<String>,
213
214 #[serde(skip_serializing_if = "Option::is_none")]
216 pub value: Option<String>,
217
218 #[serde(skip_serializing_if = "Option::is_none")]
220 pub allowed_pattern: Option<String>,
221
222 #[serde(skip_serializing_if = "Option::is_none")]
224 pub version: Option<i64>,
225
226 #[serde(default, skip_serializing_if = "Vec::is_empty")]
228 pub labels: Vec<String>,
229
230 #[serde(skip_serializing_if = "Option::is_none")]
232 pub tier: Option<String>,
233
234 #[serde(default, skip_serializing_if = "Vec::is_empty")]
236 pub policies: Vec<ParameterInlinePolicy>,
237
238 #[serde(skip_serializing_if = "Option::is_none")]
240 pub data_type: Option<String>,
241}
242
243#[derive(Debug, Clone, Serialize, Deserialize)]
245#[serde(rename_all = "PascalCase")]
246pub struct ParameterInlinePolicy {
247 #[serde(skip_serializing_if = "Option::is_none")]
249 pub policy_text: Option<String>,
250
251 #[serde(skip_serializing_if = "Option::is_none")]
253 pub policy_type: Option<String>,
254
255 #[serde(skip_serializing_if = "Option::is_none")]
257 pub policy_status: Option<String>,
258}