@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.
- 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,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
|
+
}
|