use super::{
models_serde,
xml_helpers::{CorsCorsRule, Queue_itemsQueue},
GeoReplicationStatus,
};
use azure_core::{fmt::SafeDebug, 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(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<String>,
#[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]
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<GeoReplicationStatus>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
#[non_exhaustive]
#[serde(rename = "EnumerationResults")]
pub struct ListQueuesResponse {
#[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,
deserialize_with = "Queue_itemsQueue::unwrap",
rename = "Queues",
serialize_with = "Queue_itemsQueue::wrap"
)]
pub queue_items: Vec<QueueItem>,
#[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, Deserialize, SafeDebug, Serialize)]
#[non_exhaustive]
#[serde(rename = "QueueMessage")]
pub struct PeekedMessage {
#[serde(rename = "DequeueCount", skip_serializing_if = "Option::is_none")]
pub dequeue_count: Option<i64>,
#[serde(
default,
rename = "ExpirationTime",
skip_serializing_if = "Option::is_none",
with = "azure_core::time::rfc7231::option"
)]
pub expiration_time: Option<OffsetDateTime>,
#[serde(
default,
rename = "InsertionTime",
skip_serializing_if = "Option::is_none",
with = "azure_core::time::rfc7231::option"
)]
pub insertion_time: Option<OffsetDateTime>,
#[serde(rename = "MessageId", skip_serializing_if = "Option::is_none")]
pub message_id: Option<String>,
#[serde(rename = "MessageText", skip_serializing_if = "Option::is_none")]
pub message_text: Option<String>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
#[non_exhaustive]
#[serde(rename = "QueueMessagesList")]
pub struct PeekedMessages {
#[serde(rename = "QueueMessage", skip_serializing_if = "Option::is_none")]
pub items: Option<Vec<PeekedMessage>>,
}
#[derive(SafeDebug)]
pub struct QueueClientGetPropertiesResult;
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
#[non_exhaustive]
#[serde(rename = "Queue")]
pub struct QueueItem {
#[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>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
pub struct QueueMessage {
#[serde(rename = "MessageText", skip_serializing_if = "Option::is_none")]
pub message_text: Option<String>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
#[serde(rename = "StorageServiceProperties")]
pub struct QueueServiceProperties {
#[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 = "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>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
#[non_exhaustive]
pub struct QueueServiceStats {
#[serde(rename = "GeoReplication", skip_serializing_if = "Option::is_none")]
pub geo_replication: Option<GeoReplication>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
#[non_exhaustive]
#[serde(rename = "QueueMessage")]
pub struct ReceivedMessage {
#[serde(rename = "DequeueCount", skip_serializing_if = "Option::is_none")]
pub dequeue_count: Option<i64>,
#[serde(
default,
rename = "ExpirationTime",
skip_serializing_if = "Option::is_none",
with = "azure_core::time::rfc7231::option"
)]
pub expiration_time: Option<OffsetDateTime>,
#[serde(
default,
rename = "InsertionTime",
skip_serializing_if = "Option::is_none",
with = "azure_core::time::rfc7231::option"
)]
pub insertion_time: Option<OffsetDateTime>,
#[serde(rename = "MessageId", skip_serializing_if = "Option::is_none")]
pub message_id: Option<String>,
#[serde(rename = "MessageText", skip_serializing_if = "Option::is_none")]
pub message_text: Option<String>,
#[serde(rename = "PopReceipt", skip_serializing_if = "Option::is_none")]
pub pop_receipt: Option<String>,
#[serde(
default,
rename = "TimeNextVisible",
skip_serializing_if = "Option::is_none",
with = "azure_core::time::rfc7231::option"
)]
pub time_next_visible: Option<OffsetDateTime>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
#[non_exhaustive]
#[serde(rename = "QueueMessagesList")]
pub struct ReceivedMessages {
#[serde(rename = "QueueMessage", skip_serializing_if = "Option::is_none")]
pub items: Option<Vec<ReceivedMessage>>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
pub struct RetentionPolicy {
#[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)]
#[non_exhaustive]
#[serde(rename = "QueueMessage")]
pub struct SentMessageInternal {
#[serde(
default,
rename = "ExpirationTime",
skip_serializing_if = "Option::is_none",
with = "azure_core::time::rfc7231::option"
)]
pub expiration_time: Option<OffsetDateTime>,
#[serde(
default,
rename = "InsertionTime",
skip_serializing_if = "Option::is_none",
with = "azure_core::time::rfc7231::option"
)]
pub insertion_time: Option<OffsetDateTime>,
#[serde(rename = "MessageId", skip_serializing_if = "Option::is_none")]
pub message_id: Option<String>,
#[serde(rename = "PopReceipt", skip_serializing_if = "Option::is_none")]
pub pop_receipt: Option<String>,
#[serde(
default,
rename = "TimeNextVisible",
skip_serializing_if = "Option::is_none",
with = "azure_core::time::rfc7231::option"
)]
pub time_next_visible: Option<OffsetDateTime>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
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)]
#[serde(rename = "SignedIdentifiers")]
pub struct SignedIdentifiers {
#[serde(rename = "SignedIdentifier", skip_serializing_if = "Option::is_none")]
pub items: Option<Vec<SignedIdentifier>>,
}