1use chrono::{DateTime, Utc};
6use serde::{Deserialize, Serialize};
7
8fn skip_if_none<T>(x: &Option<T>) -> bool {
9 x.is_none()
10}
11
12#[derive(Debug, Clone, Serialize, Deserialize, Default)]
15#[serde(rename_all = "PascalCase")]
16pub struct FunctionConfig {
17 #[serde(default, skip_serializing_if = "skip_if_none")]
18 pub comment: Option<String>,
19 pub runtime: String,
20 #[serde(default, skip_serializing_if = "skip_if_none")]
21 pub key_value_store_associations: Option<KeyValueStoreAssociations>,
22}
23
24#[derive(Debug, Clone, Serialize, Deserialize, Default)]
25#[serde(rename_all = "PascalCase")]
26pub struct KeyValueStoreAssociations {
27 pub quantity: i32,
28 #[serde(default, skip_serializing_if = "skip_if_none")]
29 pub items: Option<KeyValueStoreAssociationItems>,
30}
31
32#[derive(Debug, Clone, Serialize, Deserialize, Default)]
33#[serde(rename_all = "PascalCase")]
34pub struct KeyValueStoreAssociationItems {
35 #[serde(default, rename = "KeyValueStoreAssociation")]
36 pub key_value_store_association: Vec<KeyValueStoreAssociation>,
37}
38
39#[derive(Debug, Clone, Serialize, Deserialize, Default)]
40#[serde(rename_all = "PascalCase")]
41pub struct KeyValueStoreAssociation {
42 pub key_value_store_arn: String,
43}
44
45#[derive(Debug, Clone, Serialize, Deserialize)]
46pub struct StoredFunction {
47 pub name: String,
48 pub etag: String,
49 pub status: String,
50 pub stage: String,
52 pub function_arn: String,
53 pub created_time: DateTime<Utc>,
54 pub last_modified_time: DateTime<Utc>,
55 pub config: FunctionConfig,
56 pub function_code: String,
58}
59
60#[derive(Debug, Clone, Serialize, Deserialize, Default)]
63#[serde(rename_all = "PascalCase")]
64pub struct PublicKeyConfig {
65 pub caller_reference: String,
66 pub name: String,
67 pub encoded_key: String,
68 #[serde(default, skip_serializing_if = "skip_if_none")]
69 pub comment: Option<String>,
70}
71
72#[derive(Debug, Clone, Serialize, Deserialize)]
73pub struct StoredPublicKey {
74 pub id: String,
75 pub etag: String,
76 pub created_time: DateTime<Utc>,
77 pub config: PublicKeyConfig,
78}
79
80#[derive(Debug, Clone, Serialize, Deserialize, Default)]
83#[serde(rename_all = "PascalCase")]
84pub struct KeyGroupConfig {
85 pub name: String,
86 pub items: KeyGroupItems,
87 #[serde(default, skip_serializing_if = "skip_if_none")]
88 pub comment: Option<String>,
89}
90
91#[derive(Debug, Clone, Serialize, Deserialize, Default)]
92#[serde(rename_all = "PascalCase")]
93pub struct KeyGroupItems {
94 #[serde(default, rename = "PublicKey")]
95 pub public_key: Vec<String>,
96}
97
98#[derive(Debug, Clone, Serialize, Deserialize)]
99pub struct StoredKeyGroup {
100 pub id: String,
101 pub etag: String,
102 pub last_modified_time: DateTime<Utc>,
103 pub config: KeyGroupConfig,
104}
105
106#[derive(Debug, Clone, Serialize, Deserialize, Default)]
109#[serde(rename_all = "PascalCase")]
110pub struct ImportSource {
111 #[serde(default)]
112 pub source_type: String,
113 #[serde(default)]
114 pub source_arn: String,
115}
116
117#[derive(Debug, Clone, Serialize, Deserialize)]
118pub struct StoredKeyValueStore {
119 pub name: String,
120 pub id: String,
121 pub etag: String,
122 pub arn: String,
123 pub status: String,
124 pub created_time: DateTime<Utc>,
125 pub last_modified_time: DateTime<Utc>,
126 pub comment: Option<String>,
127 pub import_source: Option<ImportSource>,
128}
129
130#[derive(Debug, Clone, Serialize, Deserialize, Default)]
133#[serde(rename_all = "PascalCase")]
134pub struct CloudFrontOriginAccessIdentityConfig {
135 pub caller_reference: String,
136 pub comment: String,
137}
138
139#[derive(Debug, Clone, Serialize, Deserialize)]
140pub struct StoredOriginAccessIdentity {
141 pub id: String,
142 pub etag: String,
143 pub s3_canonical_user_id: String,
144 pub config: CloudFrontOriginAccessIdentityConfig,
145}
146
147#[derive(Debug, Clone, Serialize, Deserialize, Default)]
150#[serde(rename_all = "PascalCase")]
151pub struct MonitoringSubscriptionBody {
152 pub realtime_metrics_subscription_config: RealtimeMetricsSubscriptionConfig,
153}
154
155#[derive(Debug, Clone, Serialize, Deserialize, Default)]
156#[serde(rename_all = "PascalCase")]
157pub struct RealtimeMetricsSubscriptionConfig {
158 pub realtime_metrics_subscription_status: String,
159}
160
161#[derive(Debug, Clone, Serialize, Deserialize)]
162pub struct StoredMonitoringSubscription {
163 pub distribution_id: String,
164 pub config: RealtimeMetricsSubscriptionConfig,
165}