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 #[serde(default, skip_serializing_if = "skip_if_none")]
46 pub tags: Option<crate::model::Tags>,
47}
48
49#[derive(Debug, Clone, Serialize, Deserialize)]
50pub struct StoredVpcOrigin {
51 pub id: String,
52 pub arn: String,
53 pub status: String,
54 pub etag: String,
55 pub created_time: DateTime<Utc>,
56 pub last_modified_time: DateTime<Utc>,
57 pub config: VpcOriginEndpointConfig,
58}
59
60#[derive(Debug, Clone, Serialize, Deserialize, Default)]
63#[serde(rename_all = "PascalCase")]
64pub struct CreateAnycastIpListRequest {
65 pub name: String,
66 pub ip_count: i32,
67 #[serde(default, skip_serializing_if = "skip_if_none")]
68 pub ip_address_type: Option<String>,
69 #[serde(default, skip_serializing_if = "skip_if_none")]
70 pub ipam_cidr_configs: Option<IpamCidrConfigList>,
71 #[serde(default, skip_serializing_if = "skip_if_none")]
72 pub tags: Option<crate::model::Tags>,
73}
74
75#[derive(Debug, Clone, Serialize, Deserialize, Default)]
76#[serde(rename_all = "PascalCase")]
77pub struct UpdateAnycastIpListRequest {
78 #[serde(default, skip_serializing_if = "skip_if_none")]
79 pub ip_address_type: Option<String>,
80 #[serde(default, skip_serializing_if = "skip_if_none")]
81 pub ipam_cidr_configs: Option<IpamCidrConfigList>,
82}
83
84#[derive(Debug, Clone, Serialize, Deserialize, Default)]
85#[serde(rename_all = "PascalCase")]
86pub struct IpamCidrConfigList {
87 #[serde(default, rename = "IpamCidrConfig")]
88 pub ipam_cidr_config: Vec<IpamCidrConfig>,
89}
90
91#[derive(Debug, Clone, Serialize, Deserialize, Default)]
92#[serde(rename_all = "PascalCase")]
93pub struct IpamCidrConfig {
94 pub cidr: String,
95 pub ipam_pool_arn: String,
96 #[serde(default, skip_serializing_if = "skip_if_none")]
97 pub anycast_ip: Option<String>,
98 #[serde(default, skip_serializing_if = "skip_if_none")]
99 pub status: Option<String>,
100}
101
102#[derive(Debug, Clone, Serialize, Deserialize)]
103pub struct StoredAnycastIpList {
104 pub id: String,
105 pub name: String,
106 pub status: String,
107 pub arn: String,
108 pub ip_count: i32,
109 pub ip_address_type: Option<String>,
110 pub anycast_ips: Vec<String>,
111 pub last_modified_time: DateTime<Utc>,
112 pub etag: String,
113 #[serde(default)]
117 pub ipam_cidr_configs: Vec<IpamCidrConfig>,
118}
119
120#[derive(Debug, Clone, Serialize, Deserialize, Default)]
123#[serde(rename_all = "PascalCase")]
124pub struct CreateTrustStoreRequest {
125 pub name: String,
126 pub ca_certificates_bundle_source: CaCertificatesBundleSource,
127 #[serde(
128 rename = "UseClientCertificateOCSPEndpoint",
129 default,
130 skip_serializing_if = "skip_if_none"
131 )]
132 pub use_client_certificate_ocsp_endpoint: Option<bool>,
133 #[serde(default, skip_serializing_if = "skip_if_none")]
134 pub tags: Option<crate::model::Tags>,
135}
136
137#[derive(Debug, Clone, Serialize, Deserialize, Default)]
138#[serde(rename_all = "PascalCase")]
139pub struct CaCertificatesBundleSource {
140 #[serde(default, skip_serializing_if = "skip_if_none")]
141 pub ca_certificates_bundle_s3_location: Option<CaCertificatesBundleS3Location>,
142}
143
144#[derive(Debug, Clone, Serialize, Deserialize, Default)]
145#[serde(rename_all = "PascalCase")]
146pub struct CaCertificatesBundleS3Location {
147 pub bucket: String,
148 pub key: String,
149 pub region: String,
150 #[serde(default, skip_serializing_if = "skip_if_none")]
151 pub version: Option<String>,
152}
153
154#[derive(Debug, Clone, Serialize, Deserialize)]
155pub struct StoredTrustStore {
156 pub id: String,
157 pub arn: String,
158 pub name: String,
159 pub etag: String,
160 pub last_modified_time: DateTime<Utc>,
161 pub ca_certificates_bundle_source: CaCertificatesBundleSource,
162 #[serde(default)]
166 pub use_client_certificate_ocsp_endpoint: Option<bool>,
167}
168
169#[derive(Debug, Clone, Serialize, Deserialize, Default)]
172#[serde(rename_all = "PascalCase")]
173pub struct ResourcePolicyRequest {
174 pub resource_arn: String,
175 #[serde(default, skip_serializing_if = "skip_if_none")]
176 pub policy_document: Option<String>,
177}
178
179#[derive(Debug, Clone, Serialize, Deserialize)]
180pub struct StoredResourcePolicy {
181 pub resource_arn: String,
182 pub policy_document: String,
183}