Skip to main content

winterbaume_secretsmanager/
types.rs

1use std::collections::HashMap;
2
3use chrono::{DateTime, Utc};
4
5#[derive(Debug, Clone)]
6pub struct Secret {
7    pub name: String,
8    pub arn: String,
9    pub description: String,
10    pub created_date: DateTime<Utc>,
11    pub last_changed_date: DateTime<Utc>,
12    pub versions: HashMap<String, SecretVersion>,
13    pub current_version_id: Option<String>,
14    pub deleted_date: Option<DateTime<Utc>>,
15    pub tags: HashMap<String, String>,
16    pub resource_policy: Option<String>,
17    pub rotation_enabled: Option<bool>,
18    pub rotation_lambda_arn: Option<String>,
19    pub rotation_rules: Option<RotationRules>,
20    pub last_rotated_date: Option<DateTime<Utc>>,
21    pub replication_status: Vec<ReplicationStatus>,
22    pub primary_region: Option<String>,
23}
24
25#[derive(Debug, Clone)]
26pub struct SecretVersion {
27    pub version_id: String,
28    pub secret_string: Option<String>,
29    pub secret_binary: Option<Vec<u8>>,
30    pub created_date: DateTime<Utc>,
31    pub version_stages: Vec<String>,
32}
33
34#[derive(Debug, Clone)]
35pub struct RotationRules {
36    pub automatically_after_days: Option<i64>,
37    pub duration: Option<String>,
38    pub schedule_expression: Option<String>,
39}
40
41#[derive(Debug, Clone)]
42pub struct ReplicationStatus {
43    pub region: String,
44    pub status: String,
45    pub status_message: Option<String>,
46    pub kms_key_id: Option<String>,
47    pub last_accessed_date: Option<DateTime<Utc>>,
48}