use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize, bon::Builder)]
pub struct CreateBlobStorageIntegrationRequest {
#[serde(rename = "projectId")]
pub project_id: String,
#[serde(rename = "type")]
pub r#type: models::BlobStorageIntegrationType,
#[serde(rename = "bucketName")]
pub bucket_name: String,
#[serde(
rename = "endpoint",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub endpoint: Option<Option<String>>,
#[serde(rename = "region")]
pub region: String,
#[serde(
rename = "accessKeyId",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub access_key_id: Option<Option<String>>,
#[serde(
rename = "secretAccessKey",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub secret_access_key: Option<Option<String>>,
#[serde(
rename = "prefix",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub prefix: Option<Option<String>>,
#[serde(rename = "exportFrequency")]
pub export_frequency: models::BlobStorageExportFrequency,
#[serde(rename = "enabled")]
pub enabled: bool,
#[serde(rename = "forcePathStyle")]
pub force_path_style: bool,
#[serde(rename = "fileType")]
pub file_type: models::BlobStorageIntegrationFileType,
#[serde(rename = "exportMode")]
pub export_mode: models::BlobStorageExportMode,
#[serde(
rename = "exportStartDate",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub export_start_date: Option<Option<String>>,
#[serde(
rename = "compressed",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub compressed: Option<Option<bool>>,
}
impl CreateBlobStorageIntegrationRequest {
pub fn new(
project_id: String,
r#type: models::BlobStorageIntegrationType,
bucket_name: String,
region: String,
export_frequency: models::BlobStorageExportFrequency,
enabled: bool,
force_path_style: bool,
file_type: models::BlobStorageIntegrationFileType,
export_mode: models::BlobStorageExportMode,
) -> CreateBlobStorageIntegrationRequest {
CreateBlobStorageIntegrationRequest {
project_id,
r#type,
bucket_name,
endpoint: None,
region,
access_key_id: None,
secret_access_key: None,
prefix: None,
export_frequency,
enabled,
force_path_style,
file_type,
export_mode,
export_start_date: None,
compressed: None,
}
}
}