use super::{
models_serde,
xml_helpers::{
Blob_tag_setTag, BlobsBlob, Committed_blocksBlock, Container_itemsContainer, CorsCorsRule,
Uncommitted_blocksBlock,
},
AccessTier, ArchiveStatus, BlobType, CopyStatus, GeoReplicationStatusType,
ImmutabilityPolicyMode, LeaseDuration, LeaseState, LeaseStatus, PublicAccessType,
RehydratePriority, StorageErrorCode,
};
use azure_core::{base64, fmt::SafeDebug, http::Etag, time::OffsetDateTime};
use serde::{Deserialize, Serialize};
use std::collections::HashMap;
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
pub struct AccessPolicy {
#[serde(
default,
rename = "Expiry",
skip_serializing_if = "Option::is_none",
with = "models_serde::option_offset_date_time_rfc3339_fixed_width"
)]
pub expiry: Option<OffsetDateTime>,
#[serde(rename = "Permission", skip_serializing_if = "Option::is_none")]
pub permission: Option<String>,
#[serde(
default,
rename = "Start",
skip_serializing_if = "Option::is_none",
with = "models_serde::option_offset_date_time_rfc3339_fixed_width"
)]
pub start: Option<OffsetDateTime>,
}
#[derive(SafeDebug)]
pub struct AppendBlobClientAppendBlockFromUrlResult;
#[derive(SafeDebug)]
pub struct AppendBlobClientAppendBlockResult;
#[derive(SafeDebug)]
pub struct AppendBlobClientCreateResult;
#[derive(SafeDebug)]
pub struct AppendBlobClientSealResult;
#[derive(SafeDebug)]
pub struct BlobClientAcquireLeaseResult;
#[derive(SafeDebug)]
pub struct BlobClientBreakLeaseResult;
#[derive(SafeDebug)]
pub struct BlobClientChangeLeaseResult;
#[derive(SafeDebug)]
pub struct BlobClientCreateSnapshotResult;
#[derive(SafeDebug)]
pub struct BlobClientDownloadInternalResult;
#[derive(SafeDebug)]
pub struct BlobClientGetAccountInfoResult;
#[derive(SafeDebug)]
pub struct BlobClientGetPropertiesResult;
#[derive(SafeDebug)]
pub struct BlobClientReleaseLeaseResult;
#[derive(SafeDebug)]
pub struct BlobClientRenewLeaseResult;
#[derive(SafeDebug)]
pub struct BlobContainerClientAcquireLeaseResult;
#[derive(SafeDebug)]
pub struct BlobContainerClientBreakLeaseResult;
#[derive(SafeDebug)]
pub struct BlobContainerClientChangeLeaseResult;
#[derive(SafeDebug)]
pub struct BlobContainerClientGetAccountInfoResult;
#[derive(SafeDebug)]
pub struct BlobContainerClientGetPropertiesResult;
#[derive(SafeDebug)]
pub struct BlobContainerClientReleaseLeaseResult;
#[derive(SafeDebug)]
pub struct BlobContainerClientRenewLeaseResult;
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
#[non_exhaustive]
pub struct BlobFlatListSegment {
#[serde(default, rename = "Blob")]
pub blob_items: Vec<BlobItem>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
#[non_exhaustive]
#[serde(rename = "Blob")]
pub struct BlobItem {
#[serde(rename = "Tags", skip_serializing_if = "Option::is_none")]
pub blob_tags: Option<BlobTags>,
#[serde(rename = "Deleted", skip_serializing_if = "Option::is_none")]
pub deleted: Option<bool>,
#[serde(rename = "HasVersionsOnly", skip_serializing_if = "Option::is_none")]
pub has_versions_only: Option<bool>,
#[serde(rename = "IsCurrentVersion", skip_serializing_if = "Option::is_none")]
pub is_current_version: Option<bool>,
#[serde(rename = "Metadata", skip_serializing_if = "Option::is_none")]
pub metadata: Option<BlobMetadata>,
#[serde(
deserialize_with = "crate::models::blob_name::option::deserialize",
rename = "Name",
skip_serializing_if = "Option::is_none"
)]
pub name: Option<String>,
#[serde(rename = "OrMetadata", skip_serializing_if = "Option::is_none")]
pub object_replication_metadata: Option<ObjectReplicationMetadata>,
#[serde(rename = "Properties", skip_serializing_if = "Option::is_none")]
pub properties: Option<BlobProperties>,
#[serde(rename = "Snapshot", skip_serializing_if = "Option::is_none")]
pub snapshot: Option<String>,
#[serde(rename = "VersionId", skip_serializing_if = "Option::is_none")]
pub version_id: Option<String>,
}
#[derive(Clone, Default, SafeDebug)]
#[non_exhaustive]
pub struct BlobMetadata {
pub additional_properties: Option<HashMap<String, String>>,
pub encrypted: Option<String>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
#[non_exhaustive]
pub struct BlobName {
#[serde(rename = "$text", skip_serializing_if = "Option::is_none")]
pub content: Option<String>,
#[serde(rename = "@Encoded", skip_serializing_if = "Option::is_none")]
pub encoded: Option<bool>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
#[non_exhaustive]
#[serde(rename = "Properties")]
pub struct BlobProperties {
#[serde(rename = "AccessTier", skip_serializing_if = "Option::is_none")]
pub access_tier: Option<AccessTier>,
#[serde(
default,
rename = "AccessTierChangeTime",
skip_serializing_if = "Option::is_none",
with = "azure_core::time::rfc7231::option"
)]
pub access_tier_change_time: Option<OffsetDateTime>,
#[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<ArchiveStatus>,
#[serde(
rename = "x-ms-blob-sequence-number",
skip_serializing_if = "Option::is_none"
)]
pub blob_sequence_number: Option<i64>,
#[serde(rename = "BlobType", skip_serializing_if = "Option::is_none")]
pub blob_type: Option<BlobType>,
#[serde(rename = "Cache-Control", skip_serializing_if = "Option::is_none")]
pub cache_control: Option<String>,
#[serde(
rename = "Content-Disposition",
skip_serializing_if = "Option::is_none"
)]
pub content_disposition: 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(rename = "Content-Length", skip_serializing_if = "Option::is_none")]
pub content_length: Option<u64>,
#[serde(
default,
deserialize_with = "base64::option::deserialize",
rename = "Content-MD5",
serialize_with = "base64::option::serialize",
skip_serializing_if = "Option::is_none"
)]
pub content_md5: Option<Vec<u8>>,
#[serde(rename = "Content-Type", skip_serializing_if = "Option::is_none")]
pub content_type: Option<String>,
#[serde(
default,
rename = "CopyCompletionTime",
skip_serializing_if = "Option::is_none",
with = "azure_core::time::rfc7231::option"
)]
pub copy_completion_time: Option<OffsetDateTime>,
#[serde(rename = "CopyId", skip_serializing_if = "Option::is_none")]
pub copy_id: Option<String>,
#[serde(rename = "CopyProgress", skip_serializing_if = "Option::is_none")]
pub copy_progress: Option<String>,
#[serde(rename = "CopySource", skip_serializing_if = "Option::is_none")]
pub copy_source: Option<String>,
#[serde(rename = "CopyStatus", skip_serializing_if = "Option::is_none")]
pub copy_status: Option<CopyStatus>,
#[serde(
rename = "CopyStatusDescription",
skip_serializing_if = "Option::is_none"
)]
pub copy_status_description: Option<String>,
#[serde(
default,
rename = "Creation-Time",
skip_serializing_if = "Option::is_none",
with = "azure_core::time::rfc7231::option"
)]
pub creation_time: Option<OffsetDateTime>,
#[serde(
rename = "CustomerProvidedKeySha256",
skip_serializing_if = "Option::is_none"
)]
pub customer_provided_key_sha256: Option<String>,
#[serde(
default,
rename = "DeletedTime",
skip_serializing_if = "Option::is_none",
with = "azure_core::time::rfc7231::option"
)]
pub deleted_time: Option<OffsetDateTime>,
#[serde(
rename = "DestinationSnapshot",
skip_serializing_if = "Option::is_none"
)]
pub destination_snapshot: Option<String>,
#[serde(rename = "EncryptionScope", skip_serializing_if = "Option::is_none")]
pub encryption_scope: Option<String>,
#[serde(rename = "Etag", skip_serializing_if = "Option::is_none")]
pub etag: Option<Etag>,
#[serde(
default,
rename = "Expiry-Time",
skip_serializing_if = "Option::is_none",
with = "azure_core::time::rfc7231::option"
)]
pub expires_on: Option<OffsetDateTime>,
#[serde(
default,
rename = "ImmutabilityPolicyUntilDate",
skip_serializing_if = "Option::is_none",
with = "azure_core::time::rfc7231::option"
)]
pub immutability_policy_expires_on: Option<OffsetDateTime>,
#[serde(
rename = "ImmutabilityPolicyMode",
skip_serializing_if = "Option::is_none"
)]
pub immutability_policy_mode: Option<ImmutabilityPolicyMode>,
#[serde(rename = "IncrementalCopy", skip_serializing_if = "Option::is_none")]
pub incremental_copy: Option<bool>,
#[serde(rename = "Sealed", skip_serializing_if = "Option::is_none")]
pub is_sealed: Option<bool>,
#[serde(
default,
rename = "LastAccessTime",
skip_serializing_if = "Option::is_none",
with = "azure_core::time::rfc7231::option"
)]
pub last_accessed_on: Option<OffsetDateTime>,
#[serde(
default,
rename = "Last-Modified",
skip_serializing_if = "Option::is_none",
with = "azure_core::time::rfc7231::option"
)]
pub last_modified: Option<OffsetDateTime>,
#[serde(rename = "LeaseDuration", skip_serializing_if = "Option::is_none")]
pub lease_duration: Option<LeaseDuration>,
#[serde(rename = "LeaseState", skip_serializing_if = "Option::is_none")]
pub lease_state: Option<LeaseState>,
#[serde(rename = "LeaseStatus", skip_serializing_if = "Option::is_none")]
pub lease_status: Option<LeaseStatus>,
#[serde(rename = "LegalHold", skip_serializing_if = "Option::is_none")]
pub legal_hold: Option<bool>,
#[serde(rename = "RehydratePriority", skip_serializing_if = "Option::is_none")]
pub rehydrate_priority: Option<RehydratePriority>,
#[serde(
rename = "RemainingRetentionDays",
skip_serializing_if = "Option::is_none"
)]
pub remaining_retention_days: Option<i32>,
#[serde(rename = "ServerEncrypted", skip_serializing_if = "Option::is_none")]
pub server_encrypted: Option<bool>,
#[serde(rename = "TagCount", skip_serializing_if = "Option::is_none")]
pub tag_count: Option<i32>,
}
#[derive(SafeDebug)]
pub struct BlobServiceClientGetAccountInfoResult;
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
#[serde(rename = "StorageServiceProperties")]
pub struct BlobServiceProperties {
#[serde(
default,
deserialize_with = "CorsCorsRule::unwrap",
rename = "Cors",
serialize_with = "CorsCorsRule::wrap",
skip_serializing_if = "Option::is_none"
)]
pub cors: Option<Vec<CorsRule>>,
#[serde(
rename = "DefaultServiceVersion",
skip_serializing_if = "Option::is_none"
)]
pub default_service_version: Option<String>,
#[serde(
rename = "DeleteRetentionPolicy",
skip_serializing_if = "Option::is_none"
)]
pub delete_retention_policy: Option<RetentionPolicy>,
#[serde(rename = "HourMetrics", skip_serializing_if = "Option::is_none")]
pub hour_metrics: Option<Metrics>,
#[serde(rename = "Logging", skip_serializing_if = "Option::is_none")]
pub logging: Option<Logging>,
#[serde(rename = "MinuteMetrics", skip_serializing_if = "Option::is_none")]
pub minute_metrics: Option<Metrics>,
#[serde(rename = "StaticWebsite", skip_serializing_if = "Option::is_none")]
pub static_website: Option<StaticWebsite>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
#[serde(rename = "Tag")]
pub struct BlobTag {
#[serde(rename = "Key", skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(rename = "Value", skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
#[serde(rename = "Tags")]
pub struct BlobTags {
#[serde(
default,
deserialize_with = "Blob_tag_setTag::unwrap",
rename = "TagSet",
serialize_with = "Blob_tag_setTag::wrap",
skip_serializing_if = "Option::is_none"
)]
pub blob_tag_set: Option<Vec<BlobTag>>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
#[non_exhaustive]
pub struct Block {
#[serde(
default,
deserialize_with = "base64::option::deserialize",
rename = "Name",
serialize_with = "base64::option::serialize",
skip_serializing_if = "Option::is_none"
)]
pub name: Option<Vec<u8>>,
#[serde(rename = "Size", skip_serializing_if = "Option::is_none")]
pub size: Option<i64>,
}
#[derive(SafeDebug)]
pub struct BlockBlobClientCommitBlockListResult;
#[derive(SafeDebug)]
pub struct BlockBlobClientStageBlockFromUrlResult;
#[derive(SafeDebug)]
pub struct BlockBlobClientStageBlockResult;
#[derive(SafeDebug)]
pub struct BlockBlobClientUploadBlobFromUrlResult;
#[derive(SafeDebug)]
pub struct BlockBlobClientUploadInternalResult;
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
#[non_exhaustive]
pub struct BlockList {
#[serde(
default,
deserialize_with = "Committed_blocksBlock::unwrap",
rename = "CommittedBlocks",
serialize_with = "Committed_blocksBlock::wrap",
skip_serializing_if = "Option::is_none"
)]
pub committed_blocks: Option<Vec<Block>>,
#[serde(
default,
deserialize_with = "Uncommitted_blocksBlock::unwrap",
rename = "UncommittedBlocks",
serialize_with = "Uncommitted_blocksBlock::wrap",
skip_serializing_if = "Option::is_none"
)]
pub uncommitted_blocks: Option<Vec<Block>>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
#[serde(rename = "BlockList")]
pub struct BlockLookupList {
#[serde(
default,
rename = "Committed",
skip_serializing_if = "Option::is_none",
with = "models_serde::option_vec_encoded_bytes_std"
)]
pub committed: Option<Vec<Vec<u8>>>,
#[serde(
default,
rename = "Latest",
skip_serializing_if = "Option::is_none",
with = "models_serde::option_vec_encoded_bytes_std"
)]
pub latest: Option<Vec<Vec<u8>>>,
#[serde(
default,
rename = "Uncommitted",
skip_serializing_if = "Option::is_none",
with = "models_serde::option_vec_encoded_bytes_std"
)]
pub uncommitted: Option<Vec<Vec<u8>>>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
#[non_exhaustive]
pub struct ClearRange {
#[serde(rename = "End", skip_serializing_if = "Option::is_none")]
pub end: Option<i64>,
#[serde(rename = "Start", skip_serializing_if = "Option::is_none")]
pub start: Option<i64>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
#[non_exhaustive]
#[serde(rename = "Container")]
pub struct ContainerItem {
#[serde(rename = "Deleted", skip_serializing_if = "Option::is_none")]
pub deleted: Option<bool>,
#[serde(rename = "Metadata", skip_serializing_if = "Option::is_none")]
pub metadata: Option<HashMap<String, String>>,
#[serde(rename = "Name", skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "Properties", skip_serializing_if = "Option::is_none")]
pub properties: Option<ContainerProperties>,
#[serde(rename = "Version", skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
#[non_exhaustive]
pub struct ContainerProperties {
#[serde(
rename = "DefaultEncryptionScope",
skip_serializing_if = "Option::is_none"
)]
pub default_encryption_scope: Option<String>,
#[serde(
default,
rename = "DeletedTime",
skip_serializing_if = "Option::is_none",
with = "azure_core::time::rfc7231::option"
)]
pub deleted_time: Option<OffsetDateTime>,
#[serde(rename = "Etag", skip_serializing_if = "Option::is_none")]
pub etag: Option<Etag>,
#[serde(
rename = "HasImmutabilityPolicy",
skip_serializing_if = "Option::is_none"
)]
pub has_immutability_policy: Option<bool>,
#[serde(rename = "HasLegalHold", skip_serializing_if = "Option::is_none")]
pub has_legal_hold: Option<bool>,
#[serde(
rename = "ImmutableStorageWithVersioningEnabled",
skip_serializing_if = "Option::is_none"
)]
pub is_immutable_storage_with_versioning_enabled: Option<bool>,
#[serde(
default,
rename = "Last-Modified",
skip_serializing_if = "Option::is_none",
with = "azure_core::time::rfc7231::option"
)]
pub last_modified: Option<OffsetDateTime>,
#[serde(rename = "LeaseDuration", skip_serializing_if = "Option::is_none")]
pub lease_duration: Option<LeaseDuration>,
#[serde(rename = "LeaseState", skip_serializing_if = "Option::is_none")]
pub lease_state: Option<LeaseState>,
#[serde(rename = "LeaseStatus", skip_serializing_if = "Option::is_none")]
pub lease_status: Option<LeaseStatus>,
#[serde(
rename = "DenyEncryptionScopeOverride",
skip_serializing_if = "Option::is_none"
)]
pub prevent_encryption_scope_override: Option<bool>,
#[serde(rename = "PublicAccess", skip_serializing_if = "Option::is_none")]
pub public_access: Option<PublicAccessType>,
#[serde(
rename = "RemainingRetentionDays",
skip_serializing_if = "Option::is_none"
)]
pub remaining_retention_days: Option<i32>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
#[serde(rename = "CorsRule")]
pub struct CorsRule {
#[serde(rename = "AllowedHeaders", skip_serializing_if = "Option::is_none")]
pub allowed_headers: Option<String>,
#[serde(rename = "AllowedMethods", skip_serializing_if = "Option::is_none")]
pub allowed_methods: Option<String>,
#[serde(rename = "AllowedOrigins", skip_serializing_if = "Option::is_none")]
pub allowed_origins: Option<String>,
#[serde(rename = "ExposedHeaders", skip_serializing_if = "Option::is_none")]
pub exposed_headers: Option<String>,
#[serde(rename = "MaxAgeInSeconds", skip_serializing_if = "Option::is_none")]
pub max_age_in_seconds: Option<i32>,
}
#[derive(Clone, Deserialize, SafeDebug, Serialize)]
pub struct Error {
#[serde(rename = "Code", skip_serializing_if = "Option::is_none")]
pub code: Option<StorageErrorCode>,
#[serde(
rename = "CopySourceErrorCode",
skip_serializing_if = "Option::is_none"
)]
pub copy_source_error_code: Option<String>,
#[serde(
rename = "CopySourceErrorMessage",
skip_serializing_if = "Option::is_none"
)]
pub copy_source_error_message: Option<String>,
#[serde(
rename = "CopySourceStatusCode",
skip_serializing_if = "Option::is_none"
)]
pub copy_source_status_code: Option<i32>,
#[serde(rename = "errorCode", skip_serializing_if = "Option::is_none")]
pub error_code: Option<String>,
#[serde(rename = "Message", skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(
rename = "xMsCopySourceErrorCode",
skip_serializing_if = "Option::is_none"
)]
pub x_ms_copy_source_error_code: Option<String>,
#[serde(
rename = "xMsCopySourceStatusCode",
skip_serializing_if = "Option::is_none"
)]
pub x_ms_copy_source_status_code: Option<i32>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
#[non_exhaustive]
#[serde(rename = "Blob")]
pub struct FilterBlobItem {
#[serde(rename = "ContainerName", skip_serializing_if = "Option::is_none")]
pub container_name: Option<String>,
#[serde(rename = "IsCurrentVersion", skip_serializing_if = "Option::is_none")]
pub is_current_version: Option<bool>,
#[serde(rename = "Name", skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "Tags", skip_serializing_if = "Option::is_none")]
pub tags: Option<BlobTags>,
#[serde(rename = "VersionId", skip_serializing_if = "Option::is_none")]
pub version_id: Option<String>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
#[non_exhaustive]
#[serde(rename = "EnumerationResults")]
pub struct FilterBlobSegment {
#[serde(
default,
deserialize_with = "BlobsBlob::unwrap",
rename = "Blobs",
serialize_with = "BlobsBlob::wrap",
skip_serializing_if = "Option::is_none"
)]
pub blobs: Option<Vec<FilterBlobItem>>,
#[serde(rename = "NextMarker", skip_serializing_if = "Option::is_none")]
pub next_marker: Option<String>,
#[serde(rename = "@ServiceEndpoint", skip_serializing_if = "Option::is_none")]
pub service_endpoint: Option<String>,
#[serde(rename = "Where", skip_serializing_if = "Option::is_none")]
pub where_prop: Option<String>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
#[non_exhaustive]
pub struct GeoReplication {
#[serde(
default,
rename = "LastSyncTime",
skip_serializing_if = "Option::is_none",
with = "azure_core::time::rfc7231::option"
)]
pub last_sync_time: Option<OffsetDateTime>,
#[serde(rename = "Status", skip_serializing_if = "Option::is_none")]
pub status: Option<GeoReplicationStatusType>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
#[non_exhaustive]
#[serde(rename = "EnumerationResults")]
pub struct ListBlobsResponse {
#[serde(rename = "@ContainerName", skip_serializing_if = "Option::is_none")]
pub container_name: Option<String>,
#[serde(rename = "Marker", skip_serializing_if = "Option::is_none")]
pub marker: Option<String>,
#[serde(rename = "MaxResults", skip_serializing_if = "Option::is_none")]
pub max_results: Option<i32>,
#[serde(rename = "NextMarker", skip_serializing_if = "Option::is_none")]
pub next_marker: Option<String>,
#[serde(rename = "Prefix", skip_serializing_if = "Option::is_none")]
pub prefix: Option<String>,
#[serde(default, rename = "Blobs")]
pub segment: BlobFlatListSegment,
#[serde(rename = "@ServiceEndpoint", skip_serializing_if = "Option::is_none")]
pub service_endpoint: Option<String>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
#[non_exhaustive]
#[serde(rename = "EnumerationResults")]
pub struct ListContainersSegmentResponse {
#[serde(
default,
deserialize_with = "Container_itemsContainer::unwrap",
rename = "Containers",
serialize_with = "Container_itemsContainer::wrap"
)]
pub container_items: Vec<ContainerItem>,
#[serde(rename = "Marker", skip_serializing_if = "Option::is_none")]
pub marker: Option<String>,
#[serde(rename = "MaxResults", skip_serializing_if = "Option::is_none")]
pub max_results: Option<i32>,
#[serde(rename = "NextMarker", skip_serializing_if = "Option::is_none")]
pub next_marker: Option<String>,
#[serde(rename = "Prefix", skip_serializing_if = "Option::is_none")]
pub prefix: Option<String>,
#[serde(rename = "@ServiceEndpoint", skip_serializing_if = "Option::is_none")]
pub service_endpoint: Option<String>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
pub struct Logging {
#[serde(rename = "Delete", skip_serializing_if = "Option::is_none")]
pub delete: Option<bool>,
#[serde(rename = "Read", skip_serializing_if = "Option::is_none")]
pub read: Option<bool>,
#[serde(rename = "RetentionPolicy", skip_serializing_if = "Option::is_none")]
pub retention_policy: Option<RetentionPolicy>,
#[serde(rename = "Version", skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
#[serde(rename = "Write", skip_serializing_if = "Option::is_none")]
pub write: Option<bool>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
pub struct Metrics {
#[serde(rename = "Enabled", skip_serializing_if = "Option::is_none")]
pub enabled: Option<bool>,
#[serde(rename = "IncludeAPIs", skip_serializing_if = "Option::is_none")]
pub include_apis: Option<bool>,
#[serde(rename = "RetentionPolicy", skip_serializing_if = "Option::is_none")]
pub retention_policy: Option<RetentionPolicy>,
#[serde(rename = "Version", skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
#[derive(Clone, Default, SafeDebug)]
#[non_exhaustive]
pub struct ObjectReplicationMetadata {
pub additional_properties: Option<HashMap<String, String>>,
}
#[derive(SafeDebug)]
pub struct PageBlobClientClearPagesResult;
#[derive(SafeDebug)]
pub struct PageBlobClientCreateResult;
#[derive(SafeDebug)]
pub struct PageBlobClientResizeResult;
#[derive(SafeDebug)]
pub struct PageBlobClientSetSequenceNumberResult;
#[derive(SafeDebug)]
pub struct PageBlobClientUploadPagesFromUrlResult;
#[derive(SafeDebug)]
pub struct PageBlobClientUploadPagesResult;
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
#[non_exhaustive]
pub struct PageList {
#[serde(rename = "ClearRange", skip_serializing_if = "Option::is_none")]
pub clear_range: Option<Vec<ClearRange>>,
#[serde(rename = "NextMarker", skip_serializing_if = "Option::is_none")]
pub next_marker: Option<String>,
#[serde(rename = "PageRange", skip_serializing_if = "Option::is_none")]
pub page_range: Option<Vec<PageRange>>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
#[non_exhaustive]
pub struct PageRange {
#[serde(rename = "End", skip_serializing_if = "Option::is_none")]
pub end: Option<i64>,
#[serde(rename = "Start", skip_serializing_if = "Option::is_none")]
pub start: Option<i64>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
pub struct RetentionPolicy {
#[serde(
rename = "AllowPermanentDelete",
skip_serializing_if = "Option::is_none"
)]
pub allow_permanent_delete: Option<bool>,
#[serde(rename = "Days", skip_serializing_if = "Option::is_none")]
pub days: Option<i32>,
#[serde(rename = "Enabled", skip_serializing_if = "Option::is_none")]
pub enabled: Option<bool>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
#[serde(rename = "SignedIdentifier")]
pub struct SignedIdentifier {
#[serde(rename = "AccessPolicy", skip_serializing_if = "Option::is_none")]
pub access_policy: Option<AccessPolicy>,
#[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
pub struct SignedIdentifiers {
#[serde(rename = "SignedIdentifier", skip_serializing_if = "Option::is_none")]
pub items: Option<Vec<SignedIdentifier>>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
pub struct StaticWebsite {
#[serde(
rename = "DefaultIndexDocumentPath",
skip_serializing_if = "Option::is_none"
)]
pub default_index_document_path: Option<String>,
#[serde(rename = "Enabled", skip_serializing_if = "Option::is_none")]
pub enabled: Option<bool>,
#[serde(
rename = "ErrorDocument404Path",
skip_serializing_if = "Option::is_none"
)]
pub error_document404_path: Option<String>,
#[serde(rename = "IndexDocument", skip_serializing_if = "Option::is_none")]
pub index_document: Option<String>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
#[non_exhaustive]
pub struct StorageServiceStats {
#[serde(rename = "GeoReplication", skip_serializing_if = "Option::is_none")]
pub geo_replication: Option<GeoReplication>,
}