use crate::models;
use serde::{Deserialize, Serialize};
use serde_with::serde_as;
#[serde_as]
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct BlobPropertiesInternal {
#[serde(rename = "Creation-Time", skip_serializing_if = "Option::is_none")]
pub creation_time: Option<String>,
#[serde(rename = "Last-Modified")]
pub last_modified: String,
#[serde(rename = "Etag")]
pub etag: String,
#[serde(rename = "Content-Length", skip_serializing_if = "Option::is_none")]
pub content_length: Option<i64>,
#[serde(rename = "Content-Type", skip_serializing_if = "Option::is_none")]
pub content_type: Option<String>,
#[serde(rename = "Content-Encoding", skip_serializing_if = "Option::is_none")]
pub content_encoding: Option<String>,
#[serde(rename = "Content-Language", skip_serializing_if = "Option::is_none")]
pub content_language: Option<String>,
#[serde_as(as = "Option<serde_with::base64::Base64>")]
#[serde(rename = "Content-MD5", skip_serializing_if = "Option::is_none")]
pub content_md5: Option<Vec<u8>>,
#[serde(
rename = "Content-Disposition",
skip_serializing_if = "Option::is_none"
)]
pub content_disposition: Option<String>,
#[serde(rename = "Cache-Control", skip_serializing_if = "Option::is_none")]
pub cache_control: Option<String>,
#[serde(
rename = "x-ms-blob-sequence-number",
skip_serializing_if = "Option::is_none"
)]
pub x_ms_blob_sequence_number: Option<i64>,
#[serde(rename = "BlobType", skip_serializing_if = "Option::is_none")]
pub blob_type: Option<models::BlobType>,
#[serde(rename = "LeaseStatus", skip_serializing_if = "Option::is_none")]
pub lease_status: Option<models::LeaseStatus>,
#[serde(rename = "LeaseState", skip_serializing_if = "Option::is_none")]
pub lease_state: Option<models::LeaseState>,
#[serde(rename = "LeaseDuration", skip_serializing_if = "Option::is_none")]
pub lease_duration: Option<models::LeaseDuration>,
#[serde(rename = "CopyId", skip_serializing_if = "Option::is_none")]
pub copy_id: Option<String>,
#[serde(rename = "CopyStatus", skip_serializing_if = "Option::is_none")]
pub copy_status: Option<models::CopyStatus>,
#[serde(rename = "CopySource", skip_serializing_if = "Option::is_none")]
pub copy_source: Option<String>,
#[serde(rename = "CopyProgress", skip_serializing_if = "Option::is_none")]
pub copy_progress: Option<String>,
#[serde(rename = "CopyCompletionTime", skip_serializing_if = "Option::is_none")]
pub copy_completion_time: Option<String>,
#[serde(
rename = "CopyStatusDescription",
skip_serializing_if = "Option::is_none"
)]
pub copy_status_description: Option<String>,
#[serde(rename = "ServerEncrypted", skip_serializing_if = "Option::is_none")]
pub server_encrypted: Option<bool>,
#[serde(rename = "IncrementalCopy", skip_serializing_if = "Option::is_none")]
pub incremental_copy: Option<bool>,
#[serde(
rename = "DestinationSnapshot",
skip_serializing_if = "Option::is_none"
)]
pub destination_snapshot: Option<String>,
#[serde(rename = "DeletedTime", skip_serializing_if = "Option::is_none")]
pub deleted_time: Option<String>,
#[serde(
rename = "RemainingRetentionDays",
skip_serializing_if = "Option::is_none"
)]
pub remaining_retention_days: Option<i32>,
#[serde(rename = "AccessTier", skip_serializing_if = "Option::is_none")]
pub access_tier: Option<models::AccessTier>,
#[serde(rename = "AccessTierInferred", skip_serializing_if = "Option::is_none")]
pub access_tier_inferred: Option<bool>,
#[serde(rename = "ArchiveStatus", skip_serializing_if = "Option::is_none")]
pub archive_status: Option<models::ArchiveStatus>,
#[serde(
rename = "CustomerProvidedKeySha256",
skip_serializing_if = "Option::is_none"
)]
pub customer_provided_key_sha256: Option<String>,
#[serde(rename = "EncryptionScope", skip_serializing_if = "Option::is_none")]
pub encryption_scope: Option<String>,
#[serde(
rename = "AccessTierChangeTime",
skip_serializing_if = "Option::is_none"
)]
pub access_tier_change_time: Option<String>,
#[serde(rename = "TagCount", skip_serializing_if = "Option::is_none")]
pub tag_count: Option<i32>,
#[serde(rename = "Expiry-Time", skip_serializing_if = "Option::is_none")]
pub expiry_time: Option<String>,
#[serde(rename = "Sealed", skip_serializing_if = "Option::is_none")]
pub sealed: Option<bool>,
#[serde(rename = "RehydratePriority", skip_serializing_if = "Option::is_none")]
pub rehydrate_priority: Option<models::RehydratePriority>,
#[serde(rename = "LastAccessTime", skip_serializing_if = "Option::is_none")]
pub last_access_time: Option<String>,
#[serde(
rename = "ImmutabilityPolicyUntilDate",
skip_serializing_if = "Option::is_none"
)]
pub immutability_policy_until_date: Option<String>,
#[serde(
rename = "ImmutabilityPolicyMode",
skip_serializing_if = "Option::is_none"
)]
pub immutability_policy_mode: Option<models::BlobImmutabilityPolicyMode>,
#[serde(rename = "LegalHold", skip_serializing_if = "Option::is_none")]
pub legal_hold: Option<bool>,
}
impl BlobPropertiesInternal {
pub fn new(last_modified: String, etag: String) -> BlobPropertiesInternal {
BlobPropertiesInternal {
creation_time: None,
last_modified,
etag,
content_length: None,
content_type: None,
content_encoding: None,
content_language: None,
content_md5: None,
content_disposition: None,
cache_control: None,
x_ms_blob_sequence_number: None,
blob_type: None,
lease_status: None,
lease_state: None,
lease_duration: None,
copy_id: None,
copy_status: None,
copy_source: None,
copy_progress: None,
copy_completion_time: None,
copy_status_description: None,
server_encrypted: None,
incremental_copy: None,
destination_snapshot: None,
deleted_time: None,
remaining_retention_days: None,
access_tier: None,
access_tier_inferred: None,
archive_status: None,
customer_provided_key_sha256: None,
encryption_scope: None,
access_tier_change_time: None,
tag_count: None,
expiry_time: None,
sealed: None,
rehydrate_priority: None,
last_access_time: None,
immutability_policy_until_date: None,
immutability_policy_mode: None,
legal_hold: None,
}
}
}