Skip to main content

rusty_cdk_core/secretsmanager/
dto.rs

1use serde::{Deserialize, Serialize};
2use serde_json::Value;
3use crate::{dto_methods, ref_struct};
4use crate::shared::Id;
5
6#[derive(Debug, Serialize, Deserialize)]
7pub(crate) enum SecretType {
8    #[serde(rename = "AWS::SecretsManager::Secret")]
9    SecretType
10}
11
12ref_struct!(SecretRef);
13
14#[derive(Debug, Serialize, Deserialize)]
15pub struct Secret {
16    #[serde(skip)]
17    pub(super) id: Id,
18    #[serde(skip)]
19    pub(super) resource_id: String,
20    #[serde(rename = "Type")]
21    pub(super) r#type: SecretType,
22    #[serde(rename = "Properties")]
23    pub(super) properties: SecretProperties,
24}
25dto_methods!(Secret);
26
27#[derive(Debug, Serialize, Deserialize)]
28pub struct SecretProperties {
29    #[serde(rename = "Name", skip_serializing_if = "Option::is_none")]
30    pub(super) name: Option<String>,
31    #[serde(rename = "Description", skip_serializing_if = "Option::is_none")]
32    pub(super) description: Option<String>,
33    #[serde(rename = "GenerateSecretString", skip_serializing_if = "Option::is_none")]
34    pub(super) generate_secret_string: Option<GenerateSecretString>,
35    #[serde(rename = "SecretString", skip_serializing_if = "Option::is_none")]
36    pub(super) secret_string: Option<String>,
37    // #[serde(rename = "KmsKeyId", skip_serializing_if = "Option::is_none")]
38    // pub(super) kms_key_id: Option<String>,
39    // #[serde(rename = "ReplicaRegions", skip_serializing_if = "Option::is_none")]
40    // pub(super) replica_regions: Option<Vec<ReplicaRegion>>,
41}
42
43#[derive(Debug, Serialize, Deserialize)]
44pub struct GenerateSecretString {
45    #[serde(rename = "ExcludeCharacters", skip_serializing_if = "Option::is_none")]
46    pub(super) exclude_characters: Option<String>,
47    #[serde(rename = "ExcludeLowercase", skip_serializing_if = "Option::is_none")]
48    pub(super) exclude_lowercase: Option<bool>,
49    #[serde(rename = "ExcludeNumbers", skip_serializing_if = "Option::is_none")]
50    pub(super) exclude_numbers: Option<bool>,
51    #[serde(rename = "ExcludePunctuation", skip_serializing_if = "Option::is_none")]
52    pub(super) exclude_punctuation: Option<bool>,
53    #[serde(rename = "ExcludeUppercase", skip_serializing_if = "Option::is_none")]
54    pub(super) exclude_uppercase: Option<bool>,
55    #[serde(rename = "GenerateStringKey", skip_serializing_if = "Option::is_none")]
56    pub(super) generate_string_key: Option<String>,
57    #[serde(rename = "IncludeSpace", skip_serializing_if = "Option::is_none")]
58    pub(super) include_space: Option<bool>,
59    #[serde(rename = "PasswordLength", skip_serializing_if = "Option::is_none")]
60    pub(super) password_length: Option<u32>,
61    #[serde(rename = "RequireEachIncludedType", skip_serializing_if = "Option::is_none")]
62    pub(super) require_each_included_type: Option<bool>,
63    #[serde(rename = "SecretStringTemplate", skip_serializing_if = "Option::is_none")]
64    pub(super) secret_string_template: Option<String>,
65}
66
67#[derive(Debug, Serialize, Deserialize)]
68pub struct ReplicaRegion {
69    #[serde(rename = "Region")]
70    pub(super) region: String,
71    #[serde(rename = "KmsKeyId", skip_serializing_if = "Option::is_none")]
72    pub(super) kms_key_id: Option<String>,
73}