use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy)]
#[non_exhaustive]
pub enum BucketAccess {
Private,
PublicRead,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct TransformPreset {
pub name: String,
pub width: Option<u32>,
pub height: Option<u32>,
pub format: Option<String>,
pub quality: Option<u8>,
}
#[derive(Debug, Clone)]
pub struct BucketConfig {
pub name: String,
pub max_object_bytes: Option<u64>,
pub allowed_mime_types: Option<Vec<String>>,
pub access: BucketAccess,
pub transform_presets: Option<Vec<TransformPreset>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct StorageConfig {
pub backend: String,
pub path: Option<String>,
pub bucket: Option<String>,
pub region: Option<String>,
pub endpoint: Option<String>,
pub project_id: Option<String>,
pub account_name: Option<String>,
}