winterbaume_secretsmanager/
types.rs1use 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}