@stacksjs/ts-cloud-aws-types 0.1.6 → 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,99 @@
1
+ import type { Tag } from './common';
2
+ /**
3
+ * AWS::SecretsManager::Secret
4
+ */
5
+ export declare interface SecretsManagerSecret {
6
+ Type: 'AWS::SecretsManager::Secret'
7
+ Properties: {
8
+ Name?: string
9
+ Description?: string
10
+ SecretString?: string
11
+ GenerateSecretString?: {
12
+ ExcludeCharacters?: string
13
+ ExcludeLowercase?: boolean
14
+ ExcludeNumbers?: boolean
15
+ ExcludePunctuation?: boolean
16
+ ExcludeUppercase?: boolean
17
+ GenerateStringKey?: string
18
+ IncludeSpace?: boolean
19
+ PasswordLength?: number
20
+ RequireEachIncludedType?: boolean
21
+ SecretStringTemplate?: string
22
+ }
23
+ KmsKeyId?: string | { Ref: string } | { 'Fn::GetAtt': [string, string] }
24
+ ReplicaRegions?: Array<{
25
+ Region: string
26
+ KmsKeyId?: string
27
+ }>
28
+ Tags?: Tag[]
29
+ }
30
+ DeletionPolicy?: 'Delete' | 'Retain' | 'Snapshot'
31
+ UpdateReplacePolicy?: 'Delete' | 'Retain' | 'Snapshot'
32
+ }
33
+ /**
34
+ * AWS::SecretsManager::SecretTargetAttachment
35
+ */
36
+ export declare interface SecretsManagerSecretTargetAttachment {
37
+ Type: 'AWS::SecretsManager::SecretTargetAttachment'
38
+ Properties: {
39
+ SecretId: string | { Ref: string }
40
+ TargetId: string | { Ref: string }
41
+ TargetType: 'AWS::RDS::DBInstance' | 'AWS::RDS::DBCluster' | 'AWS::Redshift::Cluster' | 'AWS::DocDB::DBInstance' | 'AWS::DocDB::DBCluster'
42
+ }
43
+ }
44
+ /**
45
+ * AWS::SecretsManager::RotationSchedule
46
+ */
47
+ export declare interface SecretsManagerRotationSchedule {
48
+ Type: 'AWS::SecretsManager::RotationSchedule'
49
+ Properties: {
50
+ SecretId: string | { Ref: string }
51
+ RotationLambdaARN?: string | { 'Fn::GetAtt': [string, string] }
52
+ RotationRules?: {
53
+ AutomaticallyAfterDays?: number
54
+ Duration?: string
55
+ ScheduleExpression?: string
56
+ }
57
+ HostedRotationLambda?: {
58
+ RotationType: string
59
+ RotationLambdaName?: string
60
+ KmsKeyArn?: string
61
+ MasterSecretArn?: string
62
+ MasterSecretKmsKeyArn?: string
63
+ VpcSecurityGroupIds?: string
64
+ VpcSubnetIds?: string
65
+ ExcludeCharacters?: string
66
+ SuperuserSecretArn?: string
67
+ SuperuserSecretKmsKeyArn?: string
68
+ }
69
+ }
70
+ }
71
+ /**
72
+ * AWS::SecretsManager::ResourcePolicy
73
+ */
74
+ export declare interface SecretsManagerResourcePolicy {
75
+ Type: 'AWS::SecretsManager::ResourcePolicy'
76
+ Properties: {
77
+ SecretId: string | { Ref: string }
78
+ ResourcePolicy: {
79
+ Version: string
80
+ Statement: Array<{
81
+ Sid?: string
82
+ Effect: 'Allow' | 'Deny'
83
+ Principal: {
84
+ AWS?: string | string[]
85
+ Service?: string | string[]
86
+ Federated?: string
87
+ }
88
+ Action: string | string[]
89
+ Resource?: string | string[]
90
+ Condition?: Record<string, any>
91
+ }>
92
+ }
93
+ BlockPublicPolicy?: boolean
94
+ }
95
+ }
96
+ export type SecretsManagerResource = | SecretsManagerSecret
97
+ | SecretsManagerSecretTargetAttachment
98
+ | SecretsManagerRotationSchedule
99
+ | SecretsManagerResourcePolicy
package/dist/ses.d.ts ADDED
@@ -0,0 +1,62 @@
1
+ import type { CloudFormationResource } from './index';
2
+ export declare interface SESEmailIdentity extends CloudFormationResource {
3
+ Type: 'AWS::SES::EmailIdentity'
4
+ Properties: {
5
+ EmailIdentity: string
6
+ DkimSigningAttributes?: {
7
+ NextSigningKeyLength?: 'RSA_1024_BIT' | 'RSA_2048_BIT'
8
+ }
9
+ FeedbackAttributes?: {
10
+ EmailForwardingEnabled?: boolean
11
+ }
12
+ }
13
+ }
14
+ export declare interface SESConfigurationSet extends CloudFormationResource {
15
+ Type: 'AWS::SES::ConfigurationSet'
16
+ Properties: {
17
+ Name?: string
18
+ ReputationOptions?: {
19
+ ReputationMetricsEnabled?: boolean
20
+ }
21
+ SendingOptions?: {
22
+ SendingEnabled?: boolean
23
+ }
24
+ SuppressionOptions?: {
25
+ SuppressedReasons?: ('BOUNCE' | 'COMPLAINT')[]
26
+ }
27
+ }
28
+ }
29
+ export declare interface SESReceiptRuleSet extends CloudFormationResource {
30
+ Type: 'AWS::SES::ReceiptRuleSet'
31
+ Properties?: {
32
+ RuleSetName?: string
33
+ }
34
+ }
35
+ export declare interface SESReceiptRule extends CloudFormationResource {
36
+ Type: 'AWS::SES::ReceiptRule'
37
+ Properties: {
38
+ RuleSetName: string | { Ref: string }
39
+ Rule: {
40
+ Name?: string
41
+ Enabled?: boolean
42
+ Recipients?: string[]
43
+ ScanEnabled?: boolean
44
+ TlsPolicy?: 'Optional' | 'Require'
45
+ Actions?: Array<{
46
+ S3Action?: {
47
+ BucketName: string
48
+ ObjectKeyPrefix?: string
49
+ KmsKeyArn?: string
50
+ }
51
+ LambdaAction?: {
52
+ FunctionArn: string
53
+ InvocationType?: 'Event' | 'RequestResponse'
54
+ }
55
+ SNSAction?: {
56
+ TopicArn: string
57
+ Encoding?: 'UTF-8' | 'Base64'
58
+ }
59
+ }>
60
+ }
61
+ }
62
+ }
package/dist/sns.d.ts ADDED
@@ -0,0 +1,42 @@
1
+ import type { CloudFormationResource } from './index';
2
+ export declare interface SNSTopic extends CloudFormationResource {
3
+ Type: 'AWS::SNS::Topic'
4
+ Properties?: {
5
+ TopicName?: string
6
+ DisplayName?: string
7
+ Subscription?: Array<{
8
+ Endpoint: string
9
+ Protocol: 'http' | 'https' | 'email' | 'email-json' | 'sms' | 'sqs' | 'application' | 'lambda' | 'firehose'
10
+ }>
11
+ KmsMasterKeyId?: string
12
+ Tags?: Array<{
13
+ Key: string
14
+ Value: string
15
+ }>
16
+ }
17
+ }
18
+ export declare interface SNSSubscription extends CloudFormationResource {
19
+ Type: 'AWS::SNS::Subscription'
20
+ Properties: {
21
+ TopicArn: string | { Ref: string }
22
+ Protocol: 'http' | 'https' | 'email' | 'email-json' | 'sms' | 'sqs' | 'application' | 'lambda' | 'firehose'
23
+ Endpoint: string
24
+ FilterPolicy?: unknown
25
+ RawMessageDelivery?: boolean
26
+ }
27
+ }
28
+ export declare interface SNSTopicPolicy extends CloudFormationResource {
29
+ Type: 'AWS::SNS::TopicPolicy'
30
+ Properties: {
31
+ Topics: (string | { Ref: string })[]
32
+ PolicyDocument: {
33
+ Version: '2012-10-17'
34
+ Statement: Array<{
35
+ Effect: 'Allow' | 'Deny'
36
+ Principal: unknown
37
+ Action: string | string[]
38
+ Resource: string | string[]
39
+ }>
40
+ }
41
+ }
42
+ }
package/dist/sqs.d.ts ADDED
@@ -0,0 +1,51 @@
1
+ import type { CloudFormationResource } from './index';
2
+ /**
3
+ * AWS SQS (Simple Queue Service) Types
4
+ */
5
+ export declare interface SQSQueue extends CloudFormationResource {
6
+ Type: 'AWS::SQS::Queue'
7
+ Properties?: {
8
+ QueueName?: string
9
+ DelaySeconds?: number
10
+ MaximumMessageSize?: number
11
+ MessageRetentionPeriod?: number
12
+ ReceiveMessageWaitTimeSeconds?: number
13
+ VisibilityTimeout?: number
14
+ KmsMasterKeyId?: string
15
+ KmsDataKeyReusePeriodSeconds?: number
16
+ SqsManagedSseEnabled?: boolean
17
+ FifoQueue?: boolean
18
+ ContentBasedDeduplication?: boolean
19
+ DeduplicationScope?: 'messageGroup' | 'queue'
20
+ FifoThroughputLimit?: 'perQueue' | 'perMessageGroupId'
21
+ RedrivePolicy?: {
22
+ deadLetterTargetArn: string
23
+ maxReceiveCount: number
24
+ }
25
+ RedriveAllowPolicy?: {
26
+ redrivePermission: 'allowAll' | 'denyAll' | 'byQueue'
27
+ sourceQueueArns?: string[]
28
+ }
29
+ Tags?: Array<{
30
+ Key: string
31
+ Value: string
32
+ }>
33
+ }
34
+ }
35
+ export declare interface SQSQueuePolicy extends CloudFormationResource {
36
+ Type: 'AWS::SQS::QueuePolicy'
37
+ Properties: {
38
+ Queues: Array<string | { Ref: string }>
39
+ PolicyDocument: {
40
+ Version: '2012-10-17'
41
+ Statement: Array<{
42
+ Sid?: string
43
+ Effect: 'Allow' | 'Deny'
44
+ Principal: unknown
45
+ Action: string | string[]
46
+ Resource: string | string[]
47
+ Condition?: unknown
48
+ }>
49
+ }
50
+ }
51
+ }
package/dist/ssm.d.ts ADDED
@@ -0,0 +1,253 @@
1
+ import type { Tag } from './common';
2
+ /**
3
+ * AWS::SSM::Parameter
4
+ */
5
+ export declare interface SSMParameter {
6
+ Type: 'AWS::SSM::Parameter'
7
+ Properties: {
8
+ Name?: string
9
+ Type: 'String' | 'StringList' | 'SecureString'
10
+ Value: string
11
+ Description?: string
12
+ AllowedPattern?: string
13
+ DataType?: 'text' | 'aws:ec2:image'
14
+ Tier?: 'Standard' | 'Advanced' | 'Intelligent-Tiering'
15
+ Policies?: string
16
+ Tags?: Record<string, string>
17
+ }
18
+ }
19
+ /**
20
+ * AWS::SSM::Association
21
+ */
22
+ export declare interface SSMAssociation {
23
+ Type: 'AWS::SSM::Association'
24
+ Properties: {
25
+ Name: string
26
+ AssociationName?: string
27
+ DocumentVersion?: string
28
+ InstanceId?: string
29
+ Parameters?: Record<string, string[]>
30
+ ScheduleExpression?: string
31
+ Targets?: Array<{
32
+ Key: string
33
+ Values: string[]
34
+ }>
35
+ OutputLocation?: {
36
+ S3Location?: {
37
+ OutputS3BucketName?: string
38
+ OutputS3KeyPrefix?: string
39
+ OutputS3Region?: string
40
+ }
41
+ }
42
+ AutomationTargetParameterName?: string
43
+ MaxErrors?: string
44
+ MaxConcurrency?: string
45
+ ComplianceSeverity?: 'CRITICAL' | 'HIGH' | 'MEDIUM' | 'LOW' | 'UNSPECIFIED'
46
+ SyncCompliance?: 'AUTO' | 'MANUAL'
47
+ WaitForSuccessTimeoutSeconds?: number
48
+ ApplyOnlyAtCronInterval?: boolean
49
+ CalendarNames?: string[]
50
+ ScheduleOffset?: number
51
+ }
52
+ }
53
+ /**
54
+ * AWS::SSM::Document
55
+ */
56
+ export declare interface SSMDocument {
57
+ Type: 'AWS::SSM::Document'
58
+ Properties: {
59
+ Name?: string
60
+ Content: any
61
+ DocumentType?: 'Command' | 'Policy' | 'Automation' | 'Session' | 'Package' | 'ApplicationConfiguration' | 'ApplicationConfigurationSchema' | 'DeploymentStrategy' | 'ChangeCalendar' | 'Automation.ChangeTemplate' | 'ProblemAnalysis' | 'ProblemAnalysisTemplate' | 'CloudFormation' | 'ConformancePackTemplate' | 'QuickSetup'
62
+ DocumentFormat?: 'YAML' | 'JSON' | 'TEXT'
63
+ TargetType?: string
64
+ VersionName?: string
65
+ Requires?: Array<{
66
+ Name: string
67
+ Version?: string
68
+ }>
69
+ Attachments?: Array<{
70
+ Key?: 'SourceUrl' | 'S3FileUrl' | 'AttachmentReference'
71
+ Name?: string
72
+ Values?: string[]
73
+ }>
74
+ Tags?: Tag[]
75
+ UpdateMethod?: 'Replace' | 'NewVersion'
76
+ }
77
+ }
78
+ /**
79
+ * AWS::SSM::MaintenanceWindow
80
+ */
81
+ export declare interface SSMMaintenanceWindow {
82
+ Type: 'AWS::SSM::MaintenanceWindow'
83
+ Properties: {
84
+ Name: string
85
+ Description?: string
86
+ AllowUnassociatedTargets: boolean
87
+ Cutoff: number
88
+ Duration: number
89
+ Schedule: string
90
+ ScheduleTimezone?: string
91
+ ScheduleOffset?: number
92
+ StartDate?: string
93
+ EndDate?: string
94
+ Tags?: Tag[]
95
+ }
96
+ }
97
+ /**
98
+ * AWS::SSM::MaintenanceWindowTarget
99
+ */
100
+ export declare interface SSMMaintenanceWindowTarget {
101
+ Type: 'AWS::SSM::MaintenanceWindowTarget'
102
+ Properties: {
103
+ WindowId: string | { Ref: string }
104
+ ResourceType: 'INSTANCE' | 'RESOURCE_GROUP'
105
+ Targets: Array<{
106
+ Key: string
107
+ Values: string[]
108
+ }>
109
+ OwnerInformation?: string
110
+ Name?: string
111
+ Description?: string
112
+ }
113
+ }
114
+ /**
115
+ * AWS::SSM::MaintenanceWindowTask
116
+ */
117
+ export declare interface SSMMaintenanceWindowTask {
118
+ Type: 'AWS::SSM::MaintenanceWindowTask'
119
+ Properties: {
120
+ WindowId: string | { Ref: string }
121
+ TaskType: 'RUN_COMMAND' | 'AUTOMATION' | 'LAMBDA' | 'STEP_FUNCTIONS'
122
+ TaskArn: string
123
+ ServiceRoleArn?: string
124
+ Targets?: Array<{
125
+ Key: string
126
+ Values: string[]
127
+ }>
128
+ MaxConcurrency?: string
129
+ MaxErrors?: string
130
+ Priority?: number
131
+ LoggingInfo?: {
132
+ S3Bucket: string
133
+ S3Prefix?: string
134
+ S3Region: string
135
+ }
136
+ Name?: string
137
+ Description?: string
138
+ TaskInvocationParameters?: {
139
+ RunCommand?: {
140
+ Comment?: string
141
+ DocumentHash?: string
142
+ DocumentHashType?: 'Sha256' | 'Sha1'
143
+ NotificationConfig?: {
144
+ NotificationArn?: string
145
+ NotificationEvents?: string[]
146
+ NotificationType?: 'Command' | 'Invocation'
147
+ }
148
+ OutputS3BucketName?: string
149
+ OutputS3KeyPrefix?: string
150
+ Parameters?: Record<string, string[]>
151
+ ServiceRoleArn?: string
152
+ TimeoutSeconds?: number
153
+ }
154
+ Automation?: {
155
+ DocumentVersion?: string
156
+ Parameters?: Record<string, string[]>
157
+ }
158
+ Lambda?: {
159
+ ClientContext?: string
160
+ Payload?: string
161
+ Qualifier?: string
162
+ }
163
+ StepFunctions?: {
164
+ Input?: string
165
+ Name?: string
166
+ }
167
+ }
168
+ }
169
+ }
170
+ /**
171
+ * AWS::SSM::PatchBaseline
172
+ */
173
+ export declare interface SSMPatchBaseline {
174
+ Type: 'AWS::SSM::PatchBaseline'
175
+ Properties: {
176
+ Name: string
177
+ Description?: string
178
+ OperatingSystem?: 'WINDOWS' | 'AMAZON_LINUX' | 'AMAZON_LINUX_2' | 'UBUNTU' | 'REDHAT_ENTERPRISE_LINUX' | 'SUSE' | 'CENTOS' | 'ORACLE_LINUX' | 'DEBIAN' | 'MACOS'
179
+ ApprovedPatches?: string[]
180
+ ApprovedPatchesComplianceLevel?: 'CRITICAL' | 'HIGH' | 'MEDIUM' | 'LOW' | 'INFORMATIONAL' | 'UNSPECIFIED'
181
+ ApprovedPatchesEnableNonSecurity?: boolean
182
+ RejectedPatches?: string[]
183
+ RejectedPatchesAction?: 'ALLOW_AS_DEPENDENCY' | 'BLOCK'
184
+ ApprovalRules?: {
185
+ PatchRules: Array<{
186
+ PatchFilterGroup: {
187
+ PatchFilters: Array<{
188
+ Key: string
189
+ Values: string[]
190
+ }>
191
+ }
192
+ ComplianceLevel?: 'CRITICAL' | 'HIGH' | 'MEDIUM' | 'LOW' | 'INFORMATIONAL' | 'UNSPECIFIED'
193
+ ApproveAfterDays?: number
194
+ ApproveUntilDate?: string
195
+ EnableNonSecurity?: boolean
196
+ }>
197
+ }
198
+ GlobalFilters?: {
199
+ PatchFilters: Array<{
200
+ Key: string
201
+ Values: string[]
202
+ }>
203
+ }
204
+ Sources?: Array<{
205
+ Name: string
206
+ Products: string[]
207
+ Configuration: string
208
+ }>
209
+ Tags?: Tag[]
210
+ }
211
+ }
212
+ /**
213
+ * AWS::SSM::ResourceDataSync
214
+ */
215
+ export declare interface SSMResourceDataSync {
216
+ Type: 'AWS::SSM::ResourceDataSync'
217
+ Properties: {
218
+ SyncName: string
219
+ SyncType?: string
220
+ BucketName?: string
221
+ BucketPrefix?: string
222
+ BucketRegion?: string
223
+ KMSKeyArn?: string
224
+ SyncFormat?: string
225
+ S3Destination?: {
226
+ BucketName: string
227
+ BucketPrefix?: string
228
+ BucketRegion: string
229
+ KMSKeyArn?: string
230
+ SyncFormat: string
231
+ DestinationDataSharing?: {
232
+ DestinationDataSharingType: string
233
+ }
234
+ }
235
+ SyncSource?: {
236
+ SourceType: string
237
+ SourceRegions: string[]
238
+ IncludeFutureRegions?: boolean
239
+ AwsOrganizationsSource?: {
240
+ OrganizationSourceType: string
241
+ OrganizationalUnits?: string[]
242
+ }
243
+ }
244
+ }
245
+ }
246
+ export type SSMResource = | SSMParameter
247
+ | SSMAssociation
248
+ | SSMDocument
249
+ | SSMMaintenanceWindow
250
+ | SSMMaintenanceWindowTarget
251
+ | SSMMaintenanceWindowTask
252
+ | SSMPatchBaseline
253
+ | SSMResourceDataSync
package/dist/waf.d.ts ADDED
@@ -0,0 +1,79 @@
1
+ import type { CloudFormationResource } from './index';
2
+ export declare interface WAFv2WebACL extends CloudFormationResource {
3
+ Type: 'AWS::WAFv2::WebACL'
4
+ Properties: {
5
+ Name: string
6
+ Scope: 'CLOUDFRONT' | 'REGIONAL'
7
+ DefaultAction: {
8
+ Allow?: Record<string, unknown>
9
+ Block?: Record<string, unknown>
10
+ }
11
+ Description?: string
12
+ Rules?: Array<{
13
+ Name: string
14
+ Priority: number
15
+ Statement: {
16
+ ByteMatchStatement?: {
17
+ SearchString: string
18
+ FieldToMatch: unknown
19
+ TextTransformations: Array<{
20
+ Priority: number
21
+ Type: string
22
+ }>
23
+ PositionalConstraint: 'EXACTLY' | 'STARTS_WITH' | 'ENDS_WITH' | 'CONTAINS' | 'CONTAINS_WORD'
24
+ }
25
+ GeoMatchStatement?: {
26
+ CountryCodes: string[]
27
+ }
28
+ IPSetReferenceStatement?: {
29
+ Arn: string
30
+ }
31
+ RateBasedStatement?: {
32
+ Limit: number
33
+ AggregateKeyType: 'IP' | 'FORWARDED_IP'
34
+ ScopeDownStatement?: unknown
35
+ }
36
+ ManagedRuleGroupStatement?: {
37
+ VendorName: string
38
+ Name: string
39
+ ExcludedRules?: Array<{
40
+ Name: string
41
+ }>
42
+ }
43
+ }
44
+ Action?: {
45
+ Allow?: Record<string, unknown>
46
+ Block?: Record<string, unknown>
47
+ Count?: Record<string, unknown>
48
+ }
49
+ VisibilityConfig: {
50
+ SampledRequestsEnabled: boolean
51
+ CloudWatchMetricsEnabled: boolean
52
+ MetricName: string
53
+ }
54
+ }>
55
+ VisibilityConfig: {
56
+ SampledRequestsEnabled: boolean
57
+ CloudWatchMetricsEnabled: boolean
58
+ MetricName: string
59
+ }
60
+ Tags?: Array<{
61
+ Key: string
62
+ Value: string
63
+ }>
64
+ }
65
+ }
66
+ export declare interface WAFv2IPSet extends CloudFormationResource {
67
+ Type: 'AWS::WAFv2::IPSet'
68
+ Properties: {
69
+ Name: string
70
+ Scope: 'CLOUDFRONT' | 'REGIONAL'
71
+ IPAddressVersion: 'IPV4' | 'IPV6'
72
+ Addresses: string[]
73
+ Description?: string
74
+ Tags?: Array<{
75
+ Key: string
76
+ Value: string
77
+ }>
78
+ }
79
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stacksjs/ts-cloud-aws-types",
3
- "version": "0.1.6",
3
+ "version": "0.1.7",
4
4
  "type": "module",
5
5
  "description": "AWS CloudFormation resource type definitions (without AWS SDK)",
6
6
  "author": "Chris Breuer <chris@stacksjs.com>",
@@ -26,7 +26,7 @@
26
26
  "dist"
27
27
  ],
28
28
  "scripts": {
29
- "build": "bun build src/index.ts --outdir dist --target bun",
29
+ "build": "bun --bun build.ts",
30
30
  "prepublishOnly": "bun --bun run build",
31
31
  "typecheck": "tsc --noEmit"
32
32
  },