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

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/src/ec2.ts DELETED
@@ -1,171 +0,0 @@
1
- import type { CloudFormationResource } from './index'
2
-
3
- export interface EC2Instance extends CloudFormationResource {
4
- Type: 'AWS::EC2::Instance'
5
- Properties: {
6
- ImageId: string
7
- InstanceType: string
8
- KeyName?: string
9
- SecurityGroupIds?: string[]
10
- SubnetId?: string
11
- IamInstanceProfile?: string
12
- UserData?: string
13
- Tags?: Array<{
14
- Key: string
15
- Value: string
16
- }>
17
- BlockDeviceMappings?: Array<{
18
- DeviceName: string
19
- Ebs?: {
20
- VolumeSize?: number
21
- VolumeType?: 'gp2' | 'gp3' | 'io1' | 'io2' | 'sc1' | 'st1'
22
- Encrypted?: boolean
23
- DeleteOnTermination?: boolean
24
- }
25
- }>
26
- }
27
- }
28
-
29
- export interface EC2SecurityGroup extends CloudFormationResource {
30
- Type: 'AWS::EC2::SecurityGroup'
31
- Properties: {
32
- GroupName?: string
33
- GroupDescription: string
34
- VpcId?: string
35
- SecurityGroupIngress?: Array<{
36
- IpProtocol: string
37
- FromPort?: number
38
- ToPort?: number
39
- CidrIp?: string
40
- SourceSecurityGroupId?: string
41
- Description?: string
42
- }>
43
- SecurityGroupEgress?: Array<{
44
- IpProtocol: string
45
- FromPort?: number
46
- ToPort?: number
47
- CidrIp?: string
48
- DestinationSecurityGroupId?: string
49
- Description?: string
50
- }>
51
- Tags?: Array<{
52
- Key: string
53
- Value: string
54
- }>
55
- }
56
- }
57
-
58
- export interface EC2VPC extends CloudFormationResource {
59
- Type: 'AWS::EC2::VPC'
60
- Properties: {
61
- CidrBlock: string
62
- EnableDnsHostnames?: boolean
63
- EnableDnsSupport?: boolean
64
- Tags?: Array<{
65
- Key: string
66
- Value: string
67
- }>
68
- }
69
- }
70
-
71
- export interface EC2Subnet extends CloudFormationResource {
72
- Type: 'AWS::EC2::Subnet'
73
- Properties: {
74
- VpcId: string | { Ref: string }
75
- CidrBlock: string
76
- AvailabilityZone?: string
77
- MapPublicIpOnLaunch?: boolean
78
- Tags?: Array<{
79
- Key: string
80
- Value: string
81
- }>
82
- }
83
- }
84
-
85
- export interface EC2InternetGateway extends CloudFormationResource {
86
- Type: 'AWS::EC2::InternetGateway'
87
- Properties?: {
88
- Tags?: Array<{
89
- Key: string
90
- Value: string
91
- }>
92
- }
93
- }
94
-
95
- export interface EC2NatGateway extends CloudFormationResource {
96
- Type: 'AWS::EC2::NatGateway'
97
- Properties: {
98
- AllocationId: string | { 'Fn::GetAtt': [string, string] }
99
- SubnetId: string | { Ref: string }
100
- Tags?: Array<{
101
- Key: string
102
- Value: string
103
- }>
104
- }
105
- }
106
-
107
- export interface EC2RouteTable extends CloudFormationResource {
108
- Type: 'AWS::EC2::RouteTable'
109
- Properties: {
110
- VpcId: string | { Ref: string }
111
- Tags?: Array<{
112
- Key: string
113
- Value: string
114
- }>
115
- }
116
- }
117
-
118
- export interface EC2Route extends CloudFormationResource {
119
- Type: 'AWS::EC2::Route'
120
- Properties: {
121
- RouteTableId: string | { Ref: string }
122
- DestinationCidrBlock: string
123
- GatewayId?: string | { Ref: string }
124
- NatGatewayId?: string | { Ref: string }
125
- InstanceId?: string | { Ref: string }
126
- }
127
- }
128
-
129
- export interface EC2SubnetRouteTableAssociation extends CloudFormationResource {
130
- Type: 'AWS::EC2::SubnetRouteTableAssociation'
131
- Properties: {
132
- SubnetId: string | { Ref: string }
133
- RouteTableId: string | { Ref: string }
134
- }
135
- }
136
-
137
- export interface EC2VPCGatewayAttachment extends CloudFormationResource {
138
- Type: 'AWS::EC2::VPCGatewayAttachment'
139
- Properties: {
140
- VpcId: string | { Ref: string }
141
- InternetGatewayId: string | { Ref: string }
142
- }
143
- }
144
-
145
- export interface EC2EIP extends CloudFormationResource {
146
- Type: 'AWS::EC2::EIP'
147
- Properties: {
148
- Domain?: 'vpc' | 'standard'
149
- Tags?: Array<{
150
- Key: string
151
- Value: string
152
- }>
153
- }
154
- }
155
-
156
- export interface EC2FlowLog extends CloudFormationResource {
157
- Type: 'AWS::EC2::FlowLog'
158
- Properties: {
159
- ResourceType: 'VPC' | 'Subnet' | 'NetworkInterface'
160
- ResourceIds: string[] | Array<{ Ref: string }>
161
- TrafficType: 'ACCEPT' | 'REJECT' | 'ALL'
162
- LogDestinationType?: 'cloud-watch-logs' | 's3'
163
- LogDestination?: string
164
- LogGroupName?: string
165
- DeliverLogsPermissionArn?: string
166
- Tags?: Array<{
167
- Key: string
168
- Value: string
169
- }>
170
- }
171
- }
package/src/ecr.ts DELETED
@@ -1,129 +0,0 @@
1
- import type { CloudFormationResource } from './index'
2
-
3
- /**
4
- * IAM Principal type for ECR policies
5
- * Supports AWS accounts, services, or wildcard
6
- */
7
- export interface ECRPrincipal {
8
- AWS?: string | string[]
9
- Service?: string | string[]
10
- }
11
-
12
- export interface ECRRepository extends CloudFormationResource {
13
- Type: 'AWS::ECR::Repository'
14
- Properties?: {
15
- RepositoryName?: string
16
- ImageTagMutability?: 'MUTABLE' | 'IMMUTABLE'
17
- ImageScanningConfiguration?: {
18
- ScanOnPush?: boolean
19
- }
20
- EncryptionConfiguration?: {
21
- EncryptionType: 'AES256' | 'KMS'
22
- KmsKey?: string
23
- }
24
- LifecyclePolicy?: {
25
- LifecyclePolicyText?: string
26
- RegistryId?: string
27
- }
28
- RepositoryPolicyText?: {
29
- Version: string
30
- Statement: Array<{
31
- Sid?: string
32
- Effect: 'Allow' | 'Deny'
33
- Principal: '*' | ECRPrincipal
34
- Action: string | string[]
35
- Condition?: Record<string, any>
36
- }>
37
- }
38
- Tags?: Array<{
39
- Key: string
40
- Value: string
41
- }>
42
- }
43
- }
44
-
45
- export interface ECRLifecyclePolicy {
46
- rules: Array<{
47
- rulePriority: number
48
- description?: string
49
- selection: {
50
- tagStatus: 'tagged' | 'untagged' | 'any'
51
- tagPrefixList?: string[]
52
- countType: 'imageCountMoreThan' | 'sinceImagePushed'
53
- countNumber: number
54
- countUnit?: 'days'
55
- }
56
- action: {
57
- type: 'expire'
58
- }
59
- }>
60
- }
61
-
62
- export interface ECRReplicationConfiguration extends CloudFormationResource {
63
- Type: 'AWS::ECR::ReplicationConfiguration'
64
- Properties: {
65
- ReplicationConfiguration: {
66
- Rules: Array<{
67
- Destinations: Array<{
68
- Region: string
69
- RegistryId: string
70
- }>
71
- RepositoryFilters?: Array<{
72
- Filter: string
73
- FilterType: 'PREFIX_MATCH'
74
- }>
75
- }>
76
- }
77
- }
78
- }
79
-
80
- export interface ECRRegistryPolicy extends CloudFormationResource {
81
- Type: 'AWS::ECR::RegistryPolicy'
82
- Properties: {
83
- PolicyText: {
84
- Version: string
85
- Statement: Array<{
86
- Sid?: string
87
- Effect: 'Allow' | 'Deny'
88
- Principal: '*' | { AWS: string | string[] }
89
- Action: string | string[]
90
- Resource?: string | string[]
91
- }>
92
- }
93
- }
94
- }
95
-
96
- export interface ECRPullThroughCacheRule extends CloudFormationResource {
97
- Type: 'AWS::ECR::PullThroughCacheRule'
98
- Properties: {
99
- EcrRepositoryPrefix?: string
100
- UpstreamRegistryUrl?: string
101
- }
102
- }
103
-
104
- export interface ECRPublicRepository extends CloudFormationResource {
105
- Type: 'AWS::ECR::PublicRepository'
106
- Properties?: {
107
- RepositoryName?: string
108
- RepositoryCatalogData?: {
109
- UsageText?: string
110
- AboutText?: string
111
- OperatingSystems?: string[]
112
- Architectures?: string[]
113
- RepositoryDescription?: string
114
- }
115
- RepositoryPolicyText?: {
116
- Version: string
117
- Statement: Array<{
118
- Sid?: string
119
- Effect: 'Allow' | 'Deny'
120
- Principal: '*' | { AWS: string | string[] }
121
- Action: string | string[]
122
- }>
123
- }
124
- Tags?: Array<{
125
- Key: string
126
- Value: string
127
- }>
128
- }
129
- }
package/src/ecs.ts DELETED
@@ -1,129 +0,0 @@
1
- import type { CloudFormationResource } from './index'
2
-
3
- export interface ECSCluster extends CloudFormationResource {
4
- Type: 'AWS::ECS::Cluster'
5
- Properties?: {
6
- ClusterName?: string
7
- CapacityProviders?: string[]
8
- DefaultCapacityProviderStrategy?: Array<{
9
- CapacityProvider: string
10
- Weight?: number
11
- Base?: number
12
- }>
13
- Configuration?: {
14
- ExecuteCommandConfiguration?: {
15
- Logging?: string
16
- }
17
- }
18
- Tags?: Array<{
19
- Key: string
20
- Value: string
21
- }>
22
- }
23
- }
24
-
25
- export interface ECSTaskDefinition extends CloudFormationResource {
26
- Type: 'AWS::ECS::TaskDefinition'
27
- Properties: {
28
- Family: string
29
- TaskRoleArn?: string
30
- ExecutionRoleArn?: string
31
- NetworkMode?: 'bridge' | 'host' | 'awsvpc' | 'none'
32
- RequiresCompatibilities?: ('EC2' | 'FARGATE')[]
33
- Cpu?: string
34
- Memory?: string
35
- ContainerDefinitions: Array<{
36
- Name: string
37
- Image: string
38
- Cpu?: number
39
- Memory?: number
40
- MemoryReservation?: number
41
- Essential?: boolean
42
- PortMappings?: Array<{
43
- ContainerPort: number
44
- HostPort?: number
45
- Protocol?: 'tcp' | 'udp'
46
- }>
47
- Environment?: Array<{
48
- Name: string
49
- Value: string
50
- }>
51
- Secrets?: Array<{
52
- Name: string
53
- ValueFrom: string
54
- }>
55
- LogConfiguration?: {
56
- LogDriver: 'awslogs' | 'fluentd' | 'gelf' | 'json-file' | 'journald' | 'logentries' | 'splunk' | 'syslog'
57
- Options?: Record<string, string>
58
- }
59
- HealthCheck?: {
60
- Command: string[]
61
- Interval?: number
62
- Timeout?: number
63
- Retries?: number
64
- StartPeriod?: number
65
- }
66
- MountPoints?: Array<{
67
- SourceVolume: string
68
- ContainerPath: string
69
- ReadOnly?: boolean
70
- }>
71
- }>
72
- Volumes?: Array<{
73
- Name: string
74
- Host?: {
75
- SourcePath?: string
76
- }
77
- EFSVolumeConfiguration?: {
78
- FileSystemId: string
79
- RootDirectory?: string
80
- TransitEncryption?: 'ENABLED' | 'DISABLED'
81
- AuthorizationConfig?: {
82
- AccessPointId?: string
83
- IAM?: 'ENABLED' | 'DISABLED'
84
- }
85
- }
86
- }>
87
- Tags?: Array<{
88
- Key: string
89
- Value: string
90
- }>
91
- }
92
- }
93
-
94
- export interface ECSService extends CloudFormationResource {
95
- Type: 'AWS::ECS::Service'
96
- Properties: {
97
- ServiceName?: string
98
- Cluster?: string | { Ref: string }
99
- TaskDefinition: string | { Ref: string }
100
- DesiredCount?: number
101
- LaunchType?: 'EC2' | 'FARGATE' | 'EXTERNAL'
102
- PlatformVersion?: string
103
- NetworkConfiguration?: {
104
- AwsvpcConfiguration: {
105
- Subnets: string[]
106
- SecurityGroups?: string[]
107
- AssignPublicIp?: 'ENABLED' | 'DISABLED'
108
- }
109
- }
110
- LoadBalancers?: Array<{
111
- TargetGroupArn: string | { Ref: string }
112
- ContainerName: string
113
- ContainerPort: number
114
- }>
115
- HealthCheckGracePeriodSeconds?: number
116
- DeploymentConfiguration?: {
117
- MaximumPercent?: number
118
- MinimumHealthyPercent?: number
119
- DeploymentCircuitBreaker?: {
120
- Enable: boolean
121
- Rollback: boolean
122
- }
123
- }
124
- Tags?: Array<{
125
- Key: string
126
- Value: string
127
- }>
128
- }
129
- }
package/src/efs.ts DELETED
@@ -1,57 +0,0 @@
1
- import type { CloudFormationResource } from './index'
2
-
3
- export interface EFSFileSystem extends CloudFormationResource {
4
- Type: 'AWS::EFS::FileSystem'
5
- Properties?: {
6
- Encrypted?: boolean
7
- KmsKeyId?: string
8
- LifecyclePolicies?: Array<{
9
- TransitionToIA?: 'AFTER_7_DAYS' | 'AFTER_14_DAYS' | 'AFTER_30_DAYS' | 'AFTER_60_DAYS' | 'AFTER_90_DAYS'
10
- TransitionToPrimaryStorageClass?: 'AFTER_1_ACCESS'
11
- }>
12
- PerformanceMode?: 'generalPurpose' | 'maxIO'
13
- ThroughputMode?: 'bursting' | 'provisioned' | 'elastic'
14
- ProvisionedThroughputInMibps?: number
15
- BackupPolicy?: {
16
- Status: 'ENABLED' | 'DISABLED'
17
- }
18
- FileSystemTags?: Array<{
19
- Key: string
20
- Value: string
21
- }>
22
- }
23
- }
24
-
25
- export interface EFSMountTarget extends CloudFormationResource {
26
- Type: 'AWS::EFS::MountTarget'
27
- Properties: {
28
- FileSystemId: string | { Ref: string }
29
- SubnetId: string
30
- SecurityGroups: string[]
31
- IpAddress?: string
32
- }
33
- }
34
-
35
- export interface EFSAccessPoint extends CloudFormationResource {
36
- Type: 'AWS::EFS::AccessPoint'
37
- Properties: {
38
- FileSystemId: string | { Ref: string }
39
- PosixUser?: {
40
- Uid: string
41
- Gid: string
42
- SecondaryGids?: string[]
43
- }
44
- RootDirectory?: {
45
- Path?: string
46
- CreationInfo?: {
47
- OwnerUid: string
48
- OwnerGid: string
49
- Permissions: string
50
- }
51
- }
52
- AccessPointTags?: Array<{
53
- Key: string
54
- Value: string
55
- }>
56
- }
57
- }
@@ -1,92 +0,0 @@
1
- import type { CloudFormationResource } from './index'
2
-
3
- /**
4
- * AWS ElastiCache Types
5
- */
6
-
7
- export interface ElastiCacheCluster extends CloudFormationResource {
8
- Type: 'AWS::ElastiCache::CacheCluster'
9
- Properties: {
10
- ClusterName?: string
11
- CacheNodeType: string
12
- Engine: 'memcached' | 'redis'
13
- EngineVersion?: string
14
- NumCacheNodes: number
15
- Port?: number
16
- PreferredAvailabilityZone?: string
17
- PreferredAvailabilityZones?: string[]
18
- PreferredMaintenanceWindow?: string
19
- CacheSubnetGroupName?: string | { Ref: string }
20
- VpcSecurityGroupIds?: string[]
21
- CacheParameterGroupName?: string | { Ref: string }
22
- SnapshotRetentionLimit?: number
23
- SnapshotWindow?: string
24
- AutoMinorVersionUpgrade?: boolean
25
- AZMode?: 'single-az' | 'cross-az'
26
- NotificationTopicArn?: string
27
- Tags?: Array<{
28
- Key: string
29
- Value: string
30
- }>
31
- }
32
- }
33
-
34
- export interface ElastiCacheReplicationGroup extends CloudFormationResource {
35
- Type: 'AWS::ElastiCache::ReplicationGroup'
36
- Properties: {
37
- ReplicationGroupId?: string
38
- ReplicationGroupDescription: string
39
- Engine?: 'redis'
40
- EngineVersion?: string
41
- CacheNodeType: string
42
- NumCacheClusters?: number
43
- NumNodeGroups?: number
44
- ReplicasPerNodeGroup?: number
45
- AutomaticFailoverEnabled?: boolean
46
- MultiAZEnabled?: boolean
47
- PreferredCacheClusterAZs?: string[]
48
- Port?: number
49
- CacheSubnetGroupName?: string | { Ref: string }
50
- SecurityGroupIds?: string[]
51
- CacheParameterGroupName?: string | { Ref: string }
52
- SnapshotRetentionLimit?: number
53
- SnapshotWindow?: string
54
- PreferredMaintenanceWindow?: string
55
- AtRestEncryptionEnabled?: boolean
56
- TransitEncryptionEnabled?: boolean
57
- AuthToken?: string
58
- KmsKeyId?: string
59
- AutoMinorVersionUpgrade?: boolean
60
- NotificationTopicArn?: string
61
- Tags?: Array<{
62
- Key: string
63
- Value: string
64
- }>
65
- }
66
- }
67
-
68
- export interface ElastiCacheSubnetGroup extends CloudFormationResource {
69
- Type: 'AWS::ElastiCache::SubnetGroup'
70
- Properties: {
71
- CacheSubnetGroupName?: string
72
- Description: string
73
- SubnetIds: string[]
74
- Tags?: Array<{
75
- Key: string
76
- Value: string
77
- }>
78
- }
79
- }
80
-
81
- export interface ElastiCacheParameterGroup extends CloudFormationResource {
82
- Type: 'AWS::ElastiCache::ParameterGroup'
83
- Properties: {
84
- CacheParameterGroupFamily: string
85
- Description: string
86
- Properties?: Record<string, string>
87
- Tags?: Array<{
88
- Key: string
89
- Value: string
90
- }>
91
- }
92
- }
@@ -1,140 +0,0 @@
1
- import type { CloudFormationResource } from './index'
2
-
3
- /**
4
- * AWS EventBridge Types
5
- */
6
-
7
- /**
8
- * ECS Parameters for EventBridge targets
9
- */
10
- export interface EventBridgeEcsParameters {
11
- TaskDefinitionArn: string
12
- TaskCount?: number
13
- LaunchType?: 'EC2' | 'FARGATE' | 'EXTERNAL'
14
- NetworkConfiguration?: {
15
- awsvpcConfiguration: {
16
- Subnets: string[]
17
- SecurityGroups?: string[]
18
- AssignPublicIp?: 'ENABLED' | 'DISABLED'
19
- }
20
- }
21
- PlatformVersion?: string
22
- Group?: string
23
- CapacityProviderStrategy?: Array<{
24
- capacityProvider: string
25
- weight?: number
26
- base?: number
27
- }>
28
- EnableECSManagedTags?: boolean
29
- EnableExecuteCommand?: boolean
30
- PlacementConstraints?: Array<{
31
- type?: string
32
- expression?: string
33
- }>
34
- PlacementStrategy?: Array<{
35
- type?: string
36
- field?: string
37
- }>
38
- PropagateTags?: 'TASK_DEFINITION'
39
- ReferenceId?: string
40
- Tags?: Array<{
41
- Key: string
42
- Value: string
43
- }>
44
- }
45
-
46
- /**
47
- * EventBridge Rule Target
48
- */
49
- export interface EventBridgeTarget {
50
- Id: string
51
- Arn: string
52
- RoleArn?: string
53
- Input?: string
54
- InputPath?: string
55
- InputTransformer?: {
56
- InputPathsMap?: Record<string, string>
57
- InputTemplate: string
58
- }
59
- KinesisParameters?: {
60
- PartitionKeyPath: string
61
- }
62
- EcsParameters?: EventBridgeEcsParameters
63
- SqsParameters?: {
64
- MessageGroupId: string
65
- }
66
- HttpParameters?: {
67
- PathParameterValues?: string[]
68
- HeaderParameters?: Record<string, string>
69
- QueryStringParameters?: Record<string, string>
70
- }
71
- RedshiftDataParameters?: {
72
- Database: string
73
- Sql: string
74
- DbUser?: string
75
- SecretManagerArn?: string
76
- StatementName?: string
77
- WithEvent?: boolean
78
- }
79
- SageMakerPipelineParameters?: {
80
- PipelineParameterList?: Array<{
81
- Name: string
82
- Value: string
83
- }>
84
- }
85
- DeadLetterConfig?: {
86
- Arn: string
87
- }
88
- RetryPolicy?: {
89
- MaximumRetryAttempts?: number
90
- MaximumEventAge?: number
91
- }
92
- }
93
-
94
- export interface EventBridgeRule extends CloudFormationResource {
95
- Type: 'AWS::Events::Rule'
96
- Properties: {
97
- Name?: string
98
- Description?: string
99
- State?: 'ENABLED' | 'DISABLED' | 'ENABLED_WITH_ALL_CLOUDTRAIL_MANAGEMENT_EVENTS'
100
- ScheduleExpression?: string
101
- EventPattern?: {
102
- source?: string[]
103
- 'detail-type'?: string[]
104
- detail?: Record<string, unknown>
105
- account?: string[]
106
- region?: string[]
107
- resources?: string[]
108
- }
109
- EventBusName?: string
110
- RoleArn?: string
111
- Targets?: EventBridgeTarget[]
112
- }
113
- }
114
-
115
- export interface EventBridgeEventBus extends CloudFormationResource {
116
- Type: 'AWS::Events::EventBus'
117
- Properties: {
118
- Name: string
119
- EventSourceName?: string
120
- Tags?: Array<{
121
- Key: string
122
- Value: string
123
- }>
124
- }
125
- }
126
-
127
- export interface EventBridgeArchive extends CloudFormationResource {
128
- Type: 'AWS::Events::Archive'
129
- Properties: {
130
- ArchiveName?: string
131
- Description?: string
132
- EventPattern?: {
133
- source?: string[]
134
- 'detail-type'?: string[]
135
- detail?: Record<string, unknown>
136
- }
137
- RetentionDays?: number
138
- SourceArn: string
139
- }
140
- }