rusty_cdk_core/appsync/
dto.rs1use serde_json::Value;
2use serde::{Deserialize, Serialize};
3use crate::{dto_methods, ref_struct};
4use crate::shared::Id;
5
6#[derive(Debug, Serialize, Deserialize)]
7pub(crate) enum AppSyncApiType {
8 #[serde(rename = "AWS::AppSync::Api")]
9 AppSyncApiType
10}
11
12ref_struct!(AppSyncApiRef);
13
14#[derive(Debug, Serialize, Deserialize)]
15pub struct AppSyncApi {
16 #[serde(skip)]
17 pub(crate) id: Id,
18 #[serde(skip)]
19 pub(crate) resource_id: String,
20 #[serde(rename = "Type")]
21 pub(crate) r#type: AppSyncApiType,
22 #[serde(rename = "Properties")]
23 pub(crate) properties: AppSyncApiProperties,
24}
25dto_methods!(AppSyncApi);
26
27#[derive(Debug, Serialize, Deserialize)]
28pub struct AppSyncApiProperties {
29 #[serde(rename = "Name")]
30 pub(crate) name: String,
31 #[serde(rename = "EventConfig", skip_serializing_if = "Option::is_none")]
32 pub(crate) event_config: Option<EventConfig>,
33}
34
35#[derive(Debug, Serialize, Deserialize)]
36pub struct EventConfig {
37 #[serde(rename = "AuthProviders")]
38 pub(crate) auth_providers: Vec<AuthProvider>,
39 #[serde(rename = "ConnectionAuthModes")]
40 pub(crate) connection_auth_modes: Vec<AppSyncAuthMode>,
41 #[serde(rename = "DefaultPublishAuthModes")]
42 pub(crate) default_auth_modes: Vec<AppSyncAuthMode>,
43 #[serde(rename = "DefaultSubscribeAuthModes")]
44 pub(crate) default_subscribe_auth_modes: Vec<AppSyncAuthMode>,
45 #[serde(rename = "LogConfig", skip_serializing_if = "Option::is_none")]
46 pub(crate) log_config: Option<EventLogConfig>,
47}
48
49#[derive(Debug, Serialize, Deserialize)]
50pub struct AuthProvider {
51 #[serde(rename = "AuthType")]
52 pub(crate) auth_type: String,
53 #[serde(rename = "CognitoConfig", skip_serializing_if = "Option::is_none")]
54 pub(crate) cognito_config: Option<CognitoConfig>,
55 #[serde(rename = "LambdaAuthorizerConfig", skip_serializing_if = "Option::is_none")]
56 pub(crate) lambda_auth_config: Option<LambdaAuthorizerConfig>,
57 #[serde(rename = "OpenIDConnectConfig", skip_serializing_if = "Option::is_none")]
58 pub(crate) open_id_connect_config: Option<OpenIDConnectConfig>,
59}
60
61#[derive(Debug, Serialize, Deserialize)]
62pub struct CognitoConfig {
63 #[serde(rename = "AwsRegion")]
64 pub(crate) aws_region: String,
65 #[serde(rename = "UserPoolId")]
66 pub(crate) user_pool_id: String,
67 }
69
70#[derive(Debug, Serialize, Deserialize)]
71pub struct LambdaAuthorizerConfig {
72 #[serde(rename = "AuthorizerResultTtlInSeconds", skip_serializing_if = "Option::is_none")]
73 pub(crate) authorizer_result_ttl_seconds: Option<u16>,
74 #[serde(rename = "AuthorizerUri")]
75 pub(crate) authorizer_uri: String,
76 }
78
79#[derive(Debug, Serialize, Deserialize)]
80pub struct OpenIDConnectConfig {
81 #[serde(rename = "AuthTTL", skip_serializing_if = "Option::is_none")]
82 pub(crate) auth_ttl_millis: Option<u32>,
83 #[serde(rename = "ClientId", skip_serializing_if = "Option::is_none")]
84 pub(crate) client_id: Option<String>,
85 #[serde(rename = "IatTTL", skip_serializing_if = "Option::is_none")]
86 pub(crate) iat_ttl_millis: Option<u32>,
87 #[serde(rename = "Issuer")]
88 pub(crate) issuer: String
89}
90
91#[derive(Debug, Serialize, Deserialize)]
92pub struct AppSyncAuthMode {
93 #[serde(rename = "AuthType", skip_serializing_if = "Option::is_none")]
94 pub(crate) auth_type: Option<String>
95}
96
97#[derive(Debug, Serialize, Deserialize)]
98pub struct EventLogConfig {
99 #[serde(rename = "CloudWatchLogsRoleArn")]
100 pub(crate) cloudwatch_logs_role_arn: String,
101 #[serde(rename = "LogLevel")]
102 pub(crate) log_level: String
103}
104
105#[derive(Debug, Serialize, Deserialize)]
106pub(crate) enum ChannelNamespaceType {
107 #[serde(rename = "AWS::AppSync::ChannelNamespace")]
108 ChannelNamespaceType
109}
110
111ref_struct!(ChannelNamespaceRef);
112
113#[derive(Debug, Serialize, Deserialize)]
114pub struct ChannelNamespace {
115 #[serde(skip)]
116 pub(crate) id: Id,
117 #[serde(skip)]
118 pub(crate) resource_id: String,
119 #[serde(rename = "Type")]
120 pub(crate) r#type: ChannelNamespaceType,
121 #[serde(rename = "Properties")]
122 pub(crate) properties: ChannelNamespaceProperties,
123}
124dto_methods!(ChannelNamespace);
125
126#[derive(Debug, Serialize, Deserialize)]
127pub struct ChannelNamespaceProperties {
128 #[serde(rename = "ApiId")]
129 pub(crate) api_id: Value,
130 #[serde(rename = "Name")]
131 pub(crate) name: String,
132 #[serde(rename = "PublishAuthModes", skip_serializing_if = "Option::is_none")]
133 pub(crate) publish_auth_modes: Option<Vec<AppSyncAuthMode>>,
134 #[serde(rename = "SubscribeAuthModes", skip_serializing_if = "Option::is_none")]
135 pub(crate) subscribe_auth_modes: Option<Vec<AppSyncAuthMode>>,
136 }