1use std::collections::HashMap;
4
5use serde::{Deserialize, Serialize};
6
7use crate::types::{
8 CustomerMasterKeySpec, DataKeyPairSpec, DataKeySpec, DryRunModifierType,
9 EncryptionAlgorithmSpec, GrantConstraints, GrantOperation, KeySpec, KeyUsageType,
10 MacAlgorithmSpec, MessageType, OriginType, RecipientInfo, SigningAlgorithmSpec, Tag,
11};
12
13#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15#[serde(rename_all = "PascalCase")]
16pub struct CancelKeyDeletionInput {
17 pub key_id: String,
18}
19
20#[derive(Debug, Clone, Default, Serialize, Deserialize)]
22#[serde(rename_all = "PascalCase")]
23pub struct CreateAliasInput {
24 pub alias_name: String,
25 pub target_key_id: String,
26}
27
28#[derive(Debug, Clone, Default, Serialize, Deserialize)]
30#[serde(rename_all = "PascalCase")]
31pub struct CreateGrantInput {
32 #[serde(skip_serializing_if = "Option::is_none")]
33 pub constraints: Option<GrantConstraints>,
34 #[serde(skip_serializing_if = "Option::is_none")]
35 pub dry_run: Option<bool>,
36 #[serde(default, skip_serializing_if = "Vec::is_empty")]
37 pub grant_tokens: Vec<String>,
38 pub grantee_principal: String,
39 pub key_id: String,
40 #[serde(skip_serializing_if = "Option::is_none")]
41 pub name: Option<String>,
42 #[serde(default, skip_serializing_if = "Vec::is_empty")]
43 pub operations: Vec<GrantOperation>,
44 #[serde(skip_serializing_if = "Option::is_none")]
45 pub retiring_principal: Option<String>,
46}
47
48#[derive(Debug, Clone, Default, Serialize, Deserialize)]
50#[serde(rename_all = "PascalCase")]
51pub struct CreateKeyInput {
52 #[serde(skip_serializing_if = "Option::is_none")]
53 pub bypass_policy_lockout_safety_check: Option<bool>,
54 #[serde(skip_serializing_if = "Option::is_none")]
55 pub custom_key_store_id: Option<String>,
56 #[serde(skip_serializing_if = "Option::is_none")]
57 pub customer_master_key_spec: Option<CustomerMasterKeySpec>,
58 #[serde(skip_serializing_if = "Option::is_none")]
59 pub description: Option<String>,
60 #[serde(skip_serializing_if = "Option::is_none")]
61 pub key_spec: Option<KeySpec>,
62 #[serde(skip_serializing_if = "Option::is_none")]
63 pub key_usage: Option<KeyUsageType>,
64 #[serde(skip_serializing_if = "Option::is_none")]
65 pub multi_region: Option<bool>,
66 #[serde(skip_serializing_if = "Option::is_none")]
67 pub origin: Option<OriginType>,
68 #[serde(skip_serializing_if = "Option::is_none")]
69 pub policy: Option<String>,
70 #[serde(default, skip_serializing_if = "Vec::is_empty")]
71 pub tags: Vec<Tag>,
72 #[serde(skip_serializing_if = "Option::is_none")]
73 pub xks_key_id: Option<String>,
74}
75
76#[derive(Debug, Clone, Default, Serialize, Deserialize)]
78#[serde(rename_all = "PascalCase")]
79pub struct DecryptInput {
80 #[serde(
81 skip_serializing_if = "Option::is_none",
82 serialize_with = "crate::blob::option::serialize",
83 deserialize_with = "crate::blob::option::deserialize"
84 )]
85 pub ciphertext_blob: Option<bytes::Bytes>,
86 #[serde(skip_serializing_if = "Option::is_none")]
87 pub dry_run: Option<bool>,
88 #[serde(default, skip_serializing_if = "Vec::is_empty")]
89 pub dry_run_modifiers: Vec<DryRunModifierType>,
90 #[serde(skip_serializing_if = "Option::is_none")]
91 pub encryption_algorithm: Option<EncryptionAlgorithmSpec>,
92 #[serde(default, skip_serializing_if = "HashMap::is_empty")]
93 pub encryption_context: HashMap<String, String>,
94 #[serde(default, skip_serializing_if = "Vec::is_empty")]
95 pub grant_tokens: Vec<String>,
96 #[serde(skip_serializing_if = "Option::is_none")]
97 pub key_id: Option<String>,
98 #[serde(skip_serializing_if = "Option::is_none")]
99 pub recipient: Option<RecipientInfo>,
100}
101
102#[derive(Debug, Clone, Default, Serialize, Deserialize)]
104#[serde(rename_all = "PascalCase")]
105pub struct DeleteAliasInput {
106 pub alias_name: String,
107}
108
109#[derive(Debug, Clone, Default, Serialize, Deserialize)]
111#[serde(rename_all = "PascalCase")]
112pub struct DescribeKeyInput {
113 #[serde(default, skip_serializing_if = "Vec::is_empty")]
114 pub grant_tokens: Vec<String>,
115 pub key_id: String,
116}
117
118#[derive(Debug, Clone, Default, Serialize, Deserialize)]
120#[serde(rename_all = "PascalCase")]
121pub struct DisableKeyInput {
122 pub key_id: String,
123}
124
125#[derive(Debug, Clone, Default, Serialize, Deserialize)]
127#[serde(rename_all = "PascalCase")]
128pub struct DisableKeyRotationInput {
129 pub key_id: String,
130}
131
132#[derive(Debug, Clone, Default, Serialize, Deserialize)]
134#[serde(rename_all = "PascalCase")]
135pub struct EnableKeyInput {
136 pub key_id: String,
137}
138
139#[derive(Debug, Clone, Default, Serialize, Deserialize)]
141#[serde(rename_all = "PascalCase")]
142pub struct EnableKeyRotationInput {
143 pub key_id: String,
144 #[serde(skip_serializing_if = "Option::is_none")]
145 pub rotation_period_in_days: Option<i32>,
146}
147
148#[derive(Debug, Clone, Default, Serialize, Deserialize)]
150#[serde(rename_all = "PascalCase")]
151pub struct EncryptInput {
152 #[serde(skip_serializing_if = "Option::is_none")]
153 pub dry_run: Option<bool>,
154 #[serde(skip_serializing_if = "Option::is_none")]
155 pub encryption_algorithm: Option<EncryptionAlgorithmSpec>,
156 #[serde(default, skip_serializing_if = "HashMap::is_empty")]
157 pub encryption_context: HashMap<String, String>,
158 #[serde(default, skip_serializing_if = "Vec::is_empty")]
159 pub grant_tokens: Vec<String>,
160 pub key_id: String,
161 #[serde(with = "crate::blob")]
162 pub plaintext: bytes::Bytes,
163}
164
165#[derive(Debug, Clone, Default, Serialize, Deserialize)]
167#[serde(rename_all = "PascalCase")]
168pub struct GenerateDataKeyInput {
169 #[serde(skip_serializing_if = "Option::is_none")]
170 pub dry_run: Option<bool>,
171 #[serde(default, skip_serializing_if = "HashMap::is_empty")]
172 pub encryption_context: HashMap<String, String>,
173 #[serde(default, skip_serializing_if = "Vec::is_empty")]
174 pub grant_tokens: Vec<String>,
175 pub key_id: String,
176 #[serde(skip_serializing_if = "Option::is_none")]
177 pub key_spec: Option<DataKeySpec>,
178 #[serde(skip_serializing_if = "Option::is_none")]
179 pub number_of_bytes: Option<i32>,
180 #[serde(skip_serializing_if = "Option::is_none")]
181 pub recipient: Option<RecipientInfo>,
182}
183
184#[derive(Debug, Clone, Default, Serialize, Deserialize)]
186#[serde(rename_all = "PascalCase")]
187pub struct GenerateDataKeyPairInput {
188 #[serde(skip_serializing_if = "Option::is_none")]
189 pub dry_run: Option<bool>,
190 #[serde(default, skip_serializing_if = "HashMap::is_empty")]
191 pub encryption_context: HashMap<String, String>,
192 #[serde(default, skip_serializing_if = "Vec::is_empty")]
193 pub grant_tokens: Vec<String>,
194 pub key_id: String,
195 pub key_pair_spec: DataKeyPairSpec,
196 #[serde(skip_serializing_if = "Option::is_none")]
197 pub recipient: Option<RecipientInfo>,
198}
199
200#[derive(Debug, Clone, Default, Serialize, Deserialize)]
202#[serde(rename_all = "PascalCase")]
203pub struct GenerateDataKeyPairWithoutPlaintextInput {
204 #[serde(skip_serializing_if = "Option::is_none")]
205 pub dry_run: Option<bool>,
206 #[serde(default, skip_serializing_if = "HashMap::is_empty")]
207 pub encryption_context: HashMap<String, String>,
208 #[serde(default, skip_serializing_if = "Vec::is_empty")]
209 pub grant_tokens: Vec<String>,
210 pub key_id: String,
211 pub key_pair_spec: DataKeyPairSpec,
212}
213
214#[derive(Debug, Clone, Default, Serialize, Deserialize)]
216#[serde(rename_all = "PascalCase")]
217pub struct GenerateDataKeyWithoutPlaintextInput {
218 #[serde(skip_serializing_if = "Option::is_none")]
219 pub dry_run: Option<bool>,
220 #[serde(default, skip_serializing_if = "HashMap::is_empty")]
221 pub encryption_context: HashMap<String, String>,
222 #[serde(default, skip_serializing_if = "Vec::is_empty")]
223 pub grant_tokens: Vec<String>,
224 pub key_id: String,
225 #[serde(skip_serializing_if = "Option::is_none")]
226 pub key_spec: Option<DataKeySpec>,
227 #[serde(skip_serializing_if = "Option::is_none")]
228 pub number_of_bytes: Option<i32>,
229}
230
231#[derive(Debug, Clone, Default, Serialize, Deserialize)]
233#[serde(rename_all = "PascalCase")]
234pub struct GenerateMacInput {
235 #[serde(skip_serializing_if = "Option::is_none")]
236 pub dry_run: Option<bool>,
237 #[serde(default, skip_serializing_if = "Vec::is_empty")]
238 pub grant_tokens: Vec<String>,
239 pub key_id: String,
240 pub mac_algorithm: MacAlgorithmSpec,
241 #[serde(with = "crate::blob")]
242 pub message: bytes::Bytes,
243}
244
245#[derive(Debug, Clone, Default, Serialize, Deserialize)]
247#[serde(rename_all = "PascalCase")]
248pub struct GenerateRandomInput {
249 #[serde(skip_serializing_if = "Option::is_none")]
250 pub custom_key_store_id: Option<String>,
251 #[serde(skip_serializing_if = "Option::is_none")]
252 pub number_of_bytes: Option<i32>,
253 #[serde(skip_serializing_if = "Option::is_none")]
254 pub recipient: Option<RecipientInfo>,
255}
256
257#[derive(Debug, Clone, Default, Serialize, Deserialize)]
259#[serde(rename_all = "PascalCase")]
260pub struct GetKeyPolicyInput {
261 pub key_id: String,
262 #[serde(skip_serializing_if = "Option::is_none")]
263 pub policy_name: Option<String>,
264}
265
266#[derive(Debug, Clone, Default, Serialize, Deserialize)]
268#[serde(rename_all = "PascalCase")]
269pub struct GetKeyRotationStatusInput {
270 pub key_id: String,
271}
272
273#[derive(Debug, Clone, Default, Serialize, Deserialize)]
275#[serde(rename_all = "PascalCase")]
276pub struct GetPublicKeyInput {
277 #[serde(default, skip_serializing_if = "Vec::is_empty")]
278 pub grant_tokens: Vec<String>,
279 pub key_id: String,
280}
281
282#[derive(Debug, Clone, Default, Serialize, Deserialize)]
284#[serde(rename_all = "PascalCase")]
285pub struct ListAliasesInput {
286 #[serde(skip_serializing_if = "Option::is_none")]
287 pub key_id: Option<String>,
288 #[serde(skip_serializing_if = "Option::is_none")]
289 pub limit: Option<i32>,
290 #[serde(skip_serializing_if = "Option::is_none")]
291 pub marker: Option<String>,
292}
293
294#[derive(Debug, Clone, Default, Serialize, Deserialize)]
296#[serde(rename_all = "PascalCase")]
297pub struct ListGrantsInput {
298 #[serde(skip_serializing_if = "Option::is_none")]
299 pub grant_id: Option<String>,
300 #[serde(skip_serializing_if = "Option::is_none")]
301 pub grantee_principal: Option<String>,
302 pub key_id: String,
303 #[serde(skip_serializing_if = "Option::is_none")]
304 pub limit: Option<i32>,
305 #[serde(skip_serializing_if = "Option::is_none")]
306 pub marker: Option<String>,
307}
308
309#[derive(Debug, Clone, Default, Serialize, Deserialize)]
311#[serde(rename_all = "PascalCase")]
312pub struct ListKeyPoliciesInput {
313 pub key_id: String,
314 #[serde(skip_serializing_if = "Option::is_none")]
315 pub limit: Option<i32>,
316 #[serde(skip_serializing_if = "Option::is_none")]
317 pub marker: Option<String>,
318}
319
320#[derive(Debug, Clone, Default, Serialize, Deserialize)]
322#[serde(rename_all = "PascalCase")]
323pub struct ListKeysInput {
324 #[serde(skip_serializing_if = "Option::is_none")]
325 pub limit: Option<i32>,
326 #[serde(skip_serializing_if = "Option::is_none")]
327 pub marker: Option<String>,
328}
329
330#[derive(Debug, Clone, Default, Serialize, Deserialize)]
332#[serde(rename_all = "PascalCase")]
333pub struct ListResourceTagsInput {
334 pub key_id: String,
335 #[serde(skip_serializing_if = "Option::is_none")]
336 pub limit: Option<i32>,
337 #[serde(skip_serializing_if = "Option::is_none")]
338 pub marker: Option<String>,
339}
340
341#[derive(Debug, Clone, Default, Serialize, Deserialize)]
343#[serde(rename_all = "PascalCase")]
344pub struct ListRetirableGrantsInput {
345 #[serde(skip_serializing_if = "Option::is_none")]
346 pub limit: Option<i32>,
347 #[serde(skip_serializing_if = "Option::is_none")]
348 pub marker: Option<String>,
349 pub retiring_principal: String,
350}
351
352#[derive(Debug, Clone, Default, Serialize, Deserialize)]
354#[serde(rename_all = "PascalCase")]
355pub struct PutKeyPolicyInput {
356 #[serde(skip_serializing_if = "Option::is_none")]
357 pub bypass_policy_lockout_safety_check: Option<bool>,
358 pub key_id: String,
359 pub policy: String,
360 #[serde(skip_serializing_if = "Option::is_none")]
361 pub policy_name: Option<String>,
362}
363
364#[derive(Debug, Clone, Default, Serialize, Deserialize)]
366#[serde(rename_all = "PascalCase")]
367pub struct ReEncryptInput {
368 #[serde(
369 skip_serializing_if = "Option::is_none",
370 serialize_with = "crate::blob::option::serialize",
371 deserialize_with = "crate::blob::option::deserialize"
372 )]
373 pub ciphertext_blob: Option<bytes::Bytes>,
374 #[serde(skip_serializing_if = "Option::is_none")]
375 pub destination_encryption_algorithm: Option<EncryptionAlgorithmSpec>,
376 #[serde(default, skip_serializing_if = "HashMap::is_empty")]
377 pub destination_encryption_context: HashMap<String, String>,
378 pub destination_key_id: String,
379 #[serde(skip_serializing_if = "Option::is_none")]
380 pub dry_run: Option<bool>,
381 #[serde(default, skip_serializing_if = "Vec::is_empty")]
382 pub dry_run_modifiers: Vec<DryRunModifierType>,
383 #[serde(default, skip_serializing_if = "Vec::is_empty")]
384 pub grant_tokens: Vec<String>,
385 #[serde(skip_serializing_if = "Option::is_none")]
386 pub source_encryption_algorithm: Option<EncryptionAlgorithmSpec>,
387 #[serde(default, skip_serializing_if = "HashMap::is_empty")]
388 pub source_encryption_context: HashMap<String, String>,
389 #[serde(skip_serializing_if = "Option::is_none")]
390 pub source_key_id: Option<String>,
391}
392
393#[derive(Debug, Clone, Default, Serialize, Deserialize)]
395#[serde(rename_all = "PascalCase")]
396pub struct RetireGrantInput {
397 #[serde(skip_serializing_if = "Option::is_none")]
398 pub dry_run: Option<bool>,
399 #[serde(skip_serializing_if = "Option::is_none")]
400 pub grant_id: Option<String>,
401 #[serde(skip_serializing_if = "Option::is_none")]
402 pub grant_token: Option<String>,
403 #[serde(skip_serializing_if = "Option::is_none")]
404 pub key_id: Option<String>,
405}
406
407#[derive(Debug, Clone, Default, Serialize, Deserialize)]
409#[serde(rename_all = "PascalCase")]
410pub struct RevokeGrantInput {
411 #[serde(skip_serializing_if = "Option::is_none")]
412 pub dry_run: Option<bool>,
413 pub grant_id: String,
414 pub key_id: String,
415}
416
417#[derive(Debug, Clone, Default, Serialize, Deserialize)]
419#[serde(rename_all = "PascalCase")]
420pub struct ScheduleKeyDeletionInput {
421 pub key_id: String,
422 #[serde(skip_serializing_if = "Option::is_none")]
423 pub pending_window_in_days: Option<i32>,
424}
425
426#[derive(Debug, Clone, Default, Serialize, Deserialize)]
428#[serde(rename_all = "PascalCase")]
429pub struct SignInput {
430 #[serde(skip_serializing_if = "Option::is_none")]
431 pub dry_run: Option<bool>,
432 #[serde(default, skip_serializing_if = "Vec::is_empty")]
433 pub grant_tokens: Vec<String>,
434 pub key_id: String,
435 #[serde(with = "crate::blob")]
436 pub message: bytes::Bytes,
437 #[serde(skip_serializing_if = "Option::is_none")]
438 pub message_type: Option<MessageType>,
439 pub signing_algorithm: SigningAlgorithmSpec,
440}
441
442#[derive(Debug, Clone, Default, Serialize, Deserialize)]
444#[serde(rename_all = "PascalCase")]
445pub struct TagResourceInput {
446 pub key_id: String,
447 #[serde(default, skip_serializing_if = "Vec::is_empty")]
448 pub tags: Vec<Tag>,
449}
450
451#[derive(Debug, Clone, Default, Serialize, Deserialize)]
453#[serde(rename_all = "PascalCase")]
454pub struct UntagResourceInput {
455 pub key_id: String,
456 #[serde(default, skip_serializing_if = "Vec::is_empty")]
457 pub tag_keys: Vec<String>,
458}
459
460#[derive(Debug, Clone, Default, Serialize, Deserialize)]
462#[serde(rename_all = "PascalCase")]
463pub struct UpdateAliasInput {
464 pub alias_name: String,
465 pub target_key_id: String,
466}
467
468#[derive(Debug, Clone, Default, Serialize, Deserialize)]
470#[serde(rename_all = "PascalCase")]
471pub struct UpdateKeyDescriptionInput {
472 pub description: String,
473 pub key_id: String,
474}
475
476#[derive(Debug, Clone, Default, Serialize, Deserialize)]
478#[serde(rename_all = "PascalCase")]
479pub struct VerifyInput {
480 #[serde(skip_serializing_if = "Option::is_none")]
481 pub dry_run: Option<bool>,
482 #[serde(default, skip_serializing_if = "Vec::is_empty")]
483 pub grant_tokens: Vec<String>,
484 pub key_id: String,
485 #[serde(with = "crate::blob")]
486 pub message: bytes::Bytes,
487 #[serde(skip_serializing_if = "Option::is_none")]
488 pub message_type: Option<MessageType>,
489 #[serde(with = "crate::blob")]
490 pub signature: bytes::Bytes,
491 pub signing_algorithm: SigningAlgorithmSpec,
492}
493
494#[derive(Debug, Clone, Default, Serialize, Deserialize)]
496#[serde(rename_all = "PascalCase")]
497pub struct VerifyMacInput {
498 #[serde(skip_serializing_if = "Option::is_none")]
499 pub dry_run: Option<bool>,
500 #[serde(default, skip_serializing_if = "Vec::is_empty")]
501 pub grant_tokens: Vec<String>,
502 pub key_id: String,
503 #[serde(with = "crate::blob")]
504 pub mac: bytes::Bytes,
505 pub mac_algorithm: MacAlgorithmSpec,
506 #[serde(with = "crate::blob")]
507 pub message: bytes::Bytes,
508}