@stacksjs/ts-cloud 0.2.3 → 0.2.6

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.
Files changed (76) hide show
  1. package/dist/aws/acm.d.ts +215 -0
  2. package/dist/aws/application-autoscaling.d.ts +345 -0
  3. package/dist/aws/bedrock.d.ts +2672 -0
  4. package/dist/aws/client.d.ts +181 -0
  5. package/dist/aws/cloudformation.d.ts +187 -0
  6. package/dist/aws/cloudfront.d.ts +416 -0
  7. package/dist/aws/cloudwatch-logs.d.ts +70 -0
  8. package/dist/aws/comprehend.d.ts +616 -0
  9. package/dist/aws/connect.d.ts +533 -0
  10. package/dist/aws/deploy-imap.d.ts +26 -0
  11. package/dist/aws/dynamodb.d.ts +270 -0
  12. package/dist/aws/ec2.d.ts +545 -0
  13. package/dist/aws/ecr.d.ts +240 -0
  14. package/dist/aws/ecs.d.ts +267 -0
  15. package/dist/aws/efs.d.ts +36 -0
  16. package/dist/aws/elasticache.d.ts +112 -0
  17. package/dist/aws/elbv2.d.ts +389 -0
  18. package/dist/aws/email.d.ts +260 -0
  19. package/dist/aws/eventbridge.d.ts +197 -0
  20. package/dist/aws/iam.d.ts +1013 -0
  21. package/dist/aws/imap-server.d.ts +298 -0
  22. package/dist/aws/index.d.ts +53 -0
  23. package/dist/aws/kendra.d.ts +831 -0
  24. package/dist/aws/lambda.d.ts +319 -0
  25. package/dist/aws/opensearch.d.ts +121 -0
  26. package/dist/aws/personalize.d.ts +586 -0
  27. package/dist/aws/polly.d.ts +243 -0
  28. package/dist/aws/rds.d.ts +346 -0
  29. package/dist/aws/rekognition.d.ts +691 -0
  30. package/dist/aws/route53-domains.d.ts +161 -0
  31. package/dist/aws/route53.d.ts +330 -0
  32. package/dist/aws/s3.d.ts +535 -0
  33. package/dist/aws/scheduler.d.ts +224 -0
  34. package/dist/aws/secrets-manager.d.ts +267 -0
  35. package/dist/aws/ses.d.ts +441 -0
  36. package/dist/aws/setup-phone.d.ts +1 -0
  37. package/dist/aws/setup-sms.d.ts +116 -0
  38. package/dist/aws/sms.d.ts +477 -0
  39. package/dist/aws/smtp-server.d.ts +108 -0
  40. package/dist/aws/sns.d.ts +224 -0
  41. package/dist/aws/sqs.d.ts +107 -0
  42. package/dist/aws/ssm.d.ts +311 -0
  43. package/dist/aws/sts.d.ts +21 -0
  44. package/dist/aws/support.d.ts +139 -0
  45. package/dist/aws/test-imap.d.ts +15 -0
  46. package/dist/aws/textract.d.ts +477 -0
  47. package/dist/aws/transcribe.d.ts +79 -0
  48. package/dist/aws/translate.d.ts +424 -0
  49. package/dist/aws/voice.d.ts +361 -0
  50. package/dist/bin/cli.js +4480 -804
  51. package/dist/config.d.ts +5 -0
  52. package/dist/deploy/index.d.ts +6 -0
  53. package/dist/deploy/static-site-external-dns.d.ts +70 -0
  54. package/dist/deploy/static-site.d.ts +110 -0
  55. package/dist/dns/cloudflare.d.ts +74 -0
  56. package/dist/dns/godaddy.d.ts +63 -0
  57. package/dist/dns/index.d.ts +67 -0
  58. package/dist/dns/porkbun.d.ts +43 -0
  59. package/dist/dns/route53-adapter.d.ts +67 -0
  60. package/dist/dns/types.d.ts +100 -0
  61. package/dist/dns/validator.d.ts +105 -0
  62. package/dist/generators/index.d.ts +4 -0
  63. package/dist/generators/infrastructure.d.ts +115 -0
  64. package/dist/index.d.ts +9 -165
  65. package/dist/index.js +4971 -6013
  66. package/dist/push/apns.d.ts +140 -0
  67. package/dist/push/fcm.d.ts +205 -0
  68. package/dist/push/index.d.ts +44 -0
  69. package/dist/security/pre-deploy-scanner.d.ts +97 -0
  70. package/dist/ssl/acme-client.d.ts +133 -0
  71. package/dist/ssl/index.d.ts +6 -0
  72. package/dist/ssl/letsencrypt.d.ts +96 -0
  73. package/dist/utils/cli.d.ts +121 -0
  74. package/dist/validation/index.d.ts +4 -0
  75. package/dist/validation/template.d.ts +27 -0
  76. package/package.json +6 -6
@@ -0,0 +1,416 @@
1
+ /**
2
+ * AWS CloudFront Operations
3
+ * Direct API calls without AWS CLI dependency
4
+ */
5
+ export interface InvalidationOptions {
6
+ distributionId: string;
7
+ paths: string[];
8
+ callerReference?: string;
9
+ }
10
+ export interface Distribution {
11
+ Id: string;
12
+ ARN: string;
13
+ Status: string;
14
+ DomainName: string;
15
+ Aliases?: {
16
+ Quantity?: number;
17
+ Items?: string[];
18
+ };
19
+ Enabled: boolean;
20
+ }
21
+ /**
22
+ * CloudFront client using direct API calls
23
+ */
24
+ export declare class CloudFrontClient {
25
+ private client;
26
+ constructor(profile?: string);
27
+ /**
28
+ * Create cache invalidation
29
+ */
30
+ createInvalidation(options: InvalidationOptions): Promise<{
31
+ Id: string;
32
+ Status: string;
33
+ CreateTime: string;
34
+ }>;
35
+ /**
36
+ * Get invalidation status
37
+ */
38
+ getInvalidation(distributionId: string, invalidationId: string): Promise<{
39
+ Id: string;
40
+ Status: string;
41
+ CreateTime: string;
42
+ }>;
43
+ /**
44
+ * List invalidations
45
+ */
46
+ listInvalidations(distributionId: string): Promise<Array<{
47
+ Id: string;
48
+ Status: string;
49
+ CreateTime: string;
50
+ }>>;
51
+ /**
52
+ * Wait for invalidation to complete
53
+ */
54
+ waitForInvalidation(distributionId: string, invalidationId: string): Promise<void>;
55
+ /**
56
+ * List distributions
57
+ */
58
+ listDistributions(): Promise<Distribution[]>;
59
+ /**
60
+ * Get distribution by ID
61
+ */
62
+ getDistribution(distributionId: string): Promise<Distribution>;
63
+ /**
64
+ * Get distribution configuration (full config including origins and cache behaviors)
65
+ */
66
+ getDistributionConfig(distributionId: string): Promise<{
67
+ ETag: string;
68
+ DistributionConfig: {
69
+ Origins: {
70
+ Quantity: number;
71
+ Items: any;
72
+ };
73
+ DefaultCacheBehavior: {
74
+ TargetOriginId: string;
75
+ ViewerProtocolPolicy: string;
76
+ AllowedMethods?: {
77
+ Quantity: number;
78
+ Items: string[];
79
+ };
80
+ CachedMethods?: {
81
+ Quantity: number;
82
+ Items: string[];
83
+ };
84
+ ForwardedValues?: any;
85
+ TrustedSigners?: any;
86
+ MinTTL?: number;
87
+ DefaultTTL?: number;
88
+ MaxTTL?: number;
89
+ };
90
+ CacheBehaviors?: {
91
+ Quantity: number;
92
+ Items: Array<{
93
+ PathPattern: string;
94
+ TargetOriginId: string;
95
+ ViewerProtocolPolicy: string;
96
+ AllowedMethods?: {
97
+ Quantity: number;
98
+ Items: string[];
99
+ };
100
+ CachedMethods?: {
101
+ Quantity: number;
102
+ Items: string[];
103
+ };
104
+ ForwardedValues?: any;
105
+ MinTTL?: number;
106
+ DefaultTTL?: number;
107
+ MaxTTL?: number;
108
+ }>;
109
+ };
110
+ Aliases?: {
111
+ Quantity: number;
112
+ Items: string[];
113
+ };
114
+ Comment?: string;
115
+ Enabled: boolean;
116
+ };
117
+ }>;
118
+ /**
119
+ * Invalidate all files
120
+ */
121
+ invalidateAll(distributionId: string): Promise<{
122
+ Id: string;
123
+ Status: string;
124
+ CreateTime: string;
125
+ }>;
126
+ /**
127
+ * Invalidate specific paths
128
+ */
129
+ invalidatePaths(distributionId: string, paths: string[]): Promise<{
130
+ Id: string;
131
+ Status: string;
132
+ CreateTime: string;
133
+ }>;
134
+ /**
135
+ * Invalidate by pattern
136
+ */
137
+ invalidatePattern(distributionId: string, pattern: string): Promise<{
138
+ Id: string;
139
+ Status: string;
140
+ CreateTime: string;
141
+ }>;
142
+ /**
143
+ * Invalidate after deployment
144
+ * Useful for CI/CD pipelines
145
+ */
146
+ invalidateAfterDeployment(options: {
147
+ distributionId: string;
148
+ changedPaths?: string[];
149
+ invalidateAll?: boolean;
150
+ wait?: boolean;
151
+ }): Promise<{
152
+ invalidationId: string;
153
+ status: string;
154
+ }>;
155
+ /**
156
+ * Find distribution by domain name or alias
157
+ */
158
+ findDistributionByDomain(domain: string): Promise<Distribution | null>;
159
+ /**
160
+ * Batch invalidate multiple distributions
161
+ * Useful for multi-region or blue/green deployments
162
+ */
163
+ batchInvalidate(distributionIds: string[], paths?: string[]): Promise<Array<{
164
+ distributionId: string;
165
+ invalidationId: string;
166
+ status: string;
167
+ }>>;
168
+ /**
169
+ * Update custom error responses for a distribution
170
+ * Use this to configure how CloudFront handles 4xx/5xx errors from origins
171
+ */
172
+ updateCustomErrorResponses(options: {
173
+ distributionId: string;
174
+ customErrorResponses: Array<{
175
+ errorCode: number;
176
+ responsePagePath?: string;
177
+ responseCode?: number;
178
+ errorCachingMinTTL?: number;
179
+ }>;
180
+ }): Promise<{
181
+ Distribution: Distribution;
182
+ ETag: string;
183
+ }>;
184
+ /**
185
+ * Remove all custom error responses from a distribution
186
+ * This will make CloudFront return actual 4xx/5xx errors instead of custom pages
187
+ */
188
+ removeCustomErrorResponses(distributionId: string): Promise<{
189
+ Distribution: Distribution;
190
+ ETag: string;
191
+ }>;
192
+ /**
193
+ * Update distribution configuration
194
+ * This method updates the CloudFront distribution with new settings like aliases and certificates
195
+ */
196
+ updateDistribution(options: {
197
+ distributionId: string;
198
+ aliases?: string[];
199
+ certificateArn?: string;
200
+ comment?: string;
201
+ }): Promise<{
202
+ Distribution: Distribution;
203
+ ETag: string;
204
+ }>;
205
+ /**
206
+ * Helper to build XML from distribution config object
207
+ * CloudFront requires specific XML structures - this method handles the complex nesting
208
+ */
209
+ private buildDistributionConfigXml;
210
+ /**
211
+ * Add aliases to a distribution
212
+ */
213
+ addAliases(distributionId: string, aliases: string[], certificateArn: string): Promise<{
214
+ Distribution: Distribution;
215
+ ETag: string;
216
+ }>;
217
+ /**
218
+ * Create a CloudFront Function
219
+ * CloudFront Functions are lightweight JavaScript functions for viewer request/response manipulation
220
+ */
221
+ createFunction(options: {
222
+ name: string;
223
+ code: string;
224
+ comment?: string;
225
+ runtime?: 'cloudfront-js-1.0' | 'cloudfront-js-2.0';
226
+ }): Promise<{
227
+ FunctionARN: string;
228
+ Name: string;
229
+ Stage: string;
230
+ ETag: string;
231
+ }>;
232
+ /**
233
+ * List CloudFront Functions
234
+ */
235
+ listFunctions(): Promise<Array<{
236
+ Name: string;
237
+ FunctionARN: string;
238
+ Stage: string;
239
+ CreatedTime: string;
240
+ LastModifiedTime: string;
241
+ }>>;
242
+ /**
243
+ * Get a CloudFront Function
244
+ */
245
+ getFunction(name: string, stage?: 'DEVELOPMENT' | 'LIVE'): Promise<{
246
+ FunctionARN: string;
247
+ Name: string;
248
+ Stage: string;
249
+ ETag: string;
250
+ FunctionCode?: string;
251
+ } | null>;
252
+ /**
253
+ * Publish a CloudFront Function (move from DEVELOPMENT to LIVE stage)
254
+ * Can be called with just the name (will auto-fetch ETag) or with options object
255
+ */
256
+ publishFunction(nameOrOptions: string | {
257
+ Name: string;
258
+ IfMatch: string;
259
+ }, etag?: string): Promise<{
260
+ FunctionARN: string;
261
+ Stage: string;
262
+ FunctionSummary?: {
263
+ Name: string;
264
+ FunctionMetadata: {
265
+ FunctionARN: string;
266
+ Stage: string;
267
+ };
268
+ };
269
+ }>;
270
+ /**
271
+ * Describe a CloudFront Function (get metadata including ETag)
272
+ */
273
+ describeFunction(options: {
274
+ Name: string;
275
+ Stage?: 'DEVELOPMENT' | 'LIVE';
276
+ }): Promise<{
277
+ ETag: string;
278
+ FunctionSummary: {
279
+ Name: string;
280
+ Status: string;
281
+ FunctionConfig: {
282
+ Comment: string;
283
+ Runtime: string;
284
+ };
285
+ FunctionMetadata: {
286
+ FunctionARN: string;
287
+ Stage: string;
288
+ CreatedTime: string;
289
+ LastModifiedTime: string;
290
+ };
291
+ };
292
+ }>;
293
+ /**
294
+ * Update a CloudFront Function
295
+ */
296
+ updateFunction(options: {
297
+ Name: string;
298
+ FunctionCode: string;
299
+ FunctionConfig: {
300
+ Comment: string;
301
+ Runtime: 'cloudfront-js-1.0' | 'cloudfront-js-2.0';
302
+ };
303
+ IfMatch: string;
304
+ }): Promise<{
305
+ ETag: string;
306
+ FunctionSummary: {
307
+ Name: string;
308
+ FunctionMetadata: {
309
+ FunctionARN: string;
310
+ Stage: string;
311
+ };
312
+ };
313
+ }>;
314
+ /**
315
+ * Delete a CloudFront Function
316
+ */
317
+ deleteFunction(name: string, etag?: string): Promise<void>;
318
+ /**
319
+ * Create a standard index.html rewrite function for S3 static sites
320
+ * This function rewrites directory requests to index.html
321
+ */
322
+ createIndexRewriteFunction(name: string): Promise<{
323
+ FunctionARN: string;
324
+ Name: string;
325
+ Stage: string;
326
+ ETag: string;
327
+ }>;
328
+ /**
329
+ * Get origin access control configurations
330
+ */
331
+ listOriginAccessControls(): Promise<Array<{
332
+ Id: string;
333
+ Name: string;
334
+ Description?: string;
335
+ SigningProtocol: string;
336
+ SigningBehavior: string;
337
+ OriginAccessControlOriginType: string;
338
+ }>>;
339
+ /**
340
+ * Create an Origin Access Control for S3
341
+ */
342
+ createOriginAccessControl(options: {
343
+ name: string;
344
+ description?: string;
345
+ signingProtocol?: 'sigv4';
346
+ signingBehavior?: 'always' | 'never' | 'no-override';
347
+ originType?: 's3';
348
+ }): Promise<{
349
+ Id: string;
350
+ Name: string;
351
+ Description: string;
352
+ SigningProtocol: string;
353
+ SigningBehavior: string;
354
+ OriginAccessControlOriginType: string;
355
+ ETag: string;
356
+ }>;
357
+ /**
358
+ * Find or create an Origin Access Control
359
+ */
360
+ findOrCreateOriginAccessControl(name: string): Promise<{
361
+ Id: string;
362
+ Name: string;
363
+ isNew: boolean;
364
+ }>;
365
+ /**
366
+ * Create a CloudFront distribution for a static S3 website
367
+ */
368
+ createDistributionForS3(options: {
369
+ bucketName: string;
370
+ bucketRegion: string;
371
+ originAccessControlId: string;
372
+ aliases?: string[];
373
+ certificateArn?: string;
374
+ defaultRootObject?: string;
375
+ comment?: string;
376
+ priceClass?: 'PriceClass_100' | 'PriceClass_200' | 'PriceClass_All';
377
+ enabled?: boolean;
378
+ }): Promise<{
379
+ Id: string;
380
+ ARN: string;
381
+ DomainName: string;
382
+ Status: string;
383
+ ETag: string;
384
+ }>;
385
+ /**
386
+ * Get S3 bucket policy for CloudFront OAC access
387
+ */
388
+ static getS3BucketPolicyForCloudFront(bucketName: string, distributionArn: string): object;
389
+ /**
390
+ * Wait for distribution to be deployed
391
+ */
392
+ waitForDistributionDeployed(distributionId: string, maxAttempts?: number): Promise<boolean>;
393
+ /**
394
+ * Disable a CloudFront distribution
395
+ * Must be disabled before it can be deleted
396
+ */
397
+ disableDistribution(distributionId: string): Promise<{
398
+ ETag: string;
399
+ }>;
400
+ /**
401
+ * Delete a CloudFront distribution
402
+ * Distribution must be disabled first
403
+ */
404
+ deleteDistribution(distributionId: string, etag?: string): Promise<void>;
405
+ /**
406
+ * Wait for distribution to be disabled (ready for deletion)
407
+ */
408
+ waitForDistributionDisabled(distributionId: string, maxAttempts?: number): Promise<boolean>;
409
+ /**
410
+ * Remove a specific alias (CNAME) from a CloudFront distribution
411
+ * This allows the alias to be used by another distribution
412
+ */
413
+ removeAlias(distributionId: string, alias: string): Promise<{
414
+ ETag: string;
415
+ }>;
416
+ }
@@ -0,0 +1,70 @@
1
+ /**
2
+ * AWS CloudWatch Logs Operations
3
+ * Direct API calls without AWS CLI dependency
4
+ */
5
+ export interface LogEvent {
6
+ timestamp?: number;
7
+ message?: string;
8
+ ingestionTime?: number;
9
+ }
10
+ export interface LogStream {
11
+ logStreamName?: string;
12
+ creationTime?: number;
13
+ firstEventTimestamp?: number;
14
+ lastEventTimestamp?: number;
15
+ lastIngestionTime?: number;
16
+ uploadSequenceToken?: string;
17
+ arn?: string;
18
+ storedBytes?: number;
19
+ }
20
+ export declare class CloudWatchLogsClient {
21
+ private client;
22
+ private region;
23
+ constructor(region?: string, profile?: string);
24
+ describeLogStreams(options: {
25
+ logGroupName: string;
26
+ logStreamNamePrefix?: string;
27
+ orderBy?: 'LogStreamName' | 'LastEventTime';
28
+ descending?: boolean;
29
+ limit?: number;
30
+ }): Promise<{
31
+ logStreams?: LogStream[];
32
+ nextToken?: string;
33
+ }>;
34
+ getLogEvents(options: {
35
+ logGroupName: string;
36
+ logStreamName: string;
37
+ startTime?: number;
38
+ endTime?: number;
39
+ limit?: number;
40
+ startFromHead?: boolean;
41
+ }): Promise<{
42
+ events?: LogEvent[];
43
+ nextForwardToken?: string;
44
+ nextBackwardToken?: string;
45
+ }>;
46
+ describeLogGroups(options?: {
47
+ logGroupNamePrefix?: string;
48
+ limit?: number;
49
+ }): Promise<{
50
+ logGroups?: {
51
+ logGroupName?: string;
52
+ arn?: string;
53
+ creationTime?: number;
54
+ }[];
55
+ nextToken?: string;
56
+ }>;
57
+ deleteLogGroup(logGroupName: string): Promise<void>;
58
+ filterLogEvents(options: {
59
+ logGroupName: string;
60
+ logStreamNames?: string[];
61
+ startTime?: number;
62
+ endTime?: number;
63
+ filterPattern?: string;
64
+ limit?: number;
65
+ }): Promise<{
66
+ events?: LogEvent[];
67
+ searchedLogStreams?: any[];
68
+ nextToken?: string;
69
+ }>;
70
+ }