winterbaume-secretsmanager 0.2.0

Secrets Manager service implementation for winterbaume
Documentation
use std::collections::HashMap;

use chrono::{DateTime, Utc};

#[derive(Debug, Clone)]
pub struct Secret {
    pub name: String,
    pub arn: String,
    pub description: String,
    pub created_date: DateTime<Utc>,
    pub last_changed_date: DateTime<Utc>,
    pub versions: HashMap<String, SecretVersion>,
    pub current_version_id: Option<String>,
    pub deleted_date: Option<DateTime<Utc>>,
    pub tags: HashMap<String, String>,
    pub resource_policy: Option<String>,
    pub rotation_enabled: Option<bool>,
    pub rotation_lambda_arn: Option<String>,
    pub rotation_rules: Option<RotationRules>,
    pub last_rotated_date: Option<DateTime<Utc>>,
    pub replication_status: Vec<ReplicationStatus>,
    pub primary_region: Option<String>,
}

#[derive(Debug, Clone)]
pub struct SecretVersion {
    pub version_id: String,
    pub secret_string: Option<String>,
    pub secret_binary: Option<Vec<u8>>,
    pub created_date: DateTime<Utc>,
    pub version_stages: Vec<String>,
}

#[derive(Debug, Clone)]
pub struct RotationRules {
    pub automatically_after_days: Option<i64>,
    pub duration: Option<String>,
    pub schedule_expression: Option<String>,
}

#[derive(Debug, Clone)]
pub struct ReplicationStatus {
    pub region: String,
    pub status: String,
    pub status_message: Option<String>,
    pub kms_key_id: Option<String>,
    pub last_accessed_date: Option<DateTime<Utc>>,
}