1use serde::{Deserialize, Serialize};
4
5use crate::types::{
6 AliasListEntry, CustomerMasterKeySpec, DataKeyPairSpec, EncryptionAlgorithmSpec,
7 GrantListEntry, KeyAgreementAlgorithmSpec, KeyListEntry, KeyMetadata, KeySpec, KeyState,
8 KeyUsageType, MacAlgorithmSpec, SigningAlgorithmSpec, Tag,
9};
10
11#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13#[serde(rename_all = "PascalCase")]
14pub struct CancelKeyDeletionResponse {
15 #[serde(skip_serializing_if = "Option::is_none")]
16 pub key_id: Option<String>,
17}
18
19#[derive(Debug, Clone, Default, Serialize, Deserialize)]
21#[serde(rename_all = "PascalCase")]
22pub struct CreateGrantResponse {
23 #[serde(skip_serializing_if = "Option::is_none")]
24 pub grant_id: Option<String>,
25 #[serde(skip_serializing_if = "Option::is_none")]
26 pub grant_token: Option<String>,
27}
28
29#[derive(Debug, Clone, Default, Serialize, Deserialize)]
31#[serde(rename_all = "PascalCase")]
32pub struct CreateKeyResponse {
33 #[serde(skip_serializing_if = "Option::is_none")]
34 pub key_metadata: Option<KeyMetadata>,
35}
36
37#[derive(Debug, Clone, Default, Serialize, Deserialize)]
39#[serde(rename_all = "PascalCase")]
40pub struct DecryptResponse {
41 #[serde(
42 skip_serializing_if = "Option::is_none",
43 serialize_with = "crate::blob::option::serialize",
44 deserialize_with = "crate::blob::option::deserialize"
45 )]
46 pub ciphertext_for_recipient: Option<bytes::Bytes>,
47 #[serde(skip_serializing_if = "Option::is_none")]
48 pub encryption_algorithm: Option<EncryptionAlgorithmSpec>,
49 #[serde(skip_serializing_if = "Option::is_none")]
50 pub key_id: Option<String>,
51 #[serde(skip_serializing_if = "Option::is_none")]
52 pub key_material_id: Option<String>,
53 #[serde(
54 skip_serializing_if = "Option::is_none",
55 serialize_with = "crate::blob::option::serialize",
56 deserialize_with = "crate::blob::option::deserialize"
57 )]
58 pub plaintext: Option<bytes::Bytes>,
59}
60
61#[derive(Debug, Clone, Default, Serialize, Deserialize)]
63#[serde(rename_all = "PascalCase")]
64pub struct DescribeKeyResponse {
65 #[serde(skip_serializing_if = "Option::is_none")]
66 pub key_metadata: Option<KeyMetadata>,
67}
68
69#[derive(Debug, Clone, Default, Serialize, Deserialize)]
71#[serde(rename_all = "PascalCase")]
72pub struct EncryptResponse {
73 #[serde(
74 skip_serializing_if = "Option::is_none",
75 serialize_with = "crate::blob::option::serialize",
76 deserialize_with = "crate::blob::option::deserialize"
77 )]
78 pub ciphertext_blob: Option<bytes::Bytes>,
79 #[serde(skip_serializing_if = "Option::is_none")]
80 pub encryption_algorithm: Option<EncryptionAlgorithmSpec>,
81 #[serde(skip_serializing_if = "Option::is_none")]
82 pub key_id: Option<String>,
83}
84
85#[derive(Debug, Clone, Default, Serialize, Deserialize)]
87#[serde(rename_all = "PascalCase")]
88pub struct GenerateDataKeyPairResponse {
89 #[serde(
90 skip_serializing_if = "Option::is_none",
91 serialize_with = "crate::blob::option::serialize",
92 deserialize_with = "crate::blob::option::deserialize"
93 )]
94 pub ciphertext_for_recipient: Option<bytes::Bytes>,
95 #[serde(skip_serializing_if = "Option::is_none")]
96 pub key_id: Option<String>,
97 #[serde(skip_serializing_if = "Option::is_none")]
98 pub key_material_id: Option<String>,
99 #[serde(skip_serializing_if = "Option::is_none")]
100 pub key_pair_spec: Option<DataKeyPairSpec>,
101 #[serde(
102 skip_serializing_if = "Option::is_none",
103 serialize_with = "crate::blob::option::serialize",
104 deserialize_with = "crate::blob::option::deserialize"
105 )]
106 pub private_key_ciphertext_blob: Option<bytes::Bytes>,
107 #[serde(
108 skip_serializing_if = "Option::is_none",
109 serialize_with = "crate::blob::option::serialize",
110 deserialize_with = "crate::blob::option::deserialize"
111 )]
112 pub private_key_plaintext: Option<bytes::Bytes>,
113 #[serde(
114 skip_serializing_if = "Option::is_none",
115 serialize_with = "crate::blob::option::serialize",
116 deserialize_with = "crate::blob::option::deserialize"
117 )]
118 pub public_key: Option<bytes::Bytes>,
119}
120
121#[derive(Debug, Clone, Default, Serialize, Deserialize)]
123#[serde(rename_all = "PascalCase")]
124pub struct GenerateDataKeyPairWithoutPlaintextResponse {
125 #[serde(skip_serializing_if = "Option::is_none")]
126 pub key_id: Option<String>,
127 #[serde(skip_serializing_if = "Option::is_none")]
128 pub key_material_id: Option<String>,
129 #[serde(skip_serializing_if = "Option::is_none")]
130 pub key_pair_spec: Option<DataKeyPairSpec>,
131 #[serde(
132 skip_serializing_if = "Option::is_none",
133 serialize_with = "crate::blob::option::serialize",
134 deserialize_with = "crate::blob::option::deserialize"
135 )]
136 pub private_key_ciphertext_blob: Option<bytes::Bytes>,
137 #[serde(
138 skip_serializing_if = "Option::is_none",
139 serialize_with = "crate::blob::option::serialize",
140 deserialize_with = "crate::blob::option::deserialize"
141 )]
142 pub public_key: Option<bytes::Bytes>,
143}
144
145#[derive(Debug, Clone, Default, Serialize, Deserialize)]
147#[serde(rename_all = "PascalCase")]
148pub struct GenerateDataKeyResponse {
149 #[serde(
150 skip_serializing_if = "Option::is_none",
151 serialize_with = "crate::blob::option::serialize",
152 deserialize_with = "crate::blob::option::deserialize"
153 )]
154 pub ciphertext_blob: Option<bytes::Bytes>,
155 #[serde(
156 skip_serializing_if = "Option::is_none",
157 serialize_with = "crate::blob::option::serialize",
158 deserialize_with = "crate::blob::option::deserialize"
159 )]
160 pub ciphertext_for_recipient: Option<bytes::Bytes>,
161 #[serde(skip_serializing_if = "Option::is_none")]
162 pub key_id: Option<String>,
163 #[serde(skip_serializing_if = "Option::is_none")]
164 pub key_material_id: Option<String>,
165 #[serde(
166 skip_serializing_if = "Option::is_none",
167 serialize_with = "crate::blob::option::serialize",
168 deserialize_with = "crate::blob::option::deserialize"
169 )]
170 pub plaintext: Option<bytes::Bytes>,
171}
172
173#[derive(Debug, Clone, Default, Serialize, Deserialize)]
175#[serde(rename_all = "PascalCase")]
176pub struct GenerateDataKeyWithoutPlaintextResponse {
177 #[serde(
178 skip_serializing_if = "Option::is_none",
179 serialize_with = "crate::blob::option::serialize",
180 deserialize_with = "crate::blob::option::deserialize"
181 )]
182 pub ciphertext_blob: Option<bytes::Bytes>,
183 #[serde(skip_serializing_if = "Option::is_none")]
184 pub key_id: Option<String>,
185 #[serde(skip_serializing_if = "Option::is_none")]
186 pub key_material_id: Option<String>,
187}
188
189#[derive(Debug, Clone, Default, Serialize, Deserialize)]
191#[serde(rename_all = "PascalCase")]
192pub struct GenerateMacResponse {
193 #[serde(skip_serializing_if = "Option::is_none")]
194 pub key_id: Option<String>,
195 #[serde(
196 skip_serializing_if = "Option::is_none",
197 serialize_with = "crate::blob::option::serialize",
198 deserialize_with = "crate::blob::option::deserialize"
199 )]
200 pub mac: Option<bytes::Bytes>,
201 #[serde(skip_serializing_if = "Option::is_none")]
202 pub mac_algorithm: Option<MacAlgorithmSpec>,
203}
204
205#[derive(Debug, Clone, Default, Serialize, Deserialize)]
207#[serde(rename_all = "PascalCase")]
208pub struct GenerateRandomResponse {
209 #[serde(
210 skip_serializing_if = "Option::is_none",
211 serialize_with = "crate::blob::option::serialize",
212 deserialize_with = "crate::blob::option::deserialize"
213 )]
214 pub ciphertext_for_recipient: Option<bytes::Bytes>,
215 #[serde(
216 skip_serializing_if = "Option::is_none",
217 serialize_with = "crate::blob::option::serialize",
218 deserialize_with = "crate::blob::option::deserialize"
219 )]
220 pub plaintext: Option<bytes::Bytes>,
221}
222
223#[derive(Debug, Clone, Default, Serialize, Deserialize)]
225#[serde(rename_all = "PascalCase")]
226pub struct GetKeyPolicyResponse {
227 #[serde(skip_serializing_if = "Option::is_none")]
228 pub policy: Option<String>,
229 #[serde(skip_serializing_if = "Option::is_none")]
230 pub policy_name: Option<String>,
231}
232
233#[derive(Debug, Clone, Default, Serialize, Deserialize)]
235#[serde(rename_all = "PascalCase")]
236pub struct GetKeyRotationStatusResponse {
237 #[serde(skip_serializing_if = "Option::is_none")]
238 pub key_id: Option<String>,
239 #[serde(skip_serializing_if = "Option::is_none")]
240 pub key_rotation_enabled: Option<bool>,
241 #[serde(
242 skip_serializing_if = "Option::is_none",
243 serialize_with = "crate::epoch_seconds::option::serialize",
244 deserialize_with = "crate::epoch_seconds::option::deserialize"
245 )]
246 pub next_rotation_date: Option<chrono::DateTime<chrono::Utc>>,
247 #[serde(
248 skip_serializing_if = "Option::is_none",
249 serialize_with = "crate::epoch_seconds::option::serialize",
250 deserialize_with = "crate::epoch_seconds::option::deserialize"
251 )]
252 pub on_demand_rotation_start_date: Option<chrono::DateTime<chrono::Utc>>,
253 #[serde(skip_serializing_if = "Option::is_none")]
254 pub rotation_period_in_days: Option<i32>,
255}
256
257#[derive(Debug, Clone, Default, Serialize, Deserialize)]
259#[serde(rename_all = "PascalCase")]
260pub struct GetPublicKeyResponse {
261 #[serde(skip_serializing_if = "Option::is_none")]
262 pub customer_master_key_spec: Option<CustomerMasterKeySpec>,
263 #[serde(default, skip_serializing_if = "Vec::is_empty")]
264 pub encryption_algorithms: Vec<EncryptionAlgorithmSpec>,
265 #[serde(default, skip_serializing_if = "Vec::is_empty")]
266 pub key_agreement_algorithms: Vec<KeyAgreementAlgorithmSpec>,
267 #[serde(skip_serializing_if = "Option::is_none")]
268 pub key_id: Option<String>,
269 #[serde(skip_serializing_if = "Option::is_none")]
270 pub key_spec: Option<KeySpec>,
271 #[serde(skip_serializing_if = "Option::is_none")]
272 pub key_usage: Option<KeyUsageType>,
273 #[serde(
274 skip_serializing_if = "Option::is_none",
275 serialize_with = "crate::blob::option::serialize",
276 deserialize_with = "crate::blob::option::deserialize"
277 )]
278 pub public_key: Option<bytes::Bytes>,
279 #[serde(default, skip_serializing_if = "Vec::is_empty")]
280 pub signing_algorithms: Vec<SigningAlgorithmSpec>,
281}
282
283#[derive(Debug, Clone, Default, Serialize, Deserialize)]
285#[serde(rename_all = "PascalCase")]
286pub struct ListAliasesResponse {
287 #[serde(default, skip_serializing_if = "Vec::is_empty")]
288 pub aliases: Vec<AliasListEntry>,
289 #[serde(skip_serializing_if = "Option::is_none")]
290 pub next_marker: Option<String>,
291 #[serde(skip_serializing_if = "Option::is_none")]
292 pub truncated: Option<bool>,
293}
294
295#[derive(Debug, Clone, Default, Serialize, Deserialize)]
297#[serde(rename_all = "PascalCase")]
298pub struct ListGrantsResponse {
299 #[serde(default, skip_serializing_if = "Vec::is_empty")]
300 pub grants: Vec<GrantListEntry>,
301 #[serde(skip_serializing_if = "Option::is_none")]
302 pub next_marker: Option<String>,
303 #[serde(skip_serializing_if = "Option::is_none")]
304 pub truncated: Option<bool>,
305}
306
307#[derive(Debug, Clone, Default, Serialize, Deserialize)]
309#[serde(rename_all = "PascalCase")]
310pub struct ListKeyPoliciesResponse {
311 #[serde(skip_serializing_if = "Option::is_none")]
312 pub next_marker: Option<String>,
313 #[serde(default, skip_serializing_if = "Vec::is_empty")]
314 pub policy_names: Vec<String>,
315 #[serde(skip_serializing_if = "Option::is_none")]
316 pub truncated: Option<bool>,
317}
318
319#[derive(Debug, Clone, Default, Serialize, Deserialize)]
321#[serde(rename_all = "PascalCase")]
322pub struct ListKeysResponse {
323 #[serde(default, skip_serializing_if = "Vec::is_empty")]
324 pub keys: Vec<KeyListEntry>,
325 #[serde(skip_serializing_if = "Option::is_none")]
326 pub next_marker: Option<String>,
327 #[serde(skip_serializing_if = "Option::is_none")]
328 pub truncated: Option<bool>,
329}
330
331#[derive(Debug, Clone, Default, Serialize, Deserialize)]
333#[serde(rename_all = "PascalCase")]
334pub struct ListResourceTagsResponse {
335 #[serde(skip_serializing_if = "Option::is_none")]
336 pub next_marker: Option<String>,
337 #[serde(default, skip_serializing_if = "Vec::is_empty")]
338 pub tags: Vec<Tag>,
339 #[serde(skip_serializing_if = "Option::is_none")]
340 pub truncated: Option<bool>,
341}
342
343#[derive(Debug, Clone, Default, Serialize, Deserialize)]
345#[serde(rename_all = "PascalCase")]
346pub struct ReEncryptResponse {
347 #[serde(
348 skip_serializing_if = "Option::is_none",
349 serialize_with = "crate::blob::option::serialize",
350 deserialize_with = "crate::blob::option::deserialize"
351 )]
352 pub ciphertext_blob: Option<bytes::Bytes>,
353 #[serde(skip_serializing_if = "Option::is_none")]
354 pub destination_encryption_algorithm: Option<EncryptionAlgorithmSpec>,
355 #[serde(skip_serializing_if = "Option::is_none")]
356 pub destination_key_material_id: Option<String>,
357 #[serde(skip_serializing_if = "Option::is_none")]
358 pub key_id: Option<String>,
359 #[serde(skip_serializing_if = "Option::is_none")]
360 pub source_encryption_algorithm: Option<EncryptionAlgorithmSpec>,
361 #[serde(skip_serializing_if = "Option::is_none")]
362 pub source_key_id: Option<String>,
363 #[serde(skip_serializing_if = "Option::is_none")]
364 pub source_key_material_id: Option<String>,
365}
366
367#[derive(Debug, Clone, Default, Serialize, Deserialize)]
369#[serde(rename_all = "PascalCase")]
370pub struct ScheduleKeyDeletionResponse {
371 #[serde(
372 skip_serializing_if = "Option::is_none",
373 serialize_with = "crate::epoch_seconds::option::serialize",
374 deserialize_with = "crate::epoch_seconds::option::deserialize"
375 )]
376 pub deletion_date: Option<chrono::DateTime<chrono::Utc>>,
377 #[serde(skip_serializing_if = "Option::is_none")]
378 pub key_id: Option<String>,
379 #[serde(skip_serializing_if = "Option::is_none")]
380 pub key_state: Option<KeyState>,
381 #[serde(skip_serializing_if = "Option::is_none")]
382 pub pending_window_in_days: Option<i32>,
383}
384
385#[derive(Debug, Clone, Default, Serialize, Deserialize)]
387#[serde(rename_all = "PascalCase")]
388pub struct SignResponse {
389 #[serde(skip_serializing_if = "Option::is_none")]
390 pub key_id: Option<String>,
391 #[serde(
392 skip_serializing_if = "Option::is_none",
393 serialize_with = "crate::blob::option::serialize",
394 deserialize_with = "crate::blob::option::deserialize"
395 )]
396 pub signature: Option<bytes::Bytes>,
397 #[serde(skip_serializing_if = "Option::is_none")]
398 pub signing_algorithm: Option<SigningAlgorithmSpec>,
399}
400
401#[derive(Debug, Clone, Default, Serialize, Deserialize)]
403#[serde(rename_all = "PascalCase")]
404pub struct VerifyMacResponse {
405 #[serde(skip_serializing_if = "Option::is_none")]
406 pub key_id: Option<String>,
407 #[serde(skip_serializing_if = "Option::is_none")]
408 pub mac_algorithm: Option<MacAlgorithmSpec>,
409 #[serde(skip_serializing_if = "Option::is_none")]
410 pub mac_valid: Option<bool>,
411}
412
413#[derive(Debug, Clone, Default, Serialize, Deserialize)]
415#[serde(rename_all = "PascalCase")]
416pub struct VerifyResponse {
417 #[serde(skip_serializing_if = "Option::is_none")]
418 pub key_id: Option<String>,
419 #[serde(skip_serializing_if = "Option::is_none")]
420 pub signature_valid: Option<bool>,
421 #[serde(skip_serializing_if = "Option::is_none")]
422 pub signing_algorithm: Option<SigningAlgorithmSpec>,
423}