@stacksjs/ts-cloud 0.2.3 → 0.2.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/dist/aws/acm.d.ts +215 -0
- package/dist/aws/application-autoscaling.d.ts +345 -0
- package/dist/aws/bedrock.d.ts +2672 -0
- package/dist/aws/client.d.ts +181 -0
- package/dist/aws/cloudformation.d.ts +187 -0
- package/dist/aws/cloudfront.d.ts +416 -0
- package/dist/aws/cloudwatch-logs.d.ts +70 -0
- package/dist/aws/comprehend.d.ts +616 -0
- package/dist/aws/connect.d.ts +533 -0
- package/dist/aws/deploy-imap.d.ts +26 -0
- package/dist/aws/dynamodb.d.ts +270 -0
- package/dist/aws/ec2.d.ts +545 -0
- package/dist/aws/ecr.d.ts +240 -0
- package/dist/aws/ecs.d.ts +267 -0
- package/dist/aws/efs.d.ts +36 -0
- package/dist/aws/elasticache.d.ts +112 -0
- package/dist/aws/elbv2.d.ts +389 -0
- package/dist/aws/email.d.ts +260 -0
- package/dist/aws/eventbridge.d.ts +197 -0
- package/dist/aws/iam.d.ts +1013 -0
- package/dist/aws/imap-server.d.ts +298 -0
- package/dist/aws/index.d.ts +53 -0
- package/dist/aws/kendra.d.ts +831 -0
- package/dist/aws/lambda.d.ts +319 -0
- package/dist/aws/opensearch.d.ts +121 -0
- package/dist/aws/personalize.d.ts +586 -0
- package/dist/aws/polly.d.ts +243 -0
- package/dist/aws/rds.d.ts +346 -0
- package/dist/aws/rekognition.d.ts +691 -0
- package/dist/aws/route53-domains.d.ts +161 -0
- package/dist/aws/route53.d.ts +330 -0
- package/dist/aws/s3.d.ts +535 -0
- package/dist/aws/scheduler.d.ts +224 -0
- package/dist/aws/secrets-manager.d.ts +267 -0
- package/dist/aws/ses.d.ts +441 -0
- package/dist/aws/setup-phone.d.ts +1 -0
- package/dist/aws/setup-sms.d.ts +116 -0
- package/dist/aws/sms.d.ts +477 -0
- package/dist/aws/smtp-server.d.ts +108 -0
- package/dist/aws/sns.d.ts +224 -0
- package/dist/aws/sqs.d.ts +107 -0
- package/dist/aws/ssm.d.ts +311 -0
- package/dist/aws/sts.d.ts +21 -0
- package/dist/aws/support.d.ts +139 -0
- package/dist/aws/test-imap.d.ts +15 -0
- package/dist/aws/textract.d.ts +477 -0
- package/dist/aws/transcribe.d.ts +79 -0
- package/dist/aws/translate.d.ts +424 -0
- package/dist/aws/voice.d.ts +361 -0
- package/dist/bin/cli.js +4500 -809
- package/dist/config.d.ts +5 -0
- package/dist/deploy/index.d.ts +6 -0
- package/dist/deploy/static-site-external-dns.d.ts +70 -0
- package/dist/deploy/static-site.d.ts +110 -0
- package/dist/dns/cloudflare.d.ts +74 -0
- package/dist/dns/godaddy.d.ts +63 -0
- package/dist/dns/index.d.ts +67 -0
- package/dist/dns/porkbun.d.ts +43 -0
- package/dist/dns/route53-adapter.d.ts +67 -0
- package/dist/dns/types.d.ts +100 -0
- package/dist/dns/validator.d.ts +105 -0
- package/dist/generators/index.d.ts +4 -0
- package/dist/generators/infrastructure.d.ts +115 -0
- package/dist/index.d.ts +9 -165
- package/dist/index.js +24067 -6430
- package/dist/push/apns.d.ts +140 -0
- package/dist/push/fcm.d.ts +205 -0
- package/dist/push/index.d.ts +44 -0
- package/dist/security/pre-deploy-scanner.d.ts +97 -0
- package/dist/ssl/acme-client.d.ts +133 -0
- package/dist/ssl/index.d.ts +6 -0
- package/dist/ssl/letsencrypt.d.ts +96 -0
- package/dist/utils/cli.d.ts +121 -0
- package/dist/validation/index.d.ts +4 -0
- package/dist/validation/template.d.ts +27 -0
- package/package.json +6 -6
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AWS ECR (Elastic Container Registry) Client
|
|
3
|
+
* Manages Docker container image repositories using direct API calls
|
|
4
|
+
*/
|
|
5
|
+
export interface Repository {
|
|
6
|
+
repositoryArn?: string;
|
|
7
|
+
registryId?: string;
|
|
8
|
+
repositoryName?: string;
|
|
9
|
+
repositoryUri?: string;
|
|
10
|
+
createdAt?: string;
|
|
11
|
+
imageTagMutability?: 'MUTABLE' | 'IMMUTABLE';
|
|
12
|
+
imageScanningConfiguration?: {
|
|
13
|
+
scanOnPush?: boolean;
|
|
14
|
+
};
|
|
15
|
+
encryptionConfiguration?: {
|
|
16
|
+
encryptionType?: 'AES256' | 'KMS';
|
|
17
|
+
kmsKey?: string;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export interface AuthorizationData {
|
|
21
|
+
authorizationToken?: string;
|
|
22
|
+
expiresAt?: string;
|
|
23
|
+
proxyEndpoint?: string;
|
|
24
|
+
}
|
|
25
|
+
export interface ImageDetail {
|
|
26
|
+
registryId?: string;
|
|
27
|
+
repositoryName?: string;
|
|
28
|
+
imageDigest?: string;
|
|
29
|
+
imageTags?: string[];
|
|
30
|
+
imageSizeInBytes?: number;
|
|
31
|
+
imagePushedAt?: string;
|
|
32
|
+
imageScanStatus?: {
|
|
33
|
+
status?: string;
|
|
34
|
+
description?: string;
|
|
35
|
+
};
|
|
36
|
+
imageScanFindingsSummary?: {
|
|
37
|
+
findingSeverityCounts?: Record<string, number>;
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export interface CreateRepositoryOptions {
|
|
41
|
+
repositoryName: string;
|
|
42
|
+
tags?: {
|
|
43
|
+
Key: string;
|
|
44
|
+
Value: string;
|
|
45
|
+
}[];
|
|
46
|
+
imageTagMutability?: 'MUTABLE' | 'IMMUTABLE';
|
|
47
|
+
imageScanningConfiguration?: {
|
|
48
|
+
scanOnPush?: boolean;
|
|
49
|
+
};
|
|
50
|
+
encryptionConfiguration?: {
|
|
51
|
+
encryptionType?: 'AES256' | 'KMS';
|
|
52
|
+
kmsKey?: string;
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
export interface LifecyclePolicy {
|
|
56
|
+
rulePriority: number;
|
|
57
|
+
description?: string;
|
|
58
|
+
selection: {
|
|
59
|
+
tagStatus: 'tagged' | 'untagged' | 'any';
|
|
60
|
+
tagPrefixList?: string[];
|
|
61
|
+
countType: 'imageCountMoreThan' | 'sinceImagePushed';
|
|
62
|
+
countNumber?: number;
|
|
63
|
+
countUnit?: 'days';
|
|
64
|
+
};
|
|
65
|
+
action: {
|
|
66
|
+
type: 'expire';
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* ECR service management using direct API calls
|
|
71
|
+
*/
|
|
72
|
+
export declare class ECRClient {
|
|
73
|
+
private client;
|
|
74
|
+
private region;
|
|
75
|
+
constructor(region?: string, profile?: string);
|
|
76
|
+
/**
|
|
77
|
+
* Create a new ECR repository
|
|
78
|
+
*/
|
|
79
|
+
createRepository(options: CreateRepositoryOptions): Promise<{
|
|
80
|
+
repository?: Repository;
|
|
81
|
+
}>;
|
|
82
|
+
/**
|
|
83
|
+
* Describe ECR repositories
|
|
84
|
+
*/
|
|
85
|
+
describeRepositories(options?: {
|
|
86
|
+
repositoryNames?: string[];
|
|
87
|
+
registryId?: string;
|
|
88
|
+
maxResults?: number;
|
|
89
|
+
nextToken?: string;
|
|
90
|
+
}): Promise<{
|
|
91
|
+
repositories?: Repository[];
|
|
92
|
+
nextToken?: string;
|
|
93
|
+
}>;
|
|
94
|
+
/**
|
|
95
|
+
* Get authorization token for Docker login
|
|
96
|
+
*/
|
|
97
|
+
getAuthorizationToken(registryIds?: string[]): Promise<{
|
|
98
|
+
authorizationData?: AuthorizationData[];
|
|
99
|
+
}>;
|
|
100
|
+
/**
|
|
101
|
+
* Delete an ECR repository
|
|
102
|
+
*/
|
|
103
|
+
deleteRepository(options: {
|
|
104
|
+
repositoryName: string;
|
|
105
|
+
registryId?: string;
|
|
106
|
+
force?: boolean;
|
|
107
|
+
}): Promise<{
|
|
108
|
+
repository?: Repository;
|
|
109
|
+
}>;
|
|
110
|
+
/**
|
|
111
|
+
* Describe images in a repository
|
|
112
|
+
*/
|
|
113
|
+
describeImages(options: {
|
|
114
|
+
repositoryName: string;
|
|
115
|
+
registryId?: string;
|
|
116
|
+
imageIds?: {
|
|
117
|
+
imageTag?: string;
|
|
118
|
+
imageDigest?: string;
|
|
119
|
+
}[];
|
|
120
|
+
filter?: {
|
|
121
|
+
tagStatus?: 'TAGGED' | 'UNTAGGED' | 'ANY';
|
|
122
|
+
};
|
|
123
|
+
maxResults?: number;
|
|
124
|
+
nextToken?: string;
|
|
125
|
+
}): Promise<{
|
|
126
|
+
imageDetails?: ImageDetail[];
|
|
127
|
+
nextToken?: string;
|
|
128
|
+
}>;
|
|
129
|
+
/**
|
|
130
|
+
* Batch delete images from a repository
|
|
131
|
+
*/
|
|
132
|
+
batchDeleteImage(options: {
|
|
133
|
+
repositoryName: string;
|
|
134
|
+
registryId?: string;
|
|
135
|
+
imageIds: {
|
|
136
|
+
imageTag?: string;
|
|
137
|
+
imageDigest?: string;
|
|
138
|
+
}[];
|
|
139
|
+
}): Promise<{
|
|
140
|
+
imageIds?: {
|
|
141
|
+
imageTag?: string;
|
|
142
|
+
imageDigest?: string;
|
|
143
|
+
}[];
|
|
144
|
+
failures?: {
|
|
145
|
+
imageId?: {
|
|
146
|
+
imageTag?: string;
|
|
147
|
+
imageDigest?: string;
|
|
148
|
+
};
|
|
149
|
+
failureCode?: string;
|
|
150
|
+
failureReason?: string;
|
|
151
|
+
}[];
|
|
152
|
+
}>;
|
|
153
|
+
/**
|
|
154
|
+
* Put lifecycle policy on a repository
|
|
155
|
+
*/
|
|
156
|
+
putLifecyclePolicy(options: {
|
|
157
|
+
repositoryName: string;
|
|
158
|
+
registryId?: string;
|
|
159
|
+
lifecyclePolicyText: string;
|
|
160
|
+
}): Promise<{
|
|
161
|
+
registryId?: string;
|
|
162
|
+
repositoryName?: string;
|
|
163
|
+
lifecyclePolicyText?: string;
|
|
164
|
+
}>;
|
|
165
|
+
/**
|
|
166
|
+
* Get lifecycle policy for a repository
|
|
167
|
+
*/
|
|
168
|
+
getLifecyclePolicy(options: {
|
|
169
|
+
repositoryName: string;
|
|
170
|
+
registryId?: string;
|
|
171
|
+
}): Promise<{
|
|
172
|
+
registryId?: string;
|
|
173
|
+
repositoryName?: string;
|
|
174
|
+
lifecyclePolicyText?: string;
|
|
175
|
+
lastEvaluatedAt?: string;
|
|
176
|
+
}>;
|
|
177
|
+
/**
|
|
178
|
+
* Set repository policy
|
|
179
|
+
*/
|
|
180
|
+
setRepositoryPolicy(options: {
|
|
181
|
+
repositoryName: string;
|
|
182
|
+
policyText: string;
|
|
183
|
+
registryId?: string;
|
|
184
|
+
force?: boolean;
|
|
185
|
+
}): Promise<{
|
|
186
|
+
registryId?: string;
|
|
187
|
+
repositoryName?: string;
|
|
188
|
+
policyText?: string;
|
|
189
|
+
}>;
|
|
190
|
+
/**
|
|
191
|
+
* Get repository policy
|
|
192
|
+
*/
|
|
193
|
+
getRepositoryPolicy(options: {
|
|
194
|
+
repositoryName: string;
|
|
195
|
+
registryId?: string;
|
|
196
|
+
}): Promise<{
|
|
197
|
+
registryId?: string;
|
|
198
|
+
repositoryName?: string;
|
|
199
|
+
policyText?: string;
|
|
200
|
+
}>;
|
|
201
|
+
/**
|
|
202
|
+
* Tag a repository resource
|
|
203
|
+
*/
|
|
204
|
+
tagResource(options: {
|
|
205
|
+
resourceArn: string;
|
|
206
|
+
tags: {
|
|
207
|
+
Key: string;
|
|
208
|
+
Value: string;
|
|
209
|
+
}[];
|
|
210
|
+
}): Promise<void>;
|
|
211
|
+
/**
|
|
212
|
+
* List tags for a resource
|
|
213
|
+
*/
|
|
214
|
+
listTagsForResource(resourceArn: string): Promise<{
|
|
215
|
+
tags?: {
|
|
216
|
+
Key: string;
|
|
217
|
+
Value: string;
|
|
218
|
+
}[];
|
|
219
|
+
}>;
|
|
220
|
+
/**
|
|
221
|
+
* Helper: Create a standard lifecycle policy to keep only N images
|
|
222
|
+
*/
|
|
223
|
+
createLifecyclePolicyText(rules: LifecyclePolicy[]): string;
|
|
224
|
+
/**
|
|
225
|
+
* Helper: Get docker login command
|
|
226
|
+
*/
|
|
227
|
+
getDockerLoginCommand(): Promise<string>;
|
|
228
|
+
/**
|
|
229
|
+
* Helper: Get the registry URI for this region
|
|
230
|
+
*/
|
|
231
|
+
getRegistryUri(accountId: string): string;
|
|
232
|
+
/**
|
|
233
|
+
* Parse repository response
|
|
234
|
+
*/
|
|
235
|
+
private parseRepository;
|
|
236
|
+
/**
|
|
237
|
+
* Parse image detail response
|
|
238
|
+
*/
|
|
239
|
+
private parseImageDetail;
|
|
240
|
+
}
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AWS ECS Operations
|
|
3
|
+
* Direct API calls without AWS CLI dependency
|
|
4
|
+
*/
|
|
5
|
+
export interface Service {
|
|
6
|
+
serviceArn?: string;
|
|
7
|
+
serviceName?: string;
|
|
8
|
+
clusterArn?: string;
|
|
9
|
+
status?: string;
|
|
10
|
+
desiredCount?: number;
|
|
11
|
+
runningCount?: number;
|
|
12
|
+
pendingCount?: number;
|
|
13
|
+
launchType?: string;
|
|
14
|
+
taskDefinition?: string;
|
|
15
|
+
deployments?: Deployment[];
|
|
16
|
+
events?: ServiceEvent[];
|
|
17
|
+
}
|
|
18
|
+
export interface Deployment {
|
|
19
|
+
id?: string;
|
|
20
|
+
status?: string;
|
|
21
|
+
taskDefinition?: string;
|
|
22
|
+
desiredCount?: number;
|
|
23
|
+
runningCount?: number;
|
|
24
|
+
pendingCount?: number;
|
|
25
|
+
createdAt?: string;
|
|
26
|
+
updatedAt?: string;
|
|
27
|
+
}
|
|
28
|
+
export interface ServiceEvent {
|
|
29
|
+
id?: string;
|
|
30
|
+
createdAt?: string;
|
|
31
|
+
message?: string;
|
|
32
|
+
}
|
|
33
|
+
export interface DescribeServicesOptions {
|
|
34
|
+
cluster: string;
|
|
35
|
+
services: string[];
|
|
36
|
+
}
|
|
37
|
+
export interface Task {
|
|
38
|
+
taskArn?: string;
|
|
39
|
+
taskDefinitionArn?: string;
|
|
40
|
+
clusterArn?: string;
|
|
41
|
+
lastStatus?: string;
|
|
42
|
+
desiredStatus?: string;
|
|
43
|
+
containers?: Container[];
|
|
44
|
+
createdAt?: string;
|
|
45
|
+
startedAt?: string;
|
|
46
|
+
stoppedAt?: string;
|
|
47
|
+
}
|
|
48
|
+
export interface Container {
|
|
49
|
+
containerArn?: string;
|
|
50
|
+
name?: string;
|
|
51
|
+
lastStatus?: string;
|
|
52
|
+
exitCode?: number;
|
|
53
|
+
reason?: string;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* ECS service management using direct API calls
|
|
57
|
+
*/
|
|
58
|
+
export declare class ECSClient {
|
|
59
|
+
private client;
|
|
60
|
+
private region;
|
|
61
|
+
constructor(region?: string, profile?: string);
|
|
62
|
+
/**
|
|
63
|
+
* Describe ECS services
|
|
64
|
+
*/
|
|
65
|
+
describeServices(options: DescribeServicesOptions): Promise<{
|
|
66
|
+
services?: Service[];
|
|
67
|
+
failures?: any[];
|
|
68
|
+
}>;
|
|
69
|
+
/**
|
|
70
|
+
* List ECS services in a cluster
|
|
71
|
+
*/
|
|
72
|
+
listServices(cluster: string): Promise<{
|
|
73
|
+
serviceArns?: string[];
|
|
74
|
+
}>;
|
|
75
|
+
/**
|
|
76
|
+
* List tasks in a cluster
|
|
77
|
+
*/
|
|
78
|
+
listTasks(cluster: string, serviceName?: string): Promise<{
|
|
79
|
+
taskArns?: string[];
|
|
80
|
+
}>;
|
|
81
|
+
/**
|
|
82
|
+
* Describe ECS tasks
|
|
83
|
+
*/
|
|
84
|
+
describeTasks(cluster: string, tasks: string[]): Promise<{
|
|
85
|
+
tasks?: Task[];
|
|
86
|
+
failures?: any[];
|
|
87
|
+
}>;
|
|
88
|
+
/**
|
|
89
|
+
* Update ECS service (e.g., force new deployment)
|
|
90
|
+
*/
|
|
91
|
+
updateService(options: {
|
|
92
|
+
cluster: string;
|
|
93
|
+
service: string;
|
|
94
|
+
forceNewDeployment?: boolean;
|
|
95
|
+
desiredCount?: number;
|
|
96
|
+
taskDefinition?: string;
|
|
97
|
+
}): Promise<{
|
|
98
|
+
service?: Service;
|
|
99
|
+
}>;
|
|
100
|
+
/**
|
|
101
|
+
* Create a new ECS service
|
|
102
|
+
*/
|
|
103
|
+
createService(options: {
|
|
104
|
+
cluster: string;
|
|
105
|
+
serviceName: string;
|
|
106
|
+
taskDefinition: string;
|
|
107
|
+
desiredCount: number;
|
|
108
|
+
launchType?: 'EC2' | 'FARGATE' | 'EXTERNAL';
|
|
109
|
+
networkConfiguration?: {
|
|
110
|
+
awsvpcConfiguration: {
|
|
111
|
+
subnets: string[];
|
|
112
|
+
securityGroups?: string[];
|
|
113
|
+
assignPublicIp?: 'ENABLED' | 'DISABLED';
|
|
114
|
+
};
|
|
115
|
+
};
|
|
116
|
+
loadBalancers?: Array<{
|
|
117
|
+
targetGroupArn: string;
|
|
118
|
+
containerName: string;
|
|
119
|
+
containerPort: number;
|
|
120
|
+
}>;
|
|
121
|
+
healthCheckGracePeriodSeconds?: number;
|
|
122
|
+
deploymentConfiguration?: {
|
|
123
|
+
minimumHealthyPercent?: number;
|
|
124
|
+
maximumPercent?: number;
|
|
125
|
+
};
|
|
126
|
+
}): Promise<{
|
|
127
|
+
service?: Service;
|
|
128
|
+
}>;
|
|
129
|
+
/**
|
|
130
|
+
* Delete an ECS service
|
|
131
|
+
*/
|
|
132
|
+
deleteService(options: {
|
|
133
|
+
cluster: string;
|
|
134
|
+
service: string;
|
|
135
|
+
force?: boolean;
|
|
136
|
+
}): Promise<{
|
|
137
|
+
service?: Service;
|
|
138
|
+
}>;
|
|
139
|
+
/**
|
|
140
|
+
* List ECS clusters
|
|
141
|
+
*/
|
|
142
|
+
listClusters(): Promise<{
|
|
143
|
+
clusterArns?: string[];
|
|
144
|
+
}>;
|
|
145
|
+
/**
|
|
146
|
+
* Describe ECS clusters
|
|
147
|
+
*/
|
|
148
|
+
describeClusters(clusters: string[]): Promise<{
|
|
149
|
+
clusters?: any[];
|
|
150
|
+
failures?: any[];
|
|
151
|
+
}>;
|
|
152
|
+
/**
|
|
153
|
+
* Stop a running task
|
|
154
|
+
*/
|
|
155
|
+
stopTask(options: {
|
|
156
|
+
cluster: string;
|
|
157
|
+
task: string;
|
|
158
|
+
reason?: string;
|
|
159
|
+
}): Promise<{
|
|
160
|
+
task?: Task;
|
|
161
|
+
}>;
|
|
162
|
+
/**
|
|
163
|
+
* Run a one-off task
|
|
164
|
+
*/
|
|
165
|
+
runTask(options: {
|
|
166
|
+
cluster: string;
|
|
167
|
+
taskDefinition: string;
|
|
168
|
+
count?: number;
|
|
169
|
+
launchType?: 'EC2' | 'FARGATE' | 'EXTERNAL';
|
|
170
|
+
networkConfiguration?: {
|
|
171
|
+
awsvpcConfiguration: {
|
|
172
|
+
subnets: string[];
|
|
173
|
+
securityGroups?: string[];
|
|
174
|
+
assignPublicIp?: 'ENABLED' | 'DISABLED';
|
|
175
|
+
};
|
|
176
|
+
};
|
|
177
|
+
overrides?: {
|
|
178
|
+
containerOverrides?: Array<{
|
|
179
|
+
name: string;
|
|
180
|
+
command?: string[];
|
|
181
|
+
environment?: Array<{
|
|
182
|
+
name: string;
|
|
183
|
+
value: string;
|
|
184
|
+
}>;
|
|
185
|
+
}>;
|
|
186
|
+
};
|
|
187
|
+
}): Promise<{
|
|
188
|
+
tasks?: Task[];
|
|
189
|
+
failures?: any[];
|
|
190
|
+
}>;
|
|
191
|
+
/**
|
|
192
|
+
* Register a new task definition
|
|
193
|
+
*/
|
|
194
|
+
registerTaskDefinition(options: {
|
|
195
|
+
family: string;
|
|
196
|
+
containerDefinitions: Array<{
|
|
197
|
+
name: string;
|
|
198
|
+
image: string;
|
|
199
|
+
memory?: number;
|
|
200
|
+
cpu?: number;
|
|
201
|
+
essential?: boolean;
|
|
202
|
+
portMappings?: Array<{
|
|
203
|
+
containerPort: number;
|
|
204
|
+
hostPort?: number;
|
|
205
|
+
protocol?: 'tcp' | 'udp';
|
|
206
|
+
}>;
|
|
207
|
+
environment?: Array<{
|
|
208
|
+
name: string;
|
|
209
|
+
value: string;
|
|
210
|
+
}>;
|
|
211
|
+
secrets?: Array<{
|
|
212
|
+
name: string;
|
|
213
|
+
valueFrom: string;
|
|
214
|
+
}>;
|
|
215
|
+
logConfiguration?: {
|
|
216
|
+
logDriver: string;
|
|
217
|
+
options?: Record<string, string>;
|
|
218
|
+
};
|
|
219
|
+
}>;
|
|
220
|
+
cpu?: string;
|
|
221
|
+
memory?: string;
|
|
222
|
+
networkMode?: 'bridge' | 'host' | 'awsvpc' | 'none';
|
|
223
|
+
requiresCompatibilities?: Array<'EC2' | 'FARGATE' | 'EXTERNAL'>;
|
|
224
|
+
executionRoleArn?: string;
|
|
225
|
+
taskRoleArn?: string;
|
|
226
|
+
}): Promise<{
|
|
227
|
+
taskDefinition?: any;
|
|
228
|
+
}>;
|
|
229
|
+
/**
|
|
230
|
+
* Deregister a task definition
|
|
231
|
+
*/
|
|
232
|
+
deregisterTaskDefinition(taskDefinition: string): Promise<{
|
|
233
|
+
taskDefinition?: any;
|
|
234
|
+
}>;
|
|
235
|
+
/**
|
|
236
|
+
* Describe task definitions
|
|
237
|
+
*/
|
|
238
|
+
describeTaskDefinition(taskDefinition: string): Promise<{
|
|
239
|
+
taskDefinition?: any;
|
|
240
|
+
tags?: any[];
|
|
241
|
+
}>;
|
|
242
|
+
/**
|
|
243
|
+
* List task definition families
|
|
244
|
+
*/
|
|
245
|
+
listTaskDefinitionFamilies(options?: {
|
|
246
|
+
familyPrefix?: string;
|
|
247
|
+
status?: 'ACTIVE' | 'INACTIVE' | 'ALL';
|
|
248
|
+
}): Promise<{
|
|
249
|
+
families?: string[];
|
|
250
|
+
}>;
|
|
251
|
+
/**
|
|
252
|
+
* Wait for service to become stable
|
|
253
|
+
*/
|
|
254
|
+
waitForServiceStable(cluster: string, service: string, maxAttempts?: number, delayMs?: number): Promise<boolean>;
|
|
255
|
+
/**
|
|
256
|
+
* Helper: Force new deployment
|
|
257
|
+
*/
|
|
258
|
+
forceNewDeployment(cluster: string, service: string): Promise<{
|
|
259
|
+
service?: Service;
|
|
260
|
+
}>;
|
|
261
|
+
/**
|
|
262
|
+
* Helper: Scale service
|
|
263
|
+
*/
|
|
264
|
+
scaleService(cluster: string, service: string, desiredCount: number): Promise<{
|
|
265
|
+
service?: Service;
|
|
266
|
+
}>;
|
|
267
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AWS EFS (Elastic File System) Client
|
|
3
|
+
* Manages EFS file systems using direct API calls
|
|
4
|
+
*/
|
|
5
|
+
export interface FileSystem {
|
|
6
|
+
FileSystemId?: string;
|
|
7
|
+
Name?: string;
|
|
8
|
+
CreationTime?: string;
|
|
9
|
+
LifeCycleState?: 'creating' | 'available' | 'updating' | 'deleting' | 'deleted' | 'error';
|
|
10
|
+
NumberOfMountTargets?: number;
|
|
11
|
+
SizeInBytes?: {
|
|
12
|
+
Value?: number;
|
|
13
|
+
Timestamp?: string;
|
|
14
|
+
};
|
|
15
|
+
PerformanceMode?: 'generalPurpose' | 'maxIO';
|
|
16
|
+
Encrypted?: boolean;
|
|
17
|
+
ThroughputMode?: 'bursting' | 'provisioned' | 'elastic';
|
|
18
|
+
Tags?: {
|
|
19
|
+
Key?: string;
|
|
20
|
+
Value?: string;
|
|
21
|
+
}[];
|
|
22
|
+
}
|
|
23
|
+
export declare class EFSClient {
|
|
24
|
+
private client;
|
|
25
|
+
private region;
|
|
26
|
+
constructor(region?: string);
|
|
27
|
+
/**
|
|
28
|
+
* Describe EFS file systems
|
|
29
|
+
*/
|
|
30
|
+
describeFileSystems(options?: {
|
|
31
|
+
FileSystemId?: string;
|
|
32
|
+
CreationToken?: string;
|
|
33
|
+
}): Promise<{
|
|
34
|
+
FileSystems?: FileSystem[];
|
|
35
|
+
}>;
|
|
36
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AWS ElastiCache Operations
|
|
3
|
+
* Direct API calls without AWS CLI dependency
|
|
4
|
+
*/
|
|
5
|
+
export interface CacheCluster {
|
|
6
|
+
CacheClusterId: string;
|
|
7
|
+
CacheClusterStatus: string;
|
|
8
|
+
Engine: string;
|
|
9
|
+
EngineVersion: string;
|
|
10
|
+
CacheNodeType: string;
|
|
11
|
+
NumCacheNodes: number;
|
|
12
|
+
PreferredAvailabilityZone?: string;
|
|
13
|
+
CacheClusterCreateTime: string;
|
|
14
|
+
CacheNodes?: Array<{
|
|
15
|
+
CacheNodeId: string;
|
|
16
|
+
CacheNodeStatus: string;
|
|
17
|
+
Endpoint?: {
|
|
18
|
+
Address: string;
|
|
19
|
+
Port: number;
|
|
20
|
+
};
|
|
21
|
+
}>;
|
|
22
|
+
}
|
|
23
|
+
export interface ReplicationGroup {
|
|
24
|
+
ReplicationGroupId: string;
|
|
25
|
+
Status: string;
|
|
26
|
+
Description?: string;
|
|
27
|
+
MemberClusters?: string[];
|
|
28
|
+
NodeGroups?: Array<{
|
|
29
|
+
NodeGroupId: string;
|
|
30
|
+
Status: string;
|
|
31
|
+
PrimaryEndpoint?: {
|
|
32
|
+
Address: string;
|
|
33
|
+
Port: number;
|
|
34
|
+
};
|
|
35
|
+
}>;
|
|
36
|
+
}
|
|
37
|
+
export interface CacheEngineVersion {
|
|
38
|
+
Engine: string;
|
|
39
|
+
EngineVersion: string;
|
|
40
|
+
CacheParameterGroupFamily: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* ElastiCache management using direct API calls
|
|
44
|
+
*/
|
|
45
|
+
export declare class ElastiCacheClient {
|
|
46
|
+
private client;
|
|
47
|
+
private region;
|
|
48
|
+
constructor(region?: string, profile?: string);
|
|
49
|
+
/**
|
|
50
|
+
* List all cache clusters
|
|
51
|
+
*/
|
|
52
|
+
describeCacheClusters(cacheClusterId?: string): Promise<{
|
|
53
|
+
CacheClusters: CacheCluster[];
|
|
54
|
+
}>;
|
|
55
|
+
/**
|
|
56
|
+
* List all replication groups (Redis clusters)
|
|
57
|
+
*/
|
|
58
|
+
describeReplicationGroups(replicationGroupId?: string): Promise<{
|
|
59
|
+
ReplicationGroups: ReplicationGroup[];
|
|
60
|
+
}>;
|
|
61
|
+
/**
|
|
62
|
+
* Create a cache cluster
|
|
63
|
+
*/
|
|
64
|
+
createCacheCluster(options: {
|
|
65
|
+
cacheClusterId: string;
|
|
66
|
+
engine: 'memcached' | 'redis';
|
|
67
|
+
cacheNodeType: string;
|
|
68
|
+
numCacheNodes?: number;
|
|
69
|
+
engineVersion?: string;
|
|
70
|
+
port?: number;
|
|
71
|
+
securityGroupIds?: string[];
|
|
72
|
+
subnetGroupName?: string;
|
|
73
|
+
tags?: Array<{
|
|
74
|
+
Key: string;
|
|
75
|
+
Value: string;
|
|
76
|
+
}>;
|
|
77
|
+
}): Promise<{
|
|
78
|
+
CacheCluster: CacheCluster;
|
|
79
|
+
}>;
|
|
80
|
+
/**
|
|
81
|
+
* Delete a cache cluster
|
|
82
|
+
*/
|
|
83
|
+
deleteCacheCluster(cacheClusterId: string, finalSnapshotId?: string): Promise<void>;
|
|
84
|
+
/**
|
|
85
|
+
* Reboot cache cluster nodes
|
|
86
|
+
*/
|
|
87
|
+
rebootCacheCluster(cacheClusterId: string, nodeIds: string[]): Promise<void>;
|
|
88
|
+
/**
|
|
89
|
+
* List available cache engine versions
|
|
90
|
+
*/
|
|
91
|
+
describeCacheEngineVersions(engine?: string): Promise<{
|
|
92
|
+
CacheEngineVersions: CacheEngineVersion[];
|
|
93
|
+
}>;
|
|
94
|
+
/**
|
|
95
|
+
* Get cache cluster statistics (mock for now)
|
|
96
|
+
*/
|
|
97
|
+
getCacheStatistics(cacheClusterId: string): Promise<{
|
|
98
|
+
cpuUtilization?: number;
|
|
99
|
+
evictions?: number;
|
|
100
|
+
hits?: number;
|
|
101
|
+
misses?: number;
|
|
102
|
+
connections?: number;
|
|
103
|
+
}>;
|
|
104
|
+
/**
|
|
105
|
+
* Parse cache clusters from response
|
|
106
|
+
*/
|
|
107
|
+
private parseCacheClusters;
|
|
108
|
+
/**
|
|
109
|
+
* Parse single cache cluster from response
|
|
110
|
+
*/
|
|
111
|
+
private parseCacheCluster;
|
|
112
|
+
}
|