use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct DistributionList {
pub marker: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_marker: Option<String>,
pub max_items: i32,
#[serde(default)]
pub is_truncated: bool,
pub quantity: i32,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub items: Vec<DistributionSummary>,
}
impl DistributionList {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
marker: "test-marker".into(),
next_marker: Some("test-next_marker".into()),
max_items: 100,
is_truncated: false,
quantity: 100,
items: vec![],
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct DistributionSummary {
pub id: String,
#[serde(rename = "ARN")]
pub arn: String,
pub status: String,
pub domain_name: String,
pub origins: Origins,
pub default_cache_behavior: DefaultCacheBehavior,
pub price_class: String,
#[serde(default)]
pub enabled: bool,
pub comment: String,
}
impl DistributionSummary {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
id: "test-id".into(),
arn: "test-arn".into(),
status: "test-status".into(),
domain_name: "test-domain_name".into(),
origins: Origins::fixture(),
default_cache_behavior: DefaultCacheBehavior::fixture(),
price_class: "test-price_class".into(),
enabled: false,
comment: "test-comment".into(),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Distribution {
pub id: String,
#[serde(rename = "ARN")]
pub arn: String,
pub status: String,
pub domain_name: String,
pub distribution_config: DistributionConfig,
}
impl Distribution {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
id: "test-id".into(),
arn: "test-arn".into(),
status: "test-status".into(),
domain_name: "test-domain_name".into(),
distribution_config: DistributionConfig::fixture(),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct DistributionConfig {
pub caller_reference: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub aliases: Option<Aliases>,
#[serde(skip_serializing_if = "Option::is_none")]
pub default_root_object: Option<String>,
pub origins: Origins,
pub default_cache_behavior: DefaultCacheBehavior,
pub comment: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub price_class: Option<String>,
#[serde(default)]
pub enabled: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub viewer_certificate: Option<ViewerCertificate>,
}
impl DistributionConfig {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
caller_reference: "test-caller_reference".into(),
aliases: Some(Aliases::fixture()),
default_root_object: Some("test-default_root_object".into()),
origins: Origins::fixture(),
default_cache_behavior: DefaultCacheBehavior::fixture(),
comment: "test-comment".into(),
price_class: Some("test-price_class".into()),
enabled: false,
viewer_certificate: Some(ViewerCertificate::fixture()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Aliases {
pub quantity: i32,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub items: Vec<String>,
}
impl Aliases {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
quantity: 100,
items: vec![],
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct ViewerCertificate {
#[serde(skip_serializing_if = "Option::is_none")]
pub cloud_front_default_certificate: Option<bool>,
#[serde(rename = "IAMCertificateId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub iam_certificate_id: Option<String>,
#[serde(rename = "ACMCertificateArn")]
#[serde(skip_serializing_if = "Option::is_none")]
pub acm_certificate_arn: Option<String>,
#[serde(rename = "SSLSupportMethod")]
#[serde(skip_serializing_if = "Option::is_none")]
pub ssl_support_method: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub minimum_protocol_version: Option<String>,
}
impl ViewerCertificate {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
cloud_front_default_certificate: Some(false),
iam_certificate_id: Some("test-iam_certificate_id".into()),
acm_certificate_arn: Some("test-acm_certificate_arn".into()),
ssl_support_method: Some("test-ssl_support_method".into()),
minimum_protocol_version: Some("test-minimum_protocol_version".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Origins {
pub quantity: i32,
#[serde(default)]
pub items: Vec<Origin>,
}
impl Origins {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
quantity: 100,
items: vec![],
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Origin {
pub id: String,
pub domain_name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub s3_origin_config: Option<S3OriginConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
pub origin_access_control_id: Option<String>,
}
impl Origin {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
id: "test-id".into(),
domain_name: "test-domain_name".into(),
s3_origin_config: Some(S3OriginConfig::fixture()),
origin_access_control_id: Some("test-origin_access_control_id".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct S3OriginConfig {
pub origin_access_identity: String,
}
impl S3OriginConfig {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
origin_access_identity: "test-origin_access_identity".into(),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct DefaultCacheBehavior {
pub target_origin_id: String,
pub viewer_protocol_policy: String,
}
impl DefaultCacheBehavior {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
target_origin_id: "test-target_origin_id".into(),
viewer_protocol_policy: "test-viewer_protocol_policy".into(),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct OriginAccessControl {
pub id: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub origin_access_control_config: Option<OriginAccessControlConfig>,
}
impl OriginAccessControl {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
id: "test-id".into(),
origin_access_control_config: Some(OriginAccessControlConfig::fixture()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct OriginAccessControlConfig {
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
pub signing_protocol: String,
pub signing_behavior: String,
pub origin_access_control_origin_type: String,
}
impl OriginAccessControlConfig {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: "test-name".into(),
description: Some("test-description".into()),
signing_protocol: "test-signing_protocol".into(),
signing_behavior: "test-signing_behavior".into(),
origin_access_control_origin_type: "test-origin_access_control_origin_type".into(),
}
}
}