use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; use uuid::Uuid; #[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)] #[serde(rename_all = "snake_case")] pub enum VaultObjectKind { Cipher, } impl VaultObjectKind { pub fn as_str(&self) -> &'static str { match self { Self::Cipher => "cipher", } } } #[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] pub struct VaultObjectEnvelope { pub object_id: Uuid, pub object_kind: VaultObjectKind, pub revision: i64, pub cipher_version: i32, pub ciphertext: Vec, pub content_hash: String, pub deleted_at: Option>, pub updated_at: DateTime, } #[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] pub struct VaultObjectChange { pub change_id: Uuid, pub object_id: Uuid, pub object_kind: VaultObjectKind, pub operation: String, pub base_revision: Option, pub cipher_version: Option, pub ciphertext: Option>, pub content_hash: Option, } #[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] pub struct VaultTombstone { pub object_id: Uuid, pub revision: i64, pub deleted_at: DateTime, }