@stacksjs/ts-cloud 0.2.2 → 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.
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 +4500 -809
  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 +24067 -6430
  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,224 @@
1
+ /**
2
+ * AWS SNS (Simple Notification Service) Operations
3
+ * Direct API calls without AWS SDK dependency
4
+ */
5
+ export interface SNSTopicAttributes {
6
+ TopicArn?: string;
7
+ DisplayName?: string;
8
+ Policy?: string;
9
+ Owner?: string;
10
+ SubscriptionsPending?: string;
11
+ SubscriptionsConfirmed?: string;
12
+ SubscriptionsDeleted?: string;
13
+ DeliveryPolicy?: string;
14
+ EffectiveDeliveryPolicy?: string;
15
+ KmsMasterKeyId?: string;
16
+ }
17
+ export interface SNSSubscriptionAttributes {
18
+ SubscriptionArn?: string;
19
+ TopicArn?: string;
20
+ Protocol?: string;
21
+ Endpoint?: string;
22
+ Owner?: string;
23
+ ConfirmationWasAuthenticated?: string;
24
+ RawMessageDelivery?: string;
25
+ FilterPolicy?: string;
26
+ }
27
+ export type SNSProtocol = 'http' | 'https' | 'email' | 'email-json' | 'sms' | 'sqs' | 'application' | 'lambda';
28
+ /**
29
+ * SNS service management using direct API calls
30
+ */
31
+ export declare class SNSClient {
32
+ private client;
33
+ private region;
34
+ constructor(region?: string);
35
+ /**
36
+ * Build form-encoded body for SNS API
37
+ */
38
+ private buildFormBody;
39
+ /**
40
+ * Create a new SNS topic
41
+ */
42
+ createTopic(params: {
43
+ Name: string;
44
+ DisplayName?: string;
45
+ Tags?: Array<{
46
+ Key: string;
47
+ Value: string;
48
+ }>;
49
+ Attributes?: Record<string, string>;
50
+ }): Promise<{
51
+ TopicArn?: string;
52
+ }>;
53
+ /**
54
+ * Delete an SNS topic
55
+ */
56
+ deleteTopic(topicArn: string): Promise<void>;
57
+ /**
58
+ * List all SNS topics
59
+ */
60
+ listTopics(nextToken?: string): Promise<{
61
+ Topics?: Array<{
62
+ TopicArn?: string;
63
+ }>;
64
+ NextToken?: string;
65
+ }>;
66
+ /**
67
+ * Get topic attributes
68
+ */
69
+ getTopicAttributes(topicArn: string): Promise<SNSTopicAttributes>;
70
+ /**
71
+ * Set topic attributes
72
+ */
73
+ setTopicAttributes(params: {
74
+ TopicArn: string;
75
+ AttributeName: string;
76
+ AttributeValue: string;
77
+ }): Promise<void>;
78
+ /**
79
+ * Subscribe to a topic
80
+ */
81
+ subscribe(params: {
82
+ TopicArn: string;
83
+ Protocol: SNSProtocol;
84
+ Endpoint: string;
85
+ Attributes?: Record<string, string>;
86
+ ReturnSubscriptionArn?: boolean;
87
+ }): Promise<{
88
+ SubscriptionArn?: string;
89
+ }>;
90
+ /**
91
+ * Unsubscribe from a topic
92
+ */
93
+ unsubscribe(subscriptionArn: string): Promise<void>;
94
+ /**
95
+ * List subscriptions for a topic
96
+ */
97
+ listSubscriptionsByTopic(topicArn: string, nextToken?: string): Promise<{
98
+ Subscriptions?: SNSSubscriptionAttributes[];
99
+ NextToken?: string;
100
+ }>;
101
+ /**
102
+ * Publish a message to a topic
103
+ */
104
+ publish(params: {
105
+ TopicArn?: string;
106
+ TargetArn?: string;
107
+ PhoneNumber?: string;
108
+ Message: string;
109
+ Subject?: string;
110
+ MessageStructure?: 'json';
111
+ MessageAttributes?: Record<string, {
112
+ DataType: 'String' | 'Number' | 'Binary';
113
+ StringValue?: string;
114
+ BinaryValue?: string;
115
+ }>;
116
+ }): Promise<{
117
+ MessageId?: string;
118
+ }>;
119
+ /**
120
+ * Publish SMS message directly (without topic)
121
+ */
122
+ publishSMS(phoneNumber: string, message: string, senderId?: string): Promise<{
123
+ MessageId?: string;
124
+ }>;
125
+ /**
126
+ * Subscribe an email address to a topic
127
+ */
128
+ subscribeEmail(topicArn: string, email: string): Promise<{
129
+ SubscriptionArn?: string;
130
+ }>;
131
+ /**
132
+ * Subscribe a Lambda function to a topic
133
+ */
134
+ subscribeLambda(topicArn: string, lambdaArn: string): Promise<{
135
+ SubscriptionArn?: string;
136
+ }>;
137
+ /**
138
+ * Subscribe an SQS queue to a topic
139
+ */
140
+ subscribeSqs(topicArn: string, queueArn: string, rawMessageDelivery?: boolean): Promise<{
141
+ SubscriptionArn?: string;
142
+ }>;
143
+ /**
144
+ * Subscribe an HTTP/HTTPS endpoint to a topic
145
+ */
146
+ subscribeHttp(topicArn: string, url: string, rawMessageDelivery?: boolean): Promise<{
147
+ SubscriptionArn?: string;
148
+ }>;
149
+ /**
150
+ * Subscribe an SMS number to a topic
151
+ */
152
+ subscribeSms(topicArn: string, phoneNumber: string): Promise<{
153
+ SubscriptionArn?: string;
154
+ }>;
155
+ /**
156
+ * Check if topic exists
157
+ */
158
+ topicExists(topicArn: string): Promise<boolean>;
159
+ /**
160
+ * Get SMS attributes (sandbox status, spending limits, etc.)
161
+ */
162
+ getSMSAttributes(): Promise<{
163
+ MonthlySpendLimit?: string;
164
+ DeliveryStatusIAMRole?: string;
165
+ DeliveryStatusSuccessSamplingRate?: string;
166
+ DefaultSenderID?: string;
167
+ DefaultSMSType?: 'Promotional' | 'Transactional';
168
+ UsageReportS3Bucket?: string;
169
+ }>;
170
+ /**
171
+ * Set SMS attributes (sender ID, message type, etc.)
172
+ */
173
+ setSMSAttributes(attributes: {
174
+ MonthlySpendLimit?: string;
175
+ DeliveryStatusIAMRole?: string;
176
+ DeliveryStatusSuccessSamplingRate?: string;
177
+ DefaultSenderID?: string;
178
+ DefaultSMSType?: 'Promotional' | 'Transactional';
179
+ UsageReportS3Bucket?: string;
180
+ }): Promise<void>;
181
+ /**
182
+ * Check if phone number is opted out
183
+ */
184
+ checkIfPhoneNumberIsOptedOut(phoneNumber: string): Promise<boolean>;
185
+ /**
186
+ * List phone numbers that have opted out of receiving SMS
187
+ */
188
+ listPhoneNumbersOptedOut(nextToken?: string): Promise<{
189
+ phoneNumbers?: string[];
190
+ nextToken?: string;
191
+ }>;
192
+ /**
193
+ * Opt a phone number back in to receive SMS (requires user consent)
194
+ */
195
+ optInPhoneNumber(phoneNumber: string): Promise<void>;
196
+ /**
197
+ * List sandbox phone numbers (for SMS sandbox mode)
198
+ */
199
+ listSMSSandboxPhoneNumbers(nextToken?: string): Promise<{
200
+ PhoneNumbers?: Array<{
201
+ PhoneNumber?: string;
202
+ Status?: 'Pending' | 'Verified';
203
+ }>;
204
+ NextToken?: string;
205
+ }>;
206
+ /**
207
+ * Create a sandbox phone number for testing
208
+ */
209
+ createSMSSandboxPhoneNumber(phoneNumber: string, languageCode?: string): Promise<void>;
210
+ /**
211
+ * Verify a sandbox phone number with OTP
212
+ */
213
+ verifySMSSandboxPhoneNumber(phoneNumber: string, oneTimePassword: string): Promise<void>;
214
+ /**
215
+ * Delete a sandbox phone number
216
+ */
217
+ deleteSMSSandboxPhoneNumber(phoneNumber: string): Promise<void>;
218
+ /**
219
+ * Get SMS sandbox account status
220
+ */
221
+ getSMSSandboxAccountStatus(): Promise<{
222
+ IsInSandbox: boolean;
223
+ }>;
224
+ }
@@ -0,0 +1,107 @@
1
+ /**
2
+ * AWS SQS Operations
3
+ * Direct API calls without AWS CLI dependency
4
+ */
5
+ export interface QueueAttributes {
6
+ QueueUrl: string;
7
+ QueueArn?: string;
8
+ ApproximateNumberOfMessages?: string;
9
+ ApproximateNumberOfMessagesNotVisible?: string;
10
+ ApproximateNumberOfMessagesDelayed?: string;
11
+ CreatedTimestamp?: string;
12
+ LastModifiedTimestamp?: string;
13
+ VisibilityTimeout?: string;
14
+ MaximumMessageSize?: string;
15
+ MessageRetentionPeriod?: string;
16
+ DelaySeconds?: string;
17
+ ReceiveMessageWaitTimeSeconds?: string;
18
+ FifoQueue?: string;
19
+ ContentBasedDeduplication?: string;
20
+ }
21
+ export interface CreateQueueOptions {
22
+ queueName: string;
23
+ fifo?: boolean;
24
+ visibilityTimeout?: number;
25
+ messageRetentionPeriod?: number;
26
+ delaySeconds?: number;
27
+ maxMessageSize?: number;
28
+ receiveMessageWaitTime?: number;
29
+ deadLetterTargetArn?: string;
30
+ maxReceiveCount?: number;
31
+ contentBasedDeduplication?: boolean;
32
+ tags?: Record<string, string>;
33
+ }
34
+ export interface Message {
35
+ MessageId: string;
36
+ ReceiptHandle: string;
37
+ Body: string;
38
+ Attributes?: Record<string, string>;
39
+ MessageAttributes?: Record<string, any>;
40
+ }
41
+ /**
42
+ * SQS queue management using direct API calls
43
+ */
44
+ export declare class SQSClient {
45
+ private client;
46
+ private region;
47
+ constructor(region?: string, profile?: string);
48
+ /**
49
+ * Create a new SQS queue
50
+ */
51
+ createQueue(options: CreateQueueOptions): Promise<{
52
+ QueueUrl: string;
53
+ }>;
54
+ /**
55
+ * List all queues
56
+ */
57
+ listQueues(prefix?: string): Promise<{
58
+ QueueUrls: string[];
59
+ }>;
60
+ /**
61
+ * Get queue attributes
62
+ */
63
+ getQueueAttributes(queueUrl: string): Promise<{
64
+ Attributes: Record<string, string>;
65
+ }>;
66
+ /**
67
+ * Get queue URL by name
68
+ */
69
+ getQueueUrl(queueName: string): Promise<{
70
+ QueueUrl: string;
71
+ }>;
72
+ /**
73
+ * Delete a queue
74
+ */
75
+ deleteQueue(queueUrl: string): Promise<void>;
76
+ /**
77
+ * Purge queue (delete all messages)
78
+ */
79
+ purgeQueue(queueUrl: string): Promise<void>;
80
+ /**
81
+ * Send message to queue
82
+ */
83
+ sendMessage(options: {
84
+ queueUrl: string;
85
+ messageBody: string;
86
+ delaySeconds?: number;
87
+ messageGroupId?: string;
88
+ messageDeduplicationId?: string;
89
+ }): Promise<{
90
+ MessageId: string;
91
+ }>;
92
+ /**
93
+ * Receive messages from queue
94
+ */
95
+ receiveMessages(options: {
96
+ queueUrl: string;
97
+ maxMessages?: number;
98
+ visibilityTimeout?: number;
99
+ waitTimeSeconds?: number;
100
+ }): Promise<{
101
+ Messages: Message[];
102
+ }>;
103
+ /**
104
+ * Delete message from queue
105
+ */
106
+ deleteMessage(queueUrl: string, receiptHandle: string): Promise<void>;
107
+ }
@@ -0,0 +1,311 @@
1
+ /**
2
+ * AWS SSM (Systems Manager) Parameter Store Client
3
+ * Manages parameters and secrets using direct API calls
4
+ */
5
+ export interface Parameter {
6
+ Name?: string;
7
+ Type?: 'String' | 'StringList' | 'SecureString';
8
+ Value?: string;
9
+ Version?: number;
10
+ LastModifiedDate?: string;
11
+ ARN?: string;
12
+ DataType?: string;
13
+ Description?: string;
14
+ AllowedPattern?: string;
15
+ KeyId?: string;
16
+ Tier?: 'Standard' | 'Advanced' | 'Intelligent-Tiering';
17
+ }
18
+ export interface ParameterHistory {
19
+ Name?: string;
20
+ Type?: 'String' | 'StringList' | 'SecureString';
21
+ KeyId?: string;
22
+ LastModifiedDate?: string;
23
+ LastModifiedUser?: string;
24
+ Description?: string;
25
+ Value?: string;
26
+ Version?: number;
27
+ Labels?: string[];
28
+ Tier?: string;
29
+ }
30
+ export interface PutParameterOptions {
31
+ Name: string;
32
+ Value: string;
33
+ Type?: 'String' | 'StringList' | 'SecureString';
34
+ Description?: string;
35
+ KeyId?: string;
36
+ Overwrite?: boolean;
37
+ AllowedPattern?: string;
38
+ Tags?: {
39
+ Key: string;
40
+ Value: string;
41
+ }[];
42
+ Tier?: 'Standard' | 'Advanced' | 'Intelligent-Tiering';
43
+ DataType?: string;
44
+ }
45
+ export interface GetParameterOptions {
46
+ Name: string;
47
+ WithDecryption?: boolean;
48
+ }
49
+ export interface GetParametersOptions {
50
+ Names: string[];
51
+ WithDecryption?: boolean;
52
+ }
53
+ export interface GetParametersByPathOptions {
54
+ Path: string;
55
+ Recursive?: boolean;
56
+ WithDecryption?: boolean;
57
+ MaxResults?: number;
58
+ NextToken?: string;
59
+ ParameterFilters?: {
60
+ Key: string;
61
+ Option?: string;
62
+ Values?: string[];
63
+ }[];
64
+ }
65
+ export interface DeleteParameterOptions {
66
+ Name: string;
67
+ }
68
+ /**
69
+ * SSM Parameter Store client using direct API calls
70
+ */
71
+ export declare class SSMClient {
72
+ private client;
73
+ private region;
74
+ constructor(region?: string, profile?: string);
75
+ /**
76
+ * Put a parameter to Parameter Store
77
+ */
78
+ putParameter(options: PutParameterOptions): Promise<{
79
+ Version?: number;
80
+ Tier?: string;
81
+ }>;
82
+ /**
83
+ * Get a parameter from Parameter Store
84
+ */
85
+ getParameter(options: GetParameterOptions): Promise<{
86
+ Parameter?: Parameter;
87
+ }>;
88
+ /**
89
+ * Get multiple parameters from Parameter Store
90
+ */
91
+ getParameters(options: GetParametersOptions): Promise<{
92
+ Parameters?: Parameter[];
93
+ InvalidParameters?: string[];
94
+ }>;
95
+ /**
96
+ * Get parameters by path (hierarchical)
97
+ */
98
+ getParametersByPath(options: GetParametersByPathOptions): Promise<{
99
+ Parameters?: Parameter[];
100
+ NextToken?: string;
101
+ }>;
102
+ /**
103
+ * Delete a parameter from Parameter Store
104
+ */
105
+ deleteParameter(options: DeleteParameterOptions): Promise<void>;
106
+ /**
107
+ * Delete multiple parameters from Parameter Store
108
+ */
109
+ deleteParameters(names: string[]): Promise<{
110
+ DeletedParameters?: string[];
111
+ InvalidParameters?: string[];
112
+ }>;
113
+ /**
114
+ * Describe parameters (metadata only, no values)
115
+ */
116
+ describeParameters(options?: {
117
+ Filters?: {
118
+ Key: string;
119
+ Values: string[];
120
+ }[];
121
+ ParameterFilters?: {
122
+ Key: string;
123
+ Option?: string;
124
+ Values?: string[];
125
+ }[];
126
+ MaxResults?: number;
127
+ NextToken?: string;
128
+ }): Promise<{
129
+ Parameters?: Parameter[];
130
+ NextToken?: string;
131
+ }>;
132
+ /**
133
+ * Get parameter history
134
+ */
135
+ getParameterHistory(options: {
136
+ Name: string;
137
+ WithDecryption?: boolean;
138
+ MaxResults?: number;
139
+ NextToken?: string;
140
+ }): Promise<{
141
+ Parameters?: ParameterHistory[];
142
+ NextToken?: string;
143
+ }>;
144
+ /**
145
+ * Label a parameter version
146
+ */
147
+ labelParameterVersion(options: {
148
+ Name: string;
149
+ ParameterVersion?: number;
150
+ Labels: string[];
151
+ }): Promise<{
152
+ InvalidLabels?: string[];
153
+ ParameterVersion?: number;
154
+ }>;
155
+ /**
156
+ * Add tags to a parameter
157
+ */
158
+ addTagsToResource(options: {
159
+ ResourceType: 'Parameter';
160
+ ResourceId: string;
161
+ Tags: {
162
+ Key: string;
163
+ Value: string;
164
+ }[];
165
+ }): Promise<void>;
166
+ /**
167
+ * Remove tags from a parameter
168
+ */
169
+ removeTagsFromResource(options: {
170
+ ResourceType: 'Parameter';
171
+ ResourceId: string;
172
+ TagKeys: string[];
173
+ }): Promise<void>;
174
+ /**
175
+ * List tags for a parameter
176
+ */
177
+ listTagsForResource(options: {
178
+ ResourceType: 'Parameter';
179
+ ResourceId: string;
180
+ }): Promise<{
181
+ TagList?: {
182
+ Key: string;
183
+ Value: string;
184
+ }[];
185
+ }>;
186
+ /**
187
+ * Helper: Set a string parameter
188
+ */
189
+ setString(name: string, value: string, options?: {
190
+ description?: string;
191
+ overwrite?: boolean;
192
+ tags?: {
193
+ Key: string;
194
+ Value: string;
195
+ }[];
196
+ }): Promise<{
197
+ Version?: number;
198
+ }>;
199
+ /**
200
+ * Helper: Set a secure string parameter (encrypted)
201
+ */
202
+ setSecureString(name: string, value: string, options?: {
203
+ description?: string;
204
+ overwrite?: boolean;
205
+ kmsKeyId?: string;
206
+ tags?: {
207
+ Key: string;
208
+ Value: string;
209
+ }[];
210
+ }): Promise<{
211
+ Version?: number;
212
+ }>;
213
+ /**
214
+ * Helper: Get a parameter value (decrypted)
215
+ */
216
+ getValue(name: string): Promise<string | undefined>;
217
+ /**
218
+ * Helper: Get all parameters under a path
219
+ */
220
+ getAllByPath(path: string, recursive?: boolean): Promise<Parameter[]>;
221
+ /**
222
+ * Parse parameter response
223
+ */
224
+ private parseParameter;
225
+ /**
226
+ * Send a command to EC2 instances via SSM. Accepts either explicit
227
+ * `InstanceIds` or tag-based `Targets` (one is required).
228
+ */
229
+ sendCommand(options: {
230
+ InstanceIds?: string[];
231
+ Targets?: Array<{
232
+ Key: string;
233
+ Values: string[];
234
+ }>;
235
+ DocumentName: string;
236
+ Parameters?: Record<string, string[]>;
237
+ TimeoutSeconds?: number;
238
+ Comment?: string;
239
+ OutputS3BucketName?: string;
240
+ OutputS3KeyPrefix?: string;
241
+ }): Promise<{
242
+ CommandId?: string;
243
+ Status?: string;
244
+ StatusDetails?: string;
245
+ }>;
246
+ /**
247
+ * Get command invocation result
248
+ */
249
+ getCommandInvocation(options: {
250
+ CommandId: string;
251
+ InstanceId: string;
252
+ }): Promise<{
253
+ Status?: string;
254
+ StatusDetails?: string;
255
+ StandardOutputContent?: string;
256
+ StandardErrorContent?: string;
257
+ ResponseCode?: number;
258
+ }>;
259
+ /**
260
+ * Run a shell command on an EC2 instance and wait for result
261
+ */
262
+ runShellCommand(instanceId: string, commands: string[], options?: {
263
+ timeoutSeconds?: number;
264
+ waitForCompletion?: boolean;
265
+ pollIntervalMs?: number;
266
+ maxWaitMs?: number;
267
+ }): Promise<{
268
+ success: boolean;
269
+ output?: string;
270
+ error?: string;
271
+ status?: string;
272
+ }>;
273
+ /**
274
+ * List per-instance invocations for a previously-sent command.
275
+ * Used by tag-based deploys to discover which instances received the
276
+ * command and poll each one for completion.
277
+ */
278
+ listCommandInvocations(options: {
279
+ CommandId: string;
280
+ Details?: boolean;
281
+ }): Promise<Array<{
282
+ InstanceId: string;
283
+ Status?: string;
284
+ StatusDetails?: string;
285
+ StandardOutputContent?: string;
286
+ StandardErrorContent?: string;
287
+ }>>;
288
+ /**
289
+ * Fan out a shell command to every EC2 instance matching the given tags
290
+ * and wait for all of them to finish. The Forge-style "deploy to my app
291
+ * servers" primitive — no instance IDs to track, just tag filters.
292
+ */
293
+ sendCommandByTags(options: {
294
+ tags: Record<string, string>;
295
+ commands: string[];
296
+ timeoutSeconds?: number;
297
+ pollIntervalMs?: number;
298
+ maxWaitMs?: number;
299
+ comment?: string;
300
+ }): Promise<{
301
+ success: boolean;
302
+ instanceCount: number;
303
+ perInstance: Array<{
304
+ instanceId: string;
305
+ status: string;
306
+ output?: string;
307
+ error?: string;
308
+ }>;
309
+ error?: string;
310
+ }>;
311
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * AWS STS Operations
3
+ * Direct API calls without AWS CLI dependency
4
+ */
5
+ export interface CallerIdentity {
6
+ UserId?: string;
7
+ Account?: string;
8
+ Arn?: string;
9
+ }
10
+ /**
11
+ * STS (Security Token Service) management using direct API calls
12
+ */
13
+ export declare class STSClient {
14
+ private client;
15
+ private region;
16
+ constructor(region?: string, profile?: string);
17
+ /**
18
+ * Get information about the IAM identity whose credentials are used to call the operation
19
+ */
20
+ getCallerIdentity(): Promise<CallerIdentity>;
21
+ }