@stacksjs/ts-cloud-aws-types 0.1.1
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.
- package/LICENSE.md +21 -0
- package/README.md +321 -0
- package/package.json +27 -0
- package/src/acm.ts +20 -0
- package/src/alb.ts +73 -0
- package/src/apigateway.ts +85 -0
- package/src/appsync.ts +246 -0
- package/src/athena.ts +102 -0
- package/src/autoscaling.ts +201 -0
- package/src/backup.ts +187 -0
- package/src/cloudwatch.ts +98 -0
- package/src/codedeploy.ts +132 -0
- package/src/cognito.ts +216 -0
- package/src/common.ts +20 -0
- package/src/connect.ts +243 -0
- package/src/dynamodb.ts +64 -0
- package/src/ec2.ts +171 -0
- package/src/ecr.ts +129 -0
- package/src/ecs.ts +129 -0
- package/src/efs.ts +57 -0
- package/src/elasticache.ts +92 -0
- package/src/eventbridge.ts +140 -0
- package/src/globalaccelerator.ts +57 -0
- package/src/glue.ts +241 -0
- package/src/iam.ts +142 -0
- package/src/index.ts +328 -0
- package/src/kinesis.ts +261 -0
- package/src/kms.ts +35 -0
- package/src/lambda.ts +42 -0
- package/src/opensearch.ts +147 -0
- package/src/pinpoint.ts +438 -0
- package/src/rds-proxy.ts +67 -0
- package/src/rds.ts +61 -0
- package/src/route53.ts +32 -0
- package/src/secrets-manager.ts +110 -0
- package/src/ses.ts +66 -0
- package/src/sns.ts +45 -0
- package/src/sqs.ts +54 -0
- package/src/ssm.ts +268 -0
- package/src/waf.ts +81 -0
- package/tsconfig.json +12 -0
package/src/appsync.ts
ADDED
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AWS AppSync Types
|
|
3
|
+
* CloudFormation resource types for AWS AppSync (GraphQL)
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import type { Tag } from './common'
|
|
7
|
+
|
|
8
|
+
export interface GraphQLApi {
|
|
9
|
+
Type: 'AWS::AppSync::GraphQLApi'
|
|
10
|
+
Properties: {
|
|
11
|
+
Name: string
|
|
12
|
+
AuthenticationType: 'API_KEY' | 'AWS_IAM' | 'AMAZON_COGNITO_USER_POOLS' | 'OPENID_CONNECT' | 'AWS_LAMBDA'
|
|
13
|
+
|
|
14
|
+
// Optional authentication providers
|
|
15
|
+
AdditionalAuthenticationProviders?: Array<{
|
|
16
|
+
AuthenticationType: 'API_KEY' | 'AWS_IAM' | 'AMAZON_COGNITO_USER_POOLS' | 'OPENID_CONNECT' | 'AWS_LAMBDA'
|
|
17
|
+
UserPoolConfig?: {
|
|
18
|
+
UserPoolId: string | { Ref: string }
|
|
19
|
+
AwsRegion?: string
|
|
20
|
+
AppIdClientRegex?: string
|
|
21
|
+
}
|
|
22
|
+
OpenIDConnectConfig?: {
|
|
23
|
+
Issuer: string
|
|
24
|
+
ClientId?: string
|
|
25
|
+
IatTTL?: number
|
|
26
|
+
AuthTTL?: number
|
|
27
|
+
}
|
|
28
|
+
LambdaAuthorizerConfig?: {
|
|
29
|
+
AuthorizerUri: string | { Ref: string }
|
|
30
|
+
AuthorizerResultTtlInSeconds?: number
|
|
31
|
+
IdentityValidationExpression?: string
|
|
32
|
+
}
|
|
33
|
+
}>
|
|
34
|
+
|
|
35
|
+
// Cognito User Pool config (if using AMAZON_COGNITO_USER_POOLS)
|
|
36
|
+
UserPoolConfig?: {
|
|
37
|
+
UserPoolId: string | { Ref: string }
|
|
38
|
+
AwsRegion?: string
|
|
39
|
+
DefaultAction: 'ALLOW' | 'DENY'
|
|
40
|
+
AppIdClientRegex?: string
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// OpenID Connect config (if using OPENID_CONNECT)
|
|
44
|
+
OpenIDConnectConfig?: {
|
|
45
|
+
Issuer: string
|
|
46
|
+
ClientId?: string
|
|
47
|
+
IatTTL?: number
|
|
48
|
+
AuthTTL?: number
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Lambda authorizer config (if using AWS_LAMBDA)
|
|
52
|
+
LambdaAuthorizerConfig?: {
|
|
53
|
+
AuthorizerUri: string | { Ref: string }
|
|
54
|
+
AuthorizerResultTtlInSeconds?: number
|
|
55
|
+
IdentityValidationExpression?: string
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Logging
|
|
59
|
+
LogConfig?: {
|
|
60
|
+
CloudWatchLogsRoleArn: string | { Ref: string }
|
|
61
|
+
FieldLogLevel: 'NONE' | 'ERROR' | 'ALL'
|
|
62
|
+
ExcludeVerboseContent?: boolean
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// X-Ray tracing
|
|
66
|
+
XrayEnabled?: boolean
|
|
67
|
+
|
|
68
|
+
Tags?: Tag[]
|
|
69
|
+
}
|
|
70
|
+
DeletionPolicy?: 'Delete' | 'Retain'
|
|
71
|
+
UpdateReplacePolicy?: 'Delete' | 'Retain'
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export interface GraphQLSchema {
|
|
75
|
+
Type: 'AWS::AppSync::GraphQLSchema'
|
|
76
|
+
Properties: {
|
|
77
|
+
ApiId: string | { Ref: string }
|
|
78
|
+
Definition?: string
|
|
79
|
+
DefinitionS3Location?: string
|
|
80
|
+
}
|
|
81
|
+
DependsOn?: string | string[]
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export interface DataSource {
|
|
85
|
+
Type: 'AWS::AppSync::DataSource'
|
|
86
|
+
Properties: {
|
|
87
|
+
ApiId: string | { Ref: string }
|
|
88
|
+
Name: string
|
|
89
|
+
Type: 'AWS_LAMBDA' | 'AMAZON_DYNAMODB' | 'AMAZON_ELASTICSEARCH' | 'AMAZON_OPENSEARCH_SERVICE' | 'HTTP' | 'RELATIONAL_DATABASE' | 'NONE'
|
|
90
|
+
ServiceRoleArn?: string | { Ref: string }
|
|
91
|
+
|
|
92
|
+
// Lambda config (if Type = AWS_LAMBDA)
|
|
93
|
+
LambdaConfig?: {
|
|
94
|
+
LambdaFunctionArn: string | { Ref: string }
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// DynamoDB config (if Type = AMAZON_DYNAMODB)
|
|
98
|
+
DynamoDBConfig?: {
|
|
99
|
+
TableName: string | { Ref: string }
|
|
100
|
+
AwsRegion: string
|
|
101
|
+
UseCallerCredentials?: boolean
|
|
102
|
+
DeltaSyncConfig?: {
|
|
103
|
+
BaseTableTTL: number
|
|
104
|
+
DeltaSyncTableName: string | { Ref: string }
|
|
105
|
+
DeltaSyncTableTTL: number
|
|
106
|
+
}
|
|
107
|
+
Versioned?: boolean
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// OpenSearch config (if Type = AMAZON_OPENSEARCH_SERVICE)
|
|
111
|
+
OpenSearchServiceConfig?: {
|
|
112
|
+
AwsRegion: string
|
|
113
|
+
Endpoint: string | { 'Fn::GetAtt': [string, string] }
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// HTTP config (if Type = HTTP)
|
|
117
|
+
HttpConfig?: {
|
|
118
|
+
Endpoint: string
|
|
119
|
+
AuthorizationConfig?: {
|
|
120
|
+
AuthorizationType: 'AWS_IAM'
|
|
121
|
+
AwsIamConfig?: {
|
|
122
|
+
SigningRegion?: string
|
|
123
|
+
SigningServiceName?: string
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// RDS config (if Type = RELATIONAL_DATABASE)
|
|
129
|
+
RelationalDatabaseConfig?: {
|
|
130
|
+
RelationalDatabaseSourceType: 'RDS_HTTP_ENDPOINT'
|
|
131
|
+
RdsHttpEndpointConfig?: {
|
|
132
|
+
AwsRegion: string
|
|
133
|
+
DbClusterIdentifier: string | { Ref: string }
|
|
134
|
+
DatabaseName?: string
|
|
135
|
+
Schema?: string
|
|
136
|
+
AwsSecretStoreArn: string | { Ref: string }
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
Description?: string
|
|
141
|
+
}
|
|
142
|
+
DependsOn?: string | string[]
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
export interface Resolver {
|
|
146
|
+
Type: 'AWS::AppSync::Resolver'
|
|
147
|
+
Properties: {
|
|
148
|
+
ApiId: string | { Ref: string }
|
|
149
|
+
TypeName: string // e.g., 'Query', 'Mutation', 'Subscription'
|
|
150
|
+
FieldName: string
|
|
151
|
+
DataSourceName?: string | { Ref: string }
|
|
152
|
+
|
|
153
|
+
// Request/Response mapping templates (VTL)
|
|
154
|
+
RequestMappingTemplate?: string
|
|
155
|
+
ResponseMappingTemplate?: string
|
|
156
|
+
|
|
157
|
+
// Or use S3 location
|
|
158
|
+
RequestMappingTemplateS3Location?: string
|
|
159
|
+
ResponseMappingTemplateS3Location?: string
|
|
160
|
+
|
|
161
|
+
// Pipeline resolvers
|
|
162
|
+
Kind?: 'UNIT' | 'PIPELINE'
|
|
163
|
+
PipelineConfig?: {
|
|
164
|
+
Functions?: Array<string | { Ref: string }>
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
// Caching
|
|
168
|
+
CachingConfig?: {
|
|
169
|
+
CachingKeys?: string[]
|
|
170
|
+
Ttl?: number
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
// Sync config (for subscriptions)
|
|
174
|
+
SyncConfig?: {
|
|
175
|
+
ConflictDetection: 'VERSION' | 'NONE'
|
|
176
|
+
ConflictHandler?: 'OPTIMISTIC_CONCURRENCY' | 'LAMBDA' | 'AUTOMERGE'
|
|
177
|
+
LambdaConflictHandlerConfig?: {
|
|
178
|
+
LambdaConflictHandlerArn: string | { Ref: string }
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
// Code (for JavaScript resolvers)
|
|
183
|
+
Code?: string
|
|
184
|
+
CodeS3Location?: string
|
|
185
|
+
Runtime?: {
|
|
186
|
+
Name: 'APPSYNC_JS'
|
|
187
|
+
RuntimeVersion: string
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
DependsOn?: string | string[]
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
export interface FunctionConfiguration {
|
|
194
|
+
Type: 'AWS::AppSync::FunctionConfiguration'
|
|
195
|
+
Properties: {
|
|
196
|
+
ApiId: string | { Ref: string }
|
|
197
|
+
Name: string
|
|
198
|
+
DataSourceName: string | { Ref: string }
|
|
199
|
+
FunctionVersion?: string
|
|
200
|
+
|
|
201
|
+
// Request/Response mapping templates
|
|
202
|
+
RequestMappingTemplate?: string
|
|
203
|
+
ResponseMappingTemplate?: string
|
|
204
|
+
RequestMappingTemplateS3Location?: string
|
|
205
|
+
ResponseMappingTemplateS3Location?: string
|
|
206
|
+
|
|
207
|
+
// Code (for JavaScript functions)
|
|
208
|
+
Code?: string
|
|
209
|
+
CodeS3Location?: string
|
|
210
|
+
Runtime?: {
|
|
211
|
+
Name: 'APPSYNC_JS'
|
|
212
|
+
RuntimeVersion: string
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
Description?: string
|
|
216
|
+
}
|
|
217
|
+
DependsOn?: string | string[]
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
export interface ApiKey {
|
|
221
|
+
Type: 'AWS::AppSync::ApiKey'
|
|
222
|
+
Properties: {
|
|
223
|
+
ApiId: string | { Ref: string }
|
|
224
|
+
Description?: string
|
|
225
|
+
Expires?: number // Unix timestamp
|
|
226
|
+
}
|
|
227
|
+
DependsOn?: string | string[]
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
export interface DomainName {
|
|
231
|
+
Type: 'AWS::AppSync::DomainName'
|
|
232
|
+
Properties: {
|
|
233
|
+
DomainName: string
|
|
234
|
+
CertificateArn: string | { Ref: string }
|
|
235
|
+
Description?: string
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
export interface DomainNameApiAssociation {
|
|
240
|
+
Type: 'AWS::AppSync::DomainNameApiAssociation'
|
|
241
|
+
Properties: {
|
|
242
|
+
DomainName: string | { Ref: string }
|
|
243
|
+
ApiId: string | { Ref: string }
|
|
244
|
+
}
|
|
245
|
+
DependsOn?: string | string[]
|
|
246
|
+
}
|
package/src/athena.ts
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AWS Athena Types
|
|
3
|
+
* CloudFormation resource types for AWS Athena (log analytics, data querying)
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import type { Tag } from './common'
|
|
7
|
+
|
|
8
|
+
export interface WorkGroup {
|
|
9
|
+
Type: 'AWS::Athena::WorkGroup'
|
|
10
|
+
Properties: {
|
|
11
|
+
Name: string
|
|
12
|
+
Description?: string
|
|
13
|
+
State?: 'ENABLED' | 'DISABLED'
|
|
14
|
+
|
|
15
|
+
WorkGroupConfiguration?: {
|
|
16
|
+
// Query result location
|
|
17
|
+
ResultConfiguration?: {
|
|
18
|
+
OutputLocation?: string
|
|
19
|
+
EncryptionConfiguration?: {
|
|
20
|
+
EncryptionOption: 'SSE_S3' | 'SSE_KMS' | 'CSE_KMS'
|
|
21
|
+
KmsKey?: string | { Ref: string }
|
|
22
|
+
}
|
|
23
|
+
ExpectedBucketOwner?: string
|
|
24
|
+
AclConfiguration?: {
|
|
25
|
+
S3AclOption: 'BUCKET_OWNER_FULL_CONTROL'
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// Performance settings
|
|
30
|
+
EnforceWorkGroupConfiguration?: boolean
|
|
31
|
+
PublishCloudWatchMetricsEnabled?: boolean
|
|
32
|
+
BytesScannedCutoffPerQuery?: number
|
|
33
|
+
RequesterPaysEnabled?: boolean
|
|
34
|
+
|
|
35
|
+
// Engine version
|
|
36
|
+
EngineVersion?: {
|
|
37
|
+
SelectedEngineVersion?: string
|
|
38
|
+
EffectiveEngineVersion?: string
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// Execution role (for federated queries)
|
|
42
|
+
ExecutionRole?: string | { Ref: string }
|
|
43
|
+
|
|
44
|
+
// Additional configurations
|
|
45
|
+
AdditionalConfiguration?: string
|
|
46
|
+
CustomerContentEncryptionConfiguration?: {
|
|
47
|
+
KmsKey: string | { Ref: string }
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
Tags?: Tag[]
|
|
52
|
+
}
|
|
53
|
+
DeletionPolicy?: 'Delete' | 'Retain'
|
|
54
|
+
UpdateReplacePolicy?: 'Delete' | 'Retain'
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export interface DataCatalog {
|
|
58
|
+
Type: 'AWS::Athena::DataCatalog'
|
|
59
|
+
Properties: {
|
|
60
|
+
Name: string
|
|
61
|
+
Type: 'LAMBDA' | 'GLUE' | 'HIVE'
|
|
62
|
+
Description?: string
|
|
63
|
+
Parameters?: Record<string, string>
|
|
64
|
+
Tags?: Tag[]
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export interface NamedQuery {
|
|
69
|
+
Type: 'AWS::Athena::NamedQuery'
|
|
70
|
+
Properties: {
|
|
71
|
+
Name?: string
|
|
72
|
+
Database: string
|
|
73
|
+
QueryString: string
|
|
74
|
+
Description?: string
|
|
75
|
+
WorkGroup?: string
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export interface PreparedStatement {
|
|
80
|
+
Type: 'AWS::Athena::PreparedStatement'
|
|
81
|
+
Properties: {
|
|
82
|
+
StatementName: string
|
|
83
|
+
WorkGroup: string
|
|
84
|
+
QueryStatement: string
|
|
85
|
+
Description?: string
|
|
86
|
+
}
|
|
87
|
+
DependsOn?: string | string[]
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export interface CapacityReservation {
|
|
91
|
+
Type: 'AWS::Athena::CapacityReservation'
|
|
92
|
+
Properties: {
|
|
93
|
+
Name: string
|
|
94
|
+
TargetDpus: number
|
|
95
|
+
CapacityAssignmentConfiguration?: {
|
|
96
|
+
CapacityAssignments?: Array<{
|
|
97
|
+
WorkGroupNames?: string[]
|
|
98
|
+
}>
|
|
99
|
+
}
|
|
100
|
+
Tags?: Tag[]
|
|
101
|
+
}
|
|
102
|
+
}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AWS Auto Scaling Types
|
|
3
|
+
* @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_AutoScaling.html
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import type { Tag } from './common'
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* AWS::AutoScaling::AutoScalingGroup
|
|
10
|
+
*/
|
|
11
|
+
export interface AutoScalingGroup {
|
|
12
|
+
Type: 'AWS::AutoScaling::AutoScalingGroup'
|
|
13
|
+
Properties: {
|
|
14
|
+
AutoScalingGroupName?: string
|
|
15
|
+
MinSize: string | number
|
|
16
|
+
MaxSize: string | number
|
|
17
|
+
DesiredCapacity?: string | number
|
|
18
|
+
DefaultInstanceWarmup?: number
|
|
19
|
+
HealthCheckType?: 'EC2' | 'ELB'
|
|
20
|
+
HealthCheckGracePeriod?: number
|
|
21
|
+
LaunchTemplate?: {
|
|
22
|
+
LaunchTemplateId?: string | { Ref: string }
|
|
23
|
+
LaunchTemplateName?: string
|
|
24
|
+
Version: string | { 'Fn::GetAtt': [string, string] }
|
|
25
|
+
}
|
|
26
|
+
LaunchConfigurationName?: string | { Ref: string }
|
|
27
|
+
AvailabilityZones?: string[] | { 'Fn::GetAZs': string }
|
|
28
|
+
VPCZoneIdentifier?: string[] | { Ref: string }
|
|
29
|
+
TargetGroupARNs?: Array<string | { Ref: string }>
|
|
30
|
+
LoadBalancerNames?: Array<string | { Ref: string }>
|
|
31
|
+
TerminationPolicies?: Array<'OldestInstance' | 'NewestInstance' | 'OldestLaunchConfiguration' | 'ClosestToNextInstanceHour' | 'Default' | 'OldestLaunchTemplate' | 'AllocationStrategy'>
|
|
32
|
+
NewInstancesProtectedFromScaleIn?: boolean
|
|
33
|
+
Tags?: Array<Tag & { PropagateAtLaunch: boolean }>
|
|
34
|
+
MetricsCollection?: Array<{
|
|
35
|
+
Granularity: string
|
|
36
|
+
Metrics?: string[]
|
|
37
|
+
}>
|
|
38
|
+
Cooldown?: string | number
|
|
39
|
+
CapacityRebalance?: boolean
|
|
40
|
+
}
|
|
41
|
+
DependsOn?: string | string[]
|
|
42
|
+
CreationPolicy?: {
|
|
43
|
+
ResourceSignal?: {
|
|
44
|
+
Count?: number
|
|
45
|
+
Timeout?: string
|
|
46
|
+
}
|
|
47
|
+
AutoScalingCreationPolicy?: {
|
|
48
|
+
MinSuccessfulInstancesPercent?: number
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
UpdatePolicy?: {
|
|
52
|
+
AutoScalingReplacingUpdate?: {
|
|
53
|
+
WillReplace?: boolean
|
|
54
|
+
}
|
|
55
|
+
AutoScalingRollingUpdate?: {
|
|
56
|
+
MaxBatchSize?: number
|
|
57
|
+
MinInstancesInService?: number
|
|
58
|
+
MinSuccessfulInstancesPercent?: number
|
|
59
|
+
PauseTime?: string
|
|
60
|
+
SuspendProcesses?: string[]
|
|
61
|
+
WaitOnResourceSignals?: boolean
|
|
62
|
+
}
|
|
63
|
+
AutoScalingScheduledAction?: {
|
|
64
|
+
IgnoreUnmodifiedGroupSizeProperties?: boolean
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* AWS::AutoScaling::LaunchConfiguration
|
|
71
|
+
*/
|
|
72
|
+
export interface AutoScalingLaunchConfiguration {
|
|
73
|
+
Type: 'AWS::AutoScaling::LaunchConfiguration'
|
|
74
|
+
Properties: {
|
|
75
|
+
LaunchConfigurationName?: string
|
|
76
|
+
ImageId: string
|
|
77
|
+
InstanceType: string
|
|
78
|
+
KeyName?: string
|
|
79
|
+
SecurityGroups?: Array<string | { Ref: string }>
|
|
80
|
+
UserData?: string | { 'Fn::Base64': any }
|
|
81
|
+
IamInstanceProfile?: string | { Ref: string } | { 'Fn::GetAtt': [string, string] }
|
|
82
|
+
BlockDeviceMappings?: Array<{
|
|
83
|
+
DeviceName: string
|
|
84
|
+
Ebs?: {
|
|
85
|
+
DeleteOnTermination?: boolean
|
|
86
|
+
Encrypted?: boolean
|
|
87
|
+
Iops?: number
|
|
88
|
+
SnapshotId?: string
|
|
89
|
+
Throughput?: number
|
|
90
|
+
VolumeSize?: number
|
|
91
|
+
VolumeType?: 'gp2' | 'gp3' | 'io1' | 'io2' | 'sc1' | 'st1' | 'standard'
|
|
92
|
+
}
|
|
93
|
+
NoDevice?: boolean
|
|
94
|
+
VirtualName?: string
|
|
95
|
+
}>
|
|
96
|
+
AssociatePublicIpAddress?: boolean
|
|
97
|
+
EbsOptimized?: boolean
|
|
98
|
+
InstanceMonitoring?: boolean
|
|
99
|
+
PlacementTenancy?: 'default' | 'dedicated'
|
|
100
|
+
SpotPrice?: string
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* AWS::AutoScaling::ScalingPolicy
|
|
106
|
+
*/
|
|
107
|
+
export interface AutoScalingScalingPolicy {
|
|
108
|
+
Type: 'AWS::AutoScaling::ScalingPolicy'
|
|
109
|
+
Properties: {
|
|
110
|
+
PolicyName?: string
|
|
111
|
+
PolicyType?: 'TargetTrackingScaling' | 'StepScaling' | 'SimpleScaling'
|
|
112
|
+
AutoScalingGroupName: string | { Ref: string }
|
|
113
|
+
AdjustmentType?: 'ChangeInCapacity' | 'ExactCapacity' | 'PercentChangeInCapacity'
|
|
114
|
+
ScalingAdjustment?: number
|
|
115
|
+
Cooldown?: string | number
|
|
116
|
+
MinAdjustmentMagnitude?: number
|
|
117
|
+
MetricAggregationType?: 'Minimum' | 'Maximum' | 'Average'
|
|
118
|
+
EstimatedInstanceWarmup?: number
|
|
119
|
+
TargetTrackingConfiguration?: {
|
|
120
|
+
PredefinedMetricSpecification?: {
|
|
121
|
+
PredefinedMetricType: 'ASGAverageCPUUtilization' | 'ASGAverageNetworkIn' | 'ASGAverageNetworkOut' | 'ALBRequestCountPerTarget'
|
|
122
|
+
ResourceLabel?: string
|
|
123
|
+
}
|
|
124
|
+
CustomizedMetricSpecification?: {
|
|
125
|
+
MetricName: string
|
|
126
|
+
Namespace: string
|
|
127
|
+
Statistic: 'Average' | 'Minimum' | 'Maximum' | 'SampleCount' | 'Sum'
|
|
128
|
+
Unit?: string
|
|
129
|
+
Dimensions?: Array<{
|
|
130
|
+
Name: string
|
|
131
|
+
Value: string
|
|
132
|
+
}>
|
|
133
|
+
}
|
|
134
|
+
TargetValue: number
|
|
135
|
+
DisableScaleIn?: boolean
|
|
136
|
+
}
|
|
137
|
+
StepAdjustments?: Array<{
|
|
138
|
+
MetricIntervalLowerBound?: number
|
|
139
|
+
MetricIntervalUpperBound?: number
|
|
140
|
+
ScalingAdjustment: number
|
|
141
|
+
}>
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* AWS::AutoScaling::ScheduledAction
|
|
147
|
+
*/
|
|
148
|
+
export interface AutoScalingScheduledAction {
|
|
149
|
+
Type: 'AWS::AutoScaling::ScheduledAction'
|
|
150
|
+
Properties: {
|
|
151
|
+
AutoScalingGroupName: string | { Ref: string }
|
|
152
|
+
DesiredCapacity?: number
|
|
153
|
+
MinSize?: number
|
|
154
|
+
MaxSize?: number
|
|
155
|
+
Recurrence?: string
|
|
156
|
+
StartTime?: string
|
|
157
|
+
EndTime?: string
|
|
158
|
+
TimeZone?: string
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* AWS::AutoScaling::LifecycleHook
|
|
164
|
+
*/
|
|
165
|
+
export interface AutoScalingLifecycleHook {
|
|
166
|
+
Type: 'AWS::AutoScaling::LifecycleHook'
|
|
167
|
+
Properties: {
|
|
168
|
+
LifecycleHookName?: string
|
|
169
|
+
AutoScalingGroupName: string | { Ref: string }
|
|
170
|
+
LifecycleTransition: 'autoscaling:EC2_INSTANCE_LAUNCHING' | 'autoscaling:EC2_INSTANCE_TERMINATING'
|
|
171
|
+
DefaultResult?: 'CONTINUE' | 'ABANDON'
|
|
172
|
+
HeartbeatTimeout?: number
|
|
173
|
+
NotificationTargetARN?: string | { Ref: string } | { 'Fn::GetAtt': [string, string] }
|
|
174
|
+
RoleARN?: string | { 'Fn::GetAtt': [string, string] }
|
|
175
|
+
NotificationMetadata?: string
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* AWS::AutoScaling::WarmPool
|
|
181
|
+
*/
|
|
182
|
+
export interface AutoScalingWarmPool {
|
|
183
|
+
Type: 'AWS::AutoScaling::WarmPool'
|
|
184
|
+
Properties: {
|
|
185
|
+
AutoScalingGroupName: string | { Ref: string }
|
|
186
|
+
MaxGroupPreparedCapacity?: number
|
|
187
|
+
MinSize?: number
|
|
188
|
+
PoolState?: 'Hibernated' | 'Running' | 'Stopped'
|
|
189
|
+
InstanceReusePolicy?: {
|
|
190
|
+
ReuseOnScaleIn?: boolean
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
export type AutoScalingResource =
|
|
196
|
+
| AutoScalingGroup
|
|
197
|
+
| AutoScalingLaunchConfiguration
|
|
198
|
+
| AutoScalingScalingPolicy
|
|
199
|
+
| AutoScalingScheduledAction
|
|
200
|
+
| AutoScalingLifecycleHook
|
|
201
|
+
| AutoScalingWarmPool
|