use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ManagedZoneDnsSecConfig {
#[serde(skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub non_existence: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub default_key_specs: Vec<DnsKeySpec>,
}
impl ManagedZoneDnsSecConfig {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
state: Some("test-state".into()),
non_existence: Some("test-non_existence".into()),
default_key_specs: vec![],
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct DnsKeySpec {
#[serde(skip_serializing_if = "Option::is_none")]
pub key_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub algorithm: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub key_length: Option<u32>,
}
impl DnsKeySpec {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
key_type: Some("test-key_type".into()),
algorithm: Some("test-algorithm".into()),
key_length: Some(100),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ManagedZoneCloudLoggingConfig {
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_logging: Option<bool>,
}
impl ManagedZoneCloudLoggingConfig {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
enable_logging: Some(false),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ManagedZone {
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub dns_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub dnssec_config: Option<ManagedZoneDnsSecConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cloud_logging_config: Option<ManagedZoneCloudLoggingConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
pub visibility: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub name_servers: Vec<String>,
}
impl ManagedZone {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: "test-managed_zone".into(),
dns_name: Some("test-dns_name".into()),
description: Some("test-description".into()),
id: Some("test-id".into()),
dnssec_config: Some(ManagedZoneDnsSecConfig::fixture()),
cloud_logging_config: Some(ManagedZoneCloudLoggingConfig::fixture()),
visibility: Some("test-visibility".into()),
name_servers: vec![],
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ManagedZonesListResponse {
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub managed_zones: Vec<ManagedZone>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_page_token: Option<String>,
}
impl ManagedZonesListResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
managed_zones: vec![],
next_page_token: Some("test-next_page_token".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct PolicyNetwork {
#[serde(skip_serializing_if = "Option::is_none")]
pub network_url: Option<String>,
}
impl PolicyNetwork {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
network_url: Some("test-network_url".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Policy {
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_inbound_forwarding: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_logging: Option<bool>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub networks: Vec<PolicyNetwork>,
}
impl Policy {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: "test-policy".into(),
id: Some("test-id".into()),
description: Some("test-description".into()),
enable_inbound_forwarding: Some(false),
enable_logging: Some(false),
networks: vec![],
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct PoliciesListResponse {
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub policies: Vec<Policy>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_page_token: Option<String>,
}
impl PoliciesListResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
policies: vec![],
next_page_token: Some("test-next_page_token".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct PoliciesPatchResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub policy: Option<Policy>,
}
impl PoliciesPatchResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
policy: Some(Policy::fixture()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct DnsOperation {
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub kind: Option<String>,
}
impl DnsOperation {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
id: Some("test-id".into()),
status: Some("test-status".into()),
kind: Some("test-kind".into()),
}
}
}