use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Bucket {
#[serde(skip_serializing_if = "Option::is_none")]
pub links: Option<crate::models::BucketLinks>,
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(rename = "type", skip_serializing_if = "Option::is_none")]
pub r#type: Option<Type>,
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(rename = "orgID", skip_serializing_if = "Option::is_none")]
pub org_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub rp: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub updated_at: Option<String>,
pub retention_rules: Vec<crate::models::RetentionRule>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub labels: Vec<crate::models::Label>,
}
impl Bucket {
pub fn new(name: String, retention_rules: Vec<crate::models::RetentionRule>) -> Self {
Self {
name,
retention_rules,
..Default::default()
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub enum Type {
User,
System,
}
#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct BucketLinks {
#[serde(skip_serializing_if = "Option::is_none")]
pub labels: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub members: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub org: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub owners: Option<String>,
#[serde(rename = "self", skip_serializing_if = "Option::is_none")]
pub self_: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub write: Option<String>,
}
impl BucketLinks {
pub fn new() -> Self {
Self::default()
}
}
#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Buckets {
#[serde(skip_serializing_if = "Option::is_none")]
pub links: Option<crate::models::Links>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub buckets: Vec<crate::models::Bucket>,
}
impl Buckets {
pub fn new() -> Self {
Self::default()
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct PostBucketRequest {
#[serde(rename = "orgID")]
pub org_id: String,
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub rp: Option<String>,
#[serde(default)]
pub retention_rules: Vec<crate::models::RetentionRule>,
}
impl PostBucketRequest {
pub fn new(org_id: String, name: String) -> Self {
Self {
org_id,
name,
..Default::default()
}
}
}