1use chrono::{DateTime, Utc};
5use serde::{Deserialize, Serialize};
6
7fn skip_if_none<T>(x: &Option<T>) -> bool {
8 x.is_none()
9}
10
11#[derive(Debug, Clone, Serialize, Deserialize, Default)]
14#[serde(rename_all = "PascalCase")]
15pub struct VpcOriginEndpointConfig {
16 pub name: String,
17 pub arn: String,
18 #[serde(rename = "HTTPPort")]
19 pub http_port: i32,
20 #[serde(rename = "HTTPSPort")]
21 pub https_port: i32,
22 pub origin_protocol_policy: String,
23 #[serde(default, skip_serializing_if = "skip_if_none")]
24 pub origin_ssl_protocols: Option<OriginSslProtocols>,
25}
26
27#[derive(Debug, Clone, Serialize, Deserialize, Default)]
28#[serde(rename_all = "PascalCase")]
29pub struct OriginSslProtocols {
30 pub quantity: i32,
31 pub items: SslProtocolItems,
32}
33
34#[derive(Debug, Clone, Serialize, Deserialize, Default)]
35#[serde(rename_all = "PascalCase")]
36pub struct SslProtocolItems {
37 #[serde(default, rename = "SslProtocol")]
38 pub ssl_protocol: Vec<String>,
39}
40
41#[derive(Debug, Clone, Serialize, Deserialize, Default)]
42#[serde(rename_all = "PascalCase")]
43pub struct CreateVpcOriginRequest {
44 pub vpc_origin_endpoint_config: VpcOriginEndpointConfig,
45}
46
47#[derive(Debug, Clone, Serialize, Deserialize)]
48pub struct StoredVpcOrigin {
49 pub id: String,
50 pub arn: String,
51 pub status: String,
52 pub etag: String,
53 pub created_time: DateTime<Utc>,
54 pub last_modified_time: DateTime<Utc>,
55 pub config: VpcOriginEndpointConfig,
56}
57
58#[derive(Debug, Clone, Serialize, Deserialize, Default)]
61#[serde(rename_all = "PascalCase")]
62pub struct CreateAnycastIpListRequest {
63 pub name: String,
64 pub ip_count: i32,
65 #[serde(default, skip_serializing_if = "skip_if_none")]
66 pub ip_address_type: Option<String>,
67 #[serde(default, skip_serializing_if = "skip_if_none")]
68 pub ipam_cidr_configs: Option<IpamCidrConfigList>,
69}
70
71#[derive(Debug, Clone, Serialize, Deserialize, Default)]
72#[serde(rename_all = "PascalCase")]
73pub struct UpdateAnycastIpListRequest {
74 #[serde(default, skip_serializing_if = "skip_if_none")]
75 pub ip_address_type: Option<String>,
76 #[serde(default, skip_serializing_if = "skip_if_none")]
77 pub ipam_cidr_configs: Option<IpamCidrConfigList>,
78}
79
80#[derive(Debug, Clone, Serialize, Deserialize, Default)]
81#[serde(rename_all = "PascalCase")]
82pub struct IpamCidrConfigList {
83 #[serde(default, rename = "IpamCidrConfig")]
84 pub ipam_cidr_config: Vec<IpamCidrConfig>,
85}
86
87#[derive(Debug, Clone, Serialize, Deserialize, Default)]
88#[serde(rename_all = "PascalCase")]
89pub struct IpamCidrConfig {
90 pub ipv4_pool_id: String,
91 pub allocation_size: i32,
92}
93
94#[derive(Debug, Clone, Serialize, Deserialize)]
95pub struct StoredAnycastIpList {
96 pub id: String,
97 pub name: String,
98 pub status: String,
99 pub arn: String,
100 pub ip_count: i32,
101 pub ip_address_type: Option<String>,
102 pub anycast_ips: Vec<String>,
103 pub last_modified_time: DateTime<Utc>,
104 pub etag: String,
105}
106
107#[derive(Debug, Clone, Serialize, Deserialize, Default)]
110#[serde(rename_all = "PascalCase")]
111pub struct CreateTrustStoreRequest {
112 pub name: String,
113 pub ca_certificates_bundle_source: CaCertificatesBundleSource,
114}
115
116#[derive(Debug, Clone, Serialize, Deserialize, Default)]
117#[serde(rename_all = "PascalCase")]
118pub struct CaCertificatesBundleSource {
119 #[serde(default, skip_serializing_if = "skip_if_none")]
120 pub ca_certificates_bundle_s3_location: Option<CaCertificatesBundleS3Location>,
121}
122
123#[derive(Debug, Clone, Serialize, Deserialize, Default)]
124#[serde(rename_all = "PascalCase")]
125pub struct CaCertificatesBundleS3Location {
126 pub bucket: String,
127 pub key: String,
128 pub region: String,
129 #[serde(default, skip_serializing_if = "skip_if_none")]
130 pub version: Option<String>,
131}
132
133#[derive(Debug, Clone, Serialize, Deserialize)]
134pub struct StoredTrustStore {
135 pub id: String,
136 pub arn: String,
137 pub name: String,
138 pub etag: String,
139 pub last_modified_time: DateTime<Utc>,
140 pub ca_certificates_bundle_source: CaCertificatesBundleSource,
141}
142
143#[derive(Debug, Clone, Serialize, Deserialize, Default)]
146#[serde(rename_all = "PascalCase")]
147pub struct ResourcePolicyRequest {
148 pub resource_arn: String,
149 #[serde(default, skip_serializing_if = "skip_if_none")]
150 pub policy_document: Option<String>,
151}
152
153#[derive(Debug, Clone, Serialize, Deserialize)]
154pub struct StoredResourcePolicy {
155 pub resource_arn: String,
156 pub policy_document: String,
157}