use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct RawScriptAssetsInner {
#[serde(rename = "path")]
pub path: String,
#[serde(rename = "kind")]
pub kind: Kind,
#[serde(rename = "access_type", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub access_type: Option<Option<AccessType>>,
#[serde(rename = "alt_access_type", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub alt_access_type: Option<Option<AltAccessType>>,
}
impl RawScriptAssetsInner {
pub fn new(path: String, kind: Kind) -> RawScriptAssetsInner {
RawScriptAssetsInner {
path,
kind,
access_type: None,
alt_access_type: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Kind {
#[serde(rename = "s3object")]
S3object,
#[serde(rename = "resource")]
Resource,
#[serde(rename = "ducklake")]
Ducklake,
#[serde(rename = "datatable")]
Datatable,
#[serde(rename = "volume")]
Volume,
}
impl Default for Kind {
fn default() -> Kind {
Self::S3object
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum AccessType {
#[serde(rename = "r")]
R,
#[serde(rename = "w")]
W,
#[serde(rename = "rw")]
Rw,
}
impl Default for AccessType {
fn default() -> AccessType {
Self::R
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum AltAccessType {
#[serde(rename = "r")]
R,
#[serde(rename = "w")]
W,
#[serde(rename = "rw")]
Rw,
}
impl Default for AltAccessType {
fn default() -> AltAccessType {
Self::R
}
}