@stacksjs/ts-cloud-aws-types 0.1.5 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,140 @@
1
+ import type { Tag } from './common';
2
+ export declare interface OpenSearchDomain {
3
+ Type: 'AWS::OpenSearchService::Domain'
4
+ Properties: {
5
+ DomainName?: string
6
+ EngineVersion?: string // e.g., 'OpenSearch_2.11', 'Elasticsearch_7.10'
7
+
8
+ // Cluster configuration
9
+ ClusterConfig?: {
10
+ InstanceType?: string // e.g., 't3.small.search', 'm6g.large.search'
11
+ InstanceCount?: number
12
+ DedicatedMasterEnabled?: boolean
13
+ DedicatedMasterType?: string
14
+ DedicatedMasterCount?: number
15
+ ZoneAwarenessEnabled?: boolean
16
+ ZoneAwarenessConfig?: {
17
+ AvailabilityZoneCount?: number
18
+ }
19
+ WarmEnabled?: boolean
20
+ WarmType?: string
21
+ WarmCount?: number
22
+ ColdStorageOptions?: {
23
+ Enabled?: boolean
24
+ }
25
+ }
26
+
27
+ // Storage
28
+ EBSOptions?: {
29
+ EBSEnabled?: boolean
30
+ VolumeType?: 'gp2' | 'gp3' | 'io1' | 'standard'
31
+ VolumeSize?: number // in GiB
32
+ Iops?: number
33
+ Throughput?: number
34
+ }
35
+
36
+ // Access control
37
+ AccessPolicies?: Record<string, any> | string
38
+
39
+ // Encryption
40
+ EncryptionAtRestOptions?: {
41
+ Enabled?: boolean
42
+ KmsKeyId?: string | { Ref: string }
43
+ }
44
+ NodeToNodeEncryptionOptions?: {
45
+ Enabled?: boolean
46
+ }
47
+ DomainEndpointOptions?: {
48
+ EnforceHTTPS?: boolean
49
+ TLSSecurityPolicy?: 'Policy-Min-TLS-1-0-2019-07' | 'Policy-Min-TLS-1-2-2019-07'
50
+ CustomEndpointEnabled?: boolean
51
+ CustomEndpoint?: string
52
+ CustomEndpointCertificateArn?: string | { Ref: string }
53
+ }
54
+
55
+ // Advanced security
56
+ AdvancedSecurityOptions?: {
57
+ Enabled?: boolean
58
+ InternalUserDatabaseEnabled?: boolean
59
+ MasterUserOptions?: {
60
+ MasterUserARN?: string | { Ref: string }
61
+ MasterUserName?: string
62
+ MasterUserPassword?: string
63
+ }
64
+ SAMLOptions?: {
65
+ Enabled?: boolean
66
+ Idp?: {
67
+ EntityId: string
68
+ MetadataContent: string
69
+ }
70
+ MasterBackendRole?: string
71
+ MasterUserName?: string
72
+ RolesKey?: string
73
+ SessionTimeoutMinutes?: number
74
+ SubjectKey?: string
75
+ }
76
+ }
77
+
78
+ // VPC configuration
79
+ VPCOptions?: {
80
+ SubnetIds?: Array<string | { Ref: string }>
81
+ SecurityGroupIds?: Array<string | { Ref: string }>
82
+ }
83
+
84
+ // Snapshot configuration
85
+ SnapshotOptions?: {
86
+ AutomatedSnapshotStartHour?: number
87
+ }
88
+
89
+ // Advanced options
90
+ AdvancedOptions?: Record<string, string>
91
+
92
+ // Logging
93
+ LogPublishingOptions?: {
94
+ [key: string]: {
95
+ CloudWatchLogsLogGroupArn: string | { Ref: string }
96
+ Enabled?: boolean
97
+ }
98
+ }
99
+
100
+ // Auto-Tune
101
+ AutoTuneOptions?: {
102
+ DesiredState?: 'ENABLED' | 'DISABLED'
103
+ MaintenanceSchedules?: Array<{
104
+ StartAt?: string
105
+ Duration?: {
106
+ Value?: number
107
+ Unit?: 'HOURS'
108
+ }
109
+ CronExpressionForRecurrence?: string
110
+ }>
111
+ }
112
+
113
+ // Software update options
114
+ SoftwareUpdateOptions?: {
115
+ AutoSoftwareUpdateEnabled?: boolean
116
+ }
117
+
118
+ // Off-peak window
119
+ OffPeakWindowOptions?: {
120
+ Enabled?: boolean
121
+ OffPeakWindow?: {
122
+ WindowStartTime?: {
123
+ Hours: number
124
+ Minutes: number
125
+ }
126
+ }
127
+ }
128
+
129
+ Tags?: Tag[]
130
+ }
131
+ DeletionPolicy?: 'Delete' | 'Retain' | 'Snapshot'
132
+ UpdateReplacePolicy?: 'Delete' | 'Retain' | 'Snapshot'
133
+ }
134
+ export declare interface OpenSearchDomainPolicy {
135
+ Type: 'AWS::OpenSearchService::DomainPolicy'
136
+ Properties: {
137
+ DomainName: string | { Ref: string }
138
+ AccessPolicies: Record<string, any> | string
139
+ }
140
+ }
@@ -0,0 +1,418 @@
1
+ import type { ResourceBase, Tags } from './common';
2
+ /**
3
+ * Pinpoint Application
4
+ */
5
+ export declare interface PinpointApp extends ResourceBase {
6
+ Type: 'AWS::Pinpoint::App'
7
+ Properties: {
8
+ Name: string
9
+ Tags?: Record<string, string>
10
+ }
11
+ }
12
+ /**
13
+ * Pinpoint SMS Channel
14
+ */
15
+ export declare interface PinpointSMSChannel extends ResourceBase {
16
+ Type: 'AWS::Pinpoint::SMSChannel'
17
+ Properties: {
18
+ ApplicationId: string
19
+ Enabled?: boolean
20
+ SenderId?: string
21
+ ShortCode?: string
22
+ }
23
+ }
24
+ /**
25
+ * Pinpoint Email Channel
26
+ */
27
+ export declare interface PinpointEmailChannel extends ResourceBase {
28
+ Type: 'AWS::Pinpoint::EmailChannel'
29
+ Properties: {
30
+ ApplicationId: string
31
+ FromAddress: string
32
+ Identity: string
33
+ ConfigurationSet?: string
34
+ Enabled?: boolean
35
+ RoleArn?: string
36
+ }
37
+ }
38
+ /**
39
+ * Pinpoint Voice Channel
40
+ */
41
+ export declare interface PinpointVoiceChannel extends ResourceBase {
42
+ Type: 'AWS::Pinpoint::VoiceChannel'
43
+ Properties: {
44
+ ApplicationId: string
45
+ Enabled?: boolean
46
+ }
47
+ }
48
+ /**
49
+ * Pinpoint APNs Channel (Apple Push Notifications)
50
+ */
51
+ export declare interface PinpointAPNsChannel extends ResourceBase {
52
+ Type: 'AWS::Pinpoint::APNsChannel'
53
+ Properties: {
54
+ ApplicationId: string
55
+ BundleId?: string
56
+ Certificate?: string
57
+ DefaultAuthenticationMethod?: string
58
+ Enabled?: boolean
59
+ PrivateKey?: string
60
+ TeamId?: string
61
+ TokenKey?: string
62
+ TokenKeyId?: string
63
+ }
64
+ }
65
+ /**
66
+ * Pinpoint GCM Channel (Google Cloud Messaging / Firebase)
67
+ */
68
+ export declare interface PinpointGCMChannel extends ResourceBase {
69
+ Type: 'AWS::Pinpoint::GCMChannel'
70
+ Properties: {
71
+ ApplicationId: string
72
+ ApiKey?: string
73
+ DefaultAuthenticationMethod?: string
74
+ Enabled?: boolean
75
+ ServiceJson?: string
76
+ }
77
+ }
78
+ /**
79
+ * Pinpoint Baidu Channel
80
+ */
81
+ export declare interface PinpointBaiduChannel extends ResourceBase {
82
+ Type: 'AWS::Pinpoint::BaiduChannel'
83
+ Properties: {
84
+ ApplicationId: string
85
+ ApiKey: string
86
+ SecretKey: string
87
+ Enabled?: boolean
88
+ }
89
+ }
90
+ /**
91
+ * Pinpoint ADM Channel (Amazon Device Messaging)
92
+ */
93
+ export declare interface PinpointADMChannel extends ResourceBase {
94
+ Type: 'AWS::Pinpoint::ADMChannel'
95
+ Properties: {
96
+ ApplicationId: string
97
+ ClientId: string
98
+ ClientSecret: string
99
+ Enabled?: boolean
100
+ }
101
+ }
102
+ /**
103
+ * Pinpoint Campaign
104
+ */
105
+ export declare interface PinpointCampaign extends ResourceBase {
106
+ Type: 'AWS::Pinpoint::Campaign'
107
+ Properties: {
108
+ ApplicationId: string
109
+ Name: string
110
+ SegmentId: string
111
+ MessageConfiguration: {
112
+ SMSMessage?: {
113
+ Body?: string
114
+ MessageType?: 'TRANSACTIONAL' | 'PROMOTIONAL'
115
+ OriginationNumber?: string
116
+ SenderId?: string
117
+ EntityId?: string
118
+ TemplateId?: string
119
+ }
120
+ EmailMessage?: {
121
+ Body?: string
122
+ FromAddress?: string
123
+ HtmlBody?: string
124
+ Title?: string
125
+ }
126
+ DefaultMessage?: {
127
+ Body?: string
128
+ Substitutions?: Record<string, string[]>
129
+ }
130
+ InAppMessage?: {
131
+ Content?: Array<{
132
+ BackgroundColor?: string
133
+ BodyConfig?: {
134
+ Alignment: 'LEFT' | 'CENTER' | 'RIGHT'
135
+ Body: string
136
+ TextColor: string
137
+ }
138
+ HeaderConfig?: {
139
+ Alignment: 'LEFT' | 'CENTER' | 'RIGHT'
140
+ Header: string
141
+ TextColor: string
142
+ }
143
+ ImageUrl?: string
144
+ PrimaryBtn?: {
145
+ DefaultConfig: {
146
+ BackgroundColor?: string
147
+ BorderRadius?: number
148
+ ButtonAction: 'LINK' | 'DEEP_LINK' | 'CLOSE'
149
+ Link?: string
150
+ Text: string
151
+ TextColor?: string
152
+ }
153
+ }
154
+ SecondaryBtn?: {
155
+ DefaultConfig: {
156
+ BackgroundColor?: string
157
+ BorderRadius?: number
158
+ ButtonAction: 'LINK' | 'DEEP_LINK' | 'CLOSE'
159
+ Link?: string
160
+ Text: string
161
+ TextColor?: string
162
+ }
163
+ }
164
+ }>
165
+ Layout?: 'BOTTOM_BANNER' | 'TOP_BANNER' | 'OVERLAYS' | 'MOBILE_FEED' | 'MIDDLE_BANNER' | 'CAROUSEL'
166
+ }
167
+ }
168
+ Schedule: {
169
+ EndTime?: string
170
+ EventFilter?: {
171
+ Dimensions: {
172
+ Attributes?: Record<string, { AttributeType: string; Values: string[] }>
173
+ EventType?: { DimensionType: string; Values: string[] }
174
+ Metrics?: Record<string, { ComparisonOperator: string; Value: number }>
175
+ }
176
+ FilterType: 'SYSTEM' | 'ENDPOINT'
177
+ }
178
+ Frequency?: 'ONCE' | 'HOURLY' | 'DAILY' | 'WEEKLY' | 'MONTHLY' | 'EVENT' | 'IN_APP_EVENT'
179
+ IsLocalTime?: boolean
180
+ QuietTime?: { End: string; Start: string }
181
+ StartTime?: string
182
+ Timezone?: string
183
+ }
184
+ AdditionalTreatments?: Array<{
185
+ MessageConfiguration: any
186
+ Schedule: any
187
+ SizePercent: number
188
+ TreatmentDescription?: string
189
+ TreatmentName?: string
190
+ }>
191
+ CampaignHook?: {
192
+ LambdaFunctionName?: string
193
+ Mode?: 'DELIVERY' | 'FILTER'
194
+ WebUrl?: string
195
+ }
196
+ CustomDeliveryConfiguration?: {
197
+ DeliveryUri: string
198
+ EndpointTypes?: string[]
199
+ }
200
+ Description?: string
201
+ HoldoutPercent?: number
202
+ IsPaused?: boolean
203
+ Limits?: {
204
+ Daily?: number
205
+ MaximumDuration?: number
206
+ MessagesPerSecond?: number
207
+ Session?: number
208
+ Total?: number
209
+ }
210
+ Priority?: number
211
+ SegmentVersion?: number
212
+ Tags?: Record<string, string>
213
+ TemplateConfiguration?: {
214
+ EmailTemplate?: { Name?: string; Version?: string }
215
+ PushTemplate?: { Name?: string; Version?: string }
216
+ SMSTemplate?: { Name?: string; Version?: string }
217
+ VoiceTemplate?: { Name?: string; Version?: string }
218
+ }
219
+ TreatmentDescription?: string
220
+ TreatmentName?: string
221
+ }
222
+ }
223
+ /**
224
+ * Pinpoint Segment
225
+ */
226
+ export declare interface PinpointSegment extends ResourceBase {
227
+ Type: 'AWS::Pinpoint::Segment'
228
+ Properties: {
229
+ ApplicationId: string
230
+ Name: string
231
+ Dimensions?: {
232
+ Attributes?: Record<string, { AttributeType: string; Values: string[] }>
233
+ Behavior?: {
234
+ Recency?: {
235
+ Duration: 'HR_24' | 'DAY_7' | 'DAY_14' | 'DAY_30'
236
+ RecencyType: 'ACTIVE' | 'INACTIVE'
237
+ }
238
+ }
239
+ Demographic?: {
240
+ AppVersion?: { DimensionType: string; Values: string[] }
241
+ Channel?: { DimensionType: string; Values: string[] }
242
+ DeviceType?: { DimensionType: string; Values: string[] }
243
+ Make?: { DimensionType: string; Values: string[] }
244
+ Model?: { DimensionType: string; Values: string[] }
245
+ Platform?: { DimensionType: string; Values: string[] }
246
+ }
247
+ Location?: {
248
+ Country?: { DimensionType: string; Values: string[] }
249
+ GPSPoint?: {
250
+ Coordinates: { Latitude: number; Longitude: number }
251
+ RangeInKilometers: number
252
+ }
253
+ }
254
+ Metrics?: Record<string, { ComparisonOperator: string; Value: number }>
255
+ UserAttributes?: Record<string, { AttributeType: string; Values: string[] }>
256
+ }
257
+ SegmentGroups?: {
258
+ Groups?: Array<{
259
+ Dimensions?: any[]
260
+ SourceSegments?: Array<{ Id: string; Version?: number }>
261
+ SourceType?: 'ALL' | 'ANY' | 'NONE'
262
+ Type?: 'ALL' | 'ANY' | 'NONE'
263
+ }>
264
+ Include?: 'ALL' | 'ANY' | 'NONE'
265
+ }
266
+ Tags?: Record<string, string>
267
+ }
268
+ }
269
+ /**
270
+ * Pinpoint Email Template
271
+ */
272
+ export declare interface PinpointEmailTemplate extends ResourceBase {
273
+ Type: 'AWS::Pinpoint::EmailTemplate'
274
+ Properties: {
275
+ TemplateName: string
276
+ Subject: string
277
+ DefaultSubstitutions?: string
278
+ HtmlPart?: string
279
+ Tags?: Record<string, string>
280
+ TemplateDescription?: string
281
+ TextPart?: string
282
+ }
283
+ }
284
+ /**
285
+ * Pinpoint SMS Template
286
+ */
287
+ export declare interface PinpointSmsTemplate extends ResourceBase {
288
+ Type: 'AWS::Pinpoint::SmsTemplate'
289
+ Properties: {
290
+ TemplateName: string
291
+ Body: string
292
+ DefaultSubstitutions?: string
293
+ Tags?: Record<string, string>
294
+ TemplateDescription?: string
295
+ }
296
+ }
297
+ /**
298
+ * Pinpoint Push Template
299
+ */
300
+ export declare interface PinpointPushTemplate extends ResourceBase {
301
+ Type: 'AWS::Pinpoint::PushTemplate'
302
+ Properties: {
303
+ TemplateName: string
304
+ ADM?: {
305
+ Action?: 'OPEN_APP' | 'DEEP_LINK' | 'URL'
306
+ Body?: string
307
+ ImageIconUrl?: string
308
+ ImageUrl?: string
309
+ SmallImageIconUrl?: string
310
+ Sound?: string
311
+ Title?: string
312
+ Url?: string
313
+ }
314
+ APNS?: {
315
+ Action?: 'OPEN_APP' | 'DEEP_LINK' | 'URL'
316
+ Body?: string
317
+ MediaUrl?: string
318
+ Sound?: string
319
+ Title?: string
320
+ Url?: string
321
+ }
322
+ Baidu?: {
323
+ Action?: 'OPEN_APP' | 'DEEP_LINK' | 'URL'
324
+ Body?: string
325
+ ImageIconUrl?: string
326
+ ImageUrl?: string
327
+ SmallImageIconUrl?: string
328
+ Sound?: string
329
+ Title?: string
330
+ Url?: string
331
+ }
332
+ Default?: {
333
+ Action?: 'OPEN_APP' | 'DEEP_LINK' | 'URL'
334
+ Body?: string
335
+ Sound?: string
336
+ Title?: string
337
+ Url?: string
338
+ }
339
+ DefaultSubstitutions?: string
340
+ GCM?: {
341
+ Action?: 'OPEN_APP' | 'DEEP_LINK' | 'URL'
342
+ Body?: string
343
+ ImageIconUrl?: string
344
+ ImageUrl?: string
345
+ SmallImageIconUrl?: string
346
+ Sound?: string
347
+ Title?: string
348
+ Url?: string
349
+ }
350
+ Tags?: Record<string, string>
351
+ TemplateDescription?: string
352
+ }
353
+ }
354
+ /**
355
+ * Pinpoint In-App Template
356
+ */
357
+ export declare interface PinpointInAppTemplate extends ResourceBase {
358
+ Type: 'AWS::Pinpoint::InAppTemplate'
359
+ Properties: {
360
+ TemplateName: string
361
+ Content?: Array<{
362
+ BackgroundColor?: string
363
+ BodyConfig?: {
364
+ Alignment: 'LEFT' | 'CENTER' | 'RIGHT'
365
+ Body: string
366
+ TextColor: string
367
+ }
368
+ HeaderConfig?: {
369
+ Alignment: 'LEFT' | 'CENTER' | 'RIGHT'
370
+ Header: string
371
+ TextColor: string
372
+ }
373
+ ImageUrl?: string
374
+ PrimaryBtn?: any
375
+ SecondaryBtn?: any
376
+ }>
377
+ CustomConfig?: Record<string, string>
378
+ Layout?: 'BOTTOM_BANNER' | 'TOP_BANNER' | 'OVERLAYS' | 'MOBILE_FEED' | 'MIDDLE_BANNER' | 'CAROUSEL'
379
+ Tags?: Record<string, string>
380
+ TemplateDescription?: string
381
+ }
382
+ }
383
+ /**
384
+ * Pinpoint Event Stream
385
+ */
386
+ export declare interface PinpointEventStream extends ResourceBase {
387
+ Type: 'AWS::Pinpoint::EventStream'
388
+ Properties: {
389
+ ApplicationId: string
390
+ DestinationStreamArn: string
391
+ RoleArn: string
392
+ }
393
+ }
394
+ /**
395
+ * Pinpoint Application Settings
396
+ */
397
+ export declare interface PinpointApplicationSettings extends ResourceBase {
398
+ Type: 'AWS::Pinpoint::ApplicationSettings'
399
+ Properties: {
400
+ ApplicationId: string
401
+ CampaignHook?: {
402
+ LambdaFunctionName?: string
403
+ Mode?: 'DELIVERY' | 'FILTER'
404
+ WebUrl?: string
405
+ }
406
+ CloudWatchMetricsEnabled?: boolean
407
+ Limits?: {
408
+ Daily?: number
409
+ MaximumDuration?: number
410
+ MessagesPerSecond?: number
411
+ Total?: number
412
+ }
413
+ QuietTime?: {
414
+ End: string
415
+ Start: string
416
+ }
417
+ }
418
+ }
@@ -0,0 +1,59 @@
1
+ import type { Tag } from './common';
2
+ export declare interface DBProxy {
3
+ Type: 'AWS::RDS::DBProxy'
4
+ Properties: {
5
+ DBProxyName: string
6
+ EngineFamily: 'MYSQL' | 'POSTGRESQL' | 'SQLSERVER'
7
+ Auth: Array<{
8
+ AuthScheme?: 'SECRETS'
9
+ ClientPasswordAuthType?: 'MYSQL_NATIVE_PASSWORD' | 'POSTGRES_SCRAM_SHA_256' | 'POSTGRES_MD5' | 'SQL_SERVER_AUTHENTICATION'
10
+ Description?: string
11
+ IAMAuth?: 'DISABLED' | 'REQUIRED' | 'ENABLED'
12
+ SecretArn?: string | { Ref: string }
13
+ }>
14
+ RoleArn: string | { Ref: string }
15
+ VpcSubnetIds: Array<string | { Ref: string }>
16
+
17
+ // Optional configurations
18
+ VpcSecurityGroupIds?: Array<string | { Ref: string }>
19
+ RequireTLS?: boolean
20
+ IdleClientTimeout?: number // in seconds (default: 1800, max: 28800)
21
+ DebugLogging?: boolean
22
+
23
+ Tags?: Tag[]
24
+ }
25
+ DeletionPolicy?: 'Delete' | 'Retain'
26
+ UpdateReplacePolicy?: 'Delete' | 'Retain'
27
+ }
28
+ export declare interface DBProxyTargetGroup {
29
+ Type: 'AWS::RDS::DBProxyTargetGroup'
30
+ Properties: {
31
+ DBProxyName: string | { Ref: string }
32
+ TargetGroupName: 'default' // Currently only 'default' is supported
33
+ DBInstanceIdentifiers?: Array<string | { Ref: string }>
34
+ DBClusterIdentifiers?: Array<string | { Ref: string }>
35
+
36
+ // Connection pool configuration
37
+ ConnectionPoolConfig?: {
38
+ MaxConnectionsPercent?: number // 1-100 (default: 100)
39
+ MaxIdleConnectionsPercent?: number // 0-MaxConnectionsPercent
40
+ ConnectionBorrowTimeout?: number // in seconds (default: 120)
41
+ SessionPinningFilters?: Array<string> // e.g., ['EXCLUDE_VARIABLE_SETS']
42
+ InitQuery?: string
43
+ }
44
+ }
45
+ DependsOn?: string | string[]
46
+ }
47
+ export declare interface DBProxyEndpoint {
48
+ Type: 'AWS::RDS::DBProxyEndpoint'
49
+ Properties: {
50
+ DBProxyName: string | { Ref: string }
51
+ DBProxyEndpointName: string
52
+ VpcSubnetIds: Array<string | { Ref: string }>
53
+ TargetRole?: 'READ_WRITE' | 'READ_ONLY'
54
+ VpcSecurityGroupIds?: Array<string | { Ref: string }>
55
+
56
+ Tags?: Tag[]
57
+ }
58
+ DependsOn?: string | string[]
59
+ }
package/dist/rds.d.ts ADDED
@@ -0,0 +1,58 @@
1
+ import type { CloudFormationResource } from './index';
2
+ export declare interface RDSDBInstance extends CloudFormationResource {
3
+ Type: 'AWS::RDS::DBInstance'
4
+ Properties: {
5
+ DBInstanceIdentifier?: string
6
+ DBInstanceClass: string
7
+ Engine?: 'mysql' | 'postgres' | 'mariadb' | 'oracle-ee' | 'oracle-se2' | 'oracle-se1' | 'oracle-se' | 'sqlserver-ee' | 'sqlserver-se' | 'sqlserver-ex' | 'sqlserver-web'
8
+ SourceDBInstanceIdentifier?: string
9
+ EngineVersion?: string
10
+ MasterUsername?: string
11
+ MasterUserPassword?: string
12
+ AllocatedStorage?: number
13
+ StorageType?: 'gp2' | 'gp3' | 'io1' | 'io2' | 'standard'
14
+ StorageEncrypted?: boolean
15
+ KmsKeyId?: string
16
+ DBName?: string
17
+ DBSubnetGroupName?: string | { Ref: string }
18
+ VPCSecurityGroups?: string[]
19
+ PubliclyAccessible?: boolean
20
+ BackupRetentionPeriod?: number
21
+ PreferredBackupWindow?: string
22
+ PreferredMaintenanceWindow?: string
23
+ MultiAZ?: boolean
24
+ AutoMinorVersionUpgrade?: boolean
25
+ DeletionProtection?: boolean
26
+ EnableCloudwatchLogsExports?: string[]
27
+ DBParameterGroupName?: string | { Ref: string }
28
+ Tags?: Array<{
29
+ Key: string
30
+ Value: string
31
+ }>
32
+ }
33
+ }
34
+ export declare interface RDSDBSubnetGroup extends CloudFormationResource {
35
+ Type: 'AWS::RDS::DBSubnetGroup'
36
+ Properties: {
37
+ DBSubnetGroupName?: string
38
+ DBSubnetGroupDescription: string
39
+ SubnetIds: string[]
40
+ Tags?: Array<{
41
+ Key: string
42
+ Value: string
43
+ }>
44
+ }
45
+ }
46
+ export declare interface RDSDBParameterGroup extends CloudFormationResource {
47
+ Type: 'AWS::RDS::DBParameterGroup'
48
+ Properties: {
49
+ DBParameterGroupName?: string
50
+ Description: string
51
+ Family: string
52
+ Parameters?: Record<string, string>
53
+ Tags?: Array<{
54
+ Key: string
55
+ Value: string
56
+ }>
57
+ }
58
+ }
@@ -0,0 +1,30 @@
1
+ import type { CloudFormationResource } from './index';
2
+ export declare interface Route53HostedZone extends CloudFormationResource {
3
+ Type: 'AWS::Route53::HostedZone'
4
+ Properties: {
5
+ Name: string
6
+ HostedZoneConfig?: {
7
+ Comment?: string
8
+ }
9
+ HostedZoneTags?: Array<{
10
+ Key: string
11
+ Value: string
12
+ }>
13
+ }
14
+ }
15
+ export declare interface Route53RecordSet extends CloudFormationResource {
16
+ Type: 'AWS::Route53::RecordSet'
17
+ Properties: {
18
+ HostedZoneId?: string
19
+ HostedZoneName?: string
20
+ Name: string
21
+ Type: 'A' | 'AAAA' | 'CNAME' | 'MX' | 'NS' | 'PTR' | 'SOA' | 'SPF' | 'SRV' | 'TXT'
22
+ TTL?: number
23
+ ResourceRecords?: string[]
24
+ AliasTarget?: {
25
+ DNSName: string
26
+ EvaluateTargetHealth?: boolean
27
+ HostedZoneId: string
28
+ }
29
+ }
30
+ }