use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct StoredDistributionTenant {
pub id: String,
pub arn: String,
pub name: String,
pub distribution_id: String,
pub domains: Vec<String>,
pub connection_group_id: Option<String>,
pub web_acl_arn: Option<String>,
pub enabled: bool,
pub status: String,
pub etag: String,
pub created_time: DateTime<Utc>,
pub last_modified_time: DateTime<Utc>,
#[serde(default)]
pub parameters: Vec<TenantParameter>,
#[serde(default)]
pub customizations: Option<TenantCustomizations>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, PartialEq, Eq)]
pub struct TenantParameter {
pub name: String,
pub value: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, PartialEq, Eq)]
pub struct TenantCustomizations {
pub web_acl: Option<TenantWebAclCustomization>,
pub certificate: Option<String>,
pub geo_restrictions: Option<TenantGeoRestrictionCustomization>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, PartialEq, Eq)]
pub struct TenantWebAclCustomization {
pub action: String,
pub arn: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, PartialEq, Eq)]
pub struct TenantGeoRestrictionCustomization {
pub restriction_type: String,
pub locations: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct StoredTenantInvalidation {
pub id: String,
pub tenant_id: String,
pub status: String,
pub create_time: DateTime<Utc>,
pub paths: Vec<String>,
pub caller_reference: String,
}