use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct BucketConfig {
pub alias: String,
pub endpoint: String,
pub bucket: String,
pub access_key_id: String,
#[serde(default)]
pub encryption_key_alias: Option<String>,
}
impl crate::core::keyring::KeyringEntry for BucketConfig {
fn alias(&self) -> &str {
&self.alias
}
fn kind(&self) -> &'static str {
"bucket"
}
fn detail(&self) -> String {
match &self.encryption_key_alias {
Some(alias) => format!(
"{} ({}), encrypts with '{alias}'",
self.endpoint, self.bucket
),
None => format!("{} ({})", self.endpoint, self.bucket),
}
}
}