Skip to main content

fakecloud_cloudfront/
extras2.rs

1//! Data types for CloudFront Batch 6b: Connection Groups, Domain ops,
2//! Managed Certificate Details, UpdateDistributionWithStagingConfig.
3
4use chrono::{DateTime, Utc};
5use serde::{Deserialize, Serialize};
6
7fn skip_if_none<T>(x: &Option<T>) -> bool {
8    x.is_none()
9}
10
11// ─── Connection Group ─────────────────────────────────────────────────
12
13#[derive(Debug, Clone, Serialize, Deserialize, Default)]
14#[serde(rename_all = "PascalCase")]
15pub struct CreateConnectionGroupRequest {
16    pub name: String,
17    #[serde(default, skip_serializing_if = "skip_if_none")]
18    pub ipv6_enabled: Option<bool>,
19    #[serde(default, skip_serializing_if = "skip_if_none")]
20    pub anycast_ip_list_id: Option<String>,
21    #[serde(default, skip_serializing_if = "skip_if_none")]
22    pub enabled: Option<bool>,
23}
24
25#[derive(Debug, Clone, Serialize, Deserialize, Default)]
26#[serde(rename_all = "PascalCase")]
27pub struct UpdateConnectionGroupRequest {
28    #[serde(default, skip_serializing_if = "skip_if_none")]
29    pub ipv6_enabled: Option<bool>,
30    #[serde(default, skip_serializing_if = "skip_if_none")]
31    pub anycast_ip_list_id: Option<String>,
32    #[serde(default, skip_serializing_if = "skip_if_none")]
33    pub enabled: Option<bool>,
34}
35
36#[derive(Debug, Clone, Serialize, Deserialize)]
37pub struct StoredConnectionGroup {
38    pub id: String,
39    pub name: String,
40    pub arn: String,
41    pub routing_endpoint: String,
42    pub status: String,
43    pub etag: String,
44    pub created_time: DateTime<Utc>,
45    pub last_modified_time: DateTime<Utc>,
46    pub ipv6_enabled: bool,
47    pub anycast_ip_list_id: Option<String>,
48    pub enabled: bool,
49    pub is_default: bool,
50}