@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,441 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AWS SES (Simple Email Service) Operations
|
|
3
|
+
* Direct API calls without AWS SDK dependency
|
|
4
|
+
*/
|
|
5
|
+
export interface EmailIdentity {
|
|
6
|
+
IdentityType?: 'EMAIL_ADDRESS' | 'DOMAIN' | 'MANAGED_DOMAIN';
|
|
7
|
+
IdentityName?: string;
|
|
8
|
+
SendingEnabled?: boolean;
|
|
9
|
+
VerificationStatus?: 'PENDING' | 'SUCCESS' | 'FAILED' | 'TEMPORARY_FAILURE' | 'NOT_STARTED';
|
|
10
|
+
DkimAttributes?: {
|
|
11
|
+
SigningEnabled?: boolean;
|
|
12
|
+
Status?: 'PENDING' | 'SUCCESS' | 'FAILED' | 'TEMPORARY_FAILURE' | 'NOT_STARTED';
|
|
13
|
+
Tokens?: string[];
|
|
14
|
+
SigningAttributesOrigin?: 'AWS_SES' | 'EXTERNAL';
|
|
15
|
+
};
|
|
16
|
+
MailFromAttributes?: {
|
|
17
|
+
MailFromDomain?: string;
|
|
18
|
+
MailFromDomainStatus?: 'PENDING' | 'SUCCESS' | 'FAILED' | 'TEMPORARY_FAILURE';
|
|
19
|
+
BehaviorOnMxFailure?: 'USE_DEFAULT_VALUE' | 'REJECT_MESSAGE';
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export interface SendEmailResult {
|
|
23
|
+
MessageId?: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* SES email service management using direct API calls
|
|
27
|
+
*/
|
|
28
|
+
export declare class SESClient {
|
|
29
|
+
private client;
|
|
30
|
+
private region;
|
|
31
|
+
constructor(region?: string);
|
|
32
|
+
/**
|
|
33
|
+
* Create email identity (domain or email address)
|
|
34
|
+
* Uses SES v2 API
|
|
35
|
+
*/
|
|
36
|
+
createEmailIdentity(params: {
|
|
37
|
+
EmailIdentity: string;
|
|
38
|
+
DkimSigningAttributes?: {
|
|
39
|
+
DomainSigningSelector?: string;
|
|
40
|
+
DomainSigningPrivateKey?: string;
|
|
41
|
+
};
|
|
42
|
+
Tags?: Array<{
|
|
43
|
+
Key: string;
|
|
44
|
+
Value: string;
|
|
45
|
+
}>;
|
|
46
|
+
}): Promise<{
|
|
47
|
+
IdentityType?: string;
|
|
48
|
+
VerifiedForSendingStatus?: boolean;
|
|
49
|
+
DkimAttributes?: {
|
|
50
|
+
SigningEnabled?: boolean;
|
|
51
|
+
Status?: string;
|
|
52
|
+
Tokens?: string[];
|
|
53
|
+
SigningAttributesOrigin?: string;
|
|
54
|
+
};
|
|
55
|
+
}>;
|
|
56
|
+
/**
|
|
57
|
+
* Get email identity details
|
|
58
|
+
*/
|
|
59
|
+
getEmailIdentity(emailIdentity: string): Promise<EmailIdentity>;
|
|
60
|
+
/**
|
|
61
|
+
* Configure MAIL FROM domain for an email identity
|
|
62
|
+
*/
|
|
63
|
+
putEmailIdentityMailFromAttributes(emailIdentity: string, params: {
|
|
64
|
+
MailFromDomain?: string;
|
|
65
|
+
BehaviorOnMxFailure?: 'USE_DEFAULT_VALUE' | 'REJECT_MESSAGE';
|
|
66
|
+
}): Promise<void>;
|
|
67
|
+
/**
|
|
68
|
+
* List email identities
|
|
69
|
+
*/
|
|
70
|
+
listEmailIdentities(params?: {
|
|
71
|
+
PageSize?: number;
|
|
72
|
+
NextToken?: string;
|
|
73
|
+
}): Promise<{
|
|
74
|
+
EmailIdentities?: Array<{
|
|
75
|
+
IdentityType?: string;
|
|
76
|
+
IdentityName?: string;
|
|
77
|
+
SendingEnabled?: boolean;
|
|
78
|
+
}>;
|
|
79
|
+
NextToken?: string;
|
|
80
|
+
}>;
|
|
81
|
+
/**
|
|
82
|
+
* Delete email identity
|
|
83
|
+
*/
|
|
84
|
+
deleteEmailIdentity(emailIdentity: string): Promise<void>;
|
|
85
|
+
/**
|
|
86
|
+
* Enable/disable DKIM signing for identity
|
|
87
|
+
*/
|
|
88
|
+
putEmailIdentityDkimAttributes(params: {
|
|
89
|
+
EmailIdentity: string;
|
|
90
|
+
SigningEnabled: boolean;
|
|
91
|
+
}): Promise<void>;
|
|
92
|
+
/**
|
|
93
|
+
* Send email
|
|
94
|
+
*/
|
|
95
|
+
sendEmail(params: {
|
|
96
|
+
FromEmailAddress: string;
|
|
97
|
+
Destination: {
|
|
98
|
+
ToAddresses?: string[];
|
|
99
|
+
CcAddresses?: string[];
|
|
100
|
+
BccAddresses?: string[];
|
|
101
|
+
};
|
|
102
|
+
Content: {
|
|
103
|
+
Simple?: {
|
|
104
|
+
Subject: {
|
|
105
|
+
Data: string;
|
|
106
|
+
Charset?: string;
|
|
107
|
+
};
|
|
108
|
+
Body: {
|
|
109
|
+
Text?: {
|
|
110
|
+
Data: string;
|
|
111
|
+
Charset?: string;
|
|
112
|
+
};
|
|
113
|
+
Html?: {
|
|
114
|
+
Data: string;
|
|
115
|
+
Charset?: string;
|
|
116
|
+
};
|
|
117
|
+
};
|
|
118
|
+
};
|
|
119
|
+
Raw?: {
|
|
120
|
+
Data: string;
|
|
121
|
+
};
|
|
122
|
+
Template?: {
|
|
123
|
+
TemplateName: string;
|
|
124
|
+
TemplateData?: string;
|
|
125
|
+
};
|
|
126
|
+
};
|
|
127
|
+
ReplyToAddresses?: string[];
|
|
128
|
+
ConfigurationSetName?: string;
|
|
129
|
+
}): Promise<SendEmailResult>;
|
|
130
|
+
/**
|
|
131
|
+
* Send bulk email
|
|
132
|
+
*/
|
|
133
|
+
sendBulkEmail(params: {
|
|
134
|
+
FromEmailAddress: string;
|
|
135
|
+
BulkEmailEntries: Array<{
|
|
136
|
+
Destination: {
|
|
137
|
+
ToAddresses?: string[];
|
|
138
|
+
CcAddresses?: string[];
|
|
139
|
+
BccAddresses?: string[];
|
|
140
|
+
};
|
|
141
|
+
ReplacementEmailContent?: {
|
|
142
|
+
ReplacementTemplate?: {
|
|
143
|
+
ReplacementTemplateData?: string;
|
|
144
|
+
};
|
|
145
|
+
};
|
|
146
|
+
}>;
|
|
147
|
+
DefaultContent: {
|
|
148
|
+
Template: {
|
|
149
|
+
TemplateName: string;
|
|
150
|
+
TemplateData?: string;
|
|
151
|
+
};
|
|
152
|
+
};
|
|
153
|
+
ConfigurationSetName?: string;
|
|
154
|
+
}): Promise<{
|
|
155
|
+
BulkEmailEntryResults?: Array<{
|
|
156
|
+
Status?: string;
|
|
157
|
+
Error?: string;
|
|
158
|
+
MessageId?: string;
|
|
159
|
+
}>;
|
|
160
|
+
}>;
|
|
161
|
+
/**
|
|
162
|
+
* Create email template
|
|
163
|
+
*/
|
|
164
|
+
createEmailTemplate(params: {
|
|
165
|
+
TemplateName: string;
|
|
166
|
+
TemplateContent: {
|
|
167
|
+
Subject?: string;
|
|
168
|
+
Text?: string;
|
|
169
|
+
Html?: string;
|
|
170
|
+
};
|
|
171
|
+
}): Promise<void>;
|
|
172
|
+
/**
|
|
173
|
+
* Get email template
|
|
174
|
+
*/
|
|
175
|
+
getEmailTemplate(templateName: string): Promise<{
|
|
176
|
+
TemplateName?: string;
|
|
177
|
+
TemplateContent?: {
|
|
178
|
+
Subject?: string;
|
|
179
|
+
Text?: string;
|
|
180
|
+
Html?: string;
|
|
181
|
+
};
|
|
182
|
+
}>;
|
|
183
|
+
/**
|
|
184
|
+
* Delete email template
|
|
185
|
+
*/
|
|
186
|
+
deleteEmailTemplate(templateName: string): Promise<void>;
|
|
187
|
+
/**
|
|
188
|
+
* List email templates
|
|
189
|
+
*/
|
|
190
|
+
listEmailTemplates(params?: {
|
|
191
|
+
PageSize?: number;
|
|
192
|
+
NextToken?: string;
|
|
193
|
+
}): Promise<{
|
|
194
|
+
TemplatesMetadata?: Array<{
|
|
195
|
+
TemplateName?: string;
|
|
196
|
+
CreatedTimestamp?: string;
|
|
197
|
+
}>;
|
|
198
|
+
NextToken?: string;
|
|
199
|
+
}>;
|
|
200
|
+
/**
|
|
201
|
+
* Get sending statistics
|
|
202
|
+
*/
|
|
203
|
+
getSendStatistics(): Promise<{
|
|
204
|
+
SendDataPoints?: Array<{
|
|
205
|
+
Timestamp?: string;
|
|
206
|
+
DeliveryAttempts?: number;
|
|
207
|
+
Bounces?: number;
|
|
208
|
+
Complaints?: number;
|
|
209
|
+
Rejects?: number;
|
|
210
|
+
}>;
|
|
211
|
+
}>;
|
|
212
|
+
/**
|
|
213
|
+
* Get sending quota
|
|
214
|
+
*/
|
|
215
|
+
getSendQuota(): Promise<{
|
|
216
|
+
Max24HourSend?: number;
|
|
217
|
+
MaxSendRate?: number;
|
|
218
|
+
SentLast24Hours?: number;
|
|
219
|
+
}>;
|
|
220
|
+
/**
|
|
221
|
+
* Verify a domain identity
|
|
222
|
+
*/
|
|
223
|
+
verifyDomain(domain: string): Promise<{
|
|
224
|
+
dkimTokens?: string[];
|
|
225
|
+
verificationStatus?: string;
|
|
226
|
+
}>;
|
|
227
|
+
/**
|
|
228
|
+
* Send a simple text email
|
|
229
|
+
*/
|
|
230
|
+
sendSimpleEmail(params: {
|
|
231
|
+
from: string;
|
|
232
|
+
to: string | string[];
|
|
233
|
+
subject: string;
|
|
234
|
+
text?: string;
|
|
235
|
+
html?: string;
|
|
236
|
+
replyTo?: string | string[];
|
|
237
|
+
}): Promise<SendEmailResult>;
|
|
238
|
+
/**
|
|
239
|
+
* Send a templated email
|
|
240
|
+
*/
|
|
241
|
+
sendTemplatedEmail(params: {
|
|
242
|
+
from: string;
|
|
243
|
+
to: string | string[];
|
|
244
|
+
templateName: string;
|
|
245
|
+
templateData: Record<string, any>;
|
|
246
|
+
replyTo?: string | string[];
|
|
247
|
+
}): Promise<SendEmailResult>;
|
|
248
|
+
/**
|
|
249
|
+
* Get DKIM DNS records for a domain
|
|
250
|
+
*/
|
|
251
|
+
getDkimRecords(domain: string): Promise<Array<{
|
|
252
|
+
name: string;
|
|
253
|
+
type: string;
|
|
254
|
+
value: string;
|
|
255
|
+
}>>;
|
|
256
|
+
/**
|
|
257
|
+
* Check if domain is verified
|
|
258
|
+
*/
|
|
259
|
+
isDomainVerified(domain: string): Promise<boolean>;
|
|
260
|
+
/**
|
|
261
|
+
* Wait for domain verification
|
|
262
|
+
*/
|
|
263
|
+
waitForDomainVerification(domain: string, maxAttempts?: number, delayMs?: number): Promise<boolean>;
|
|
264
|
+
/**
|
|
265
|
+
* Build form-encoded body for SES v1 API
|
|
266
|
+
*/
|
|
267
|
+
private buildFormBody;
|
|
268
|
+
/**
|
|
269
|
+
* Create a receipt rule set
|
|
270
|
+
* Uses SES v1 API
|
|
271
|
+
*/
|
|
272
|
+
createReceiptRuleSet(ruleSetName: string): Promise<void>;
|
|
273
|
+
/**
|
|
274
|
+
* Delete a receipt rule set
|
|
275
|
+
*/
|
|
276
|
+
deleteReceiptRuleSet(ruleSetName: string): Promise<void>;
|
|
277
|
+
/**
|
|
278
|
+
* Set the active receipt rule set
|
|
279
|
+
*/
|
|
280
|
+
setActiveReceiptRuleSet(ruleSetName: string): Promise<void>;
|
|
281
|
+
/**
|
|
282
|
+
* List receipt rule sets
|
|
283
|
+
*/
|
|
284
|
+
listReceiptRuleSets(nextToken?: string): Promise<{
|
|
285
|
+
RuleSets?: Array<{
|
|
286
|
+
Name?: string;
|
|
287
|
+
CreatedTimestamp?: string;
|
|
288
|
+
}>;
|
|
289
|
+
NextToken?: string;
|
|
290
|
+
}>;
|
|
291
|
+
/**
|
|
292
|
+
* Describe a receipt rule set
|
|
293
|
+
*/
|
|
294
|
+
describeReceiptRuleSet(ruleSetName: string): Promise<{
|
|
295
|
+
Metadata?: {
|
|
296
|
+
Name?: string;
|
|
297
|
+
CreatedTimestamp?: string;
|
|
298
|
+
};
|
|
299
|
+
Rules?: Array<{
|
|
300
|
+
Name?: string;
|
|
301
|
+
Enabled?: boolean;
|
|
302
|
+
Recipients?: string[];
|
|
303
|
+
Actions?: Array<{
|
|
304
|
+
S3Action?: {
|
|
305
|
+
BucketName?: string;
|
|
306
|
+
ObjectKeyPrefix?: string;
|
|
307
|
+
};
|
|
308
|
+
LambdaAction?: {
|
|
309
|
+
FunctionArn?: string;
|
|
310
|
+
InvocationType?: string;
|
|
311
|
+
};
|
|
312
|
+
SNSAction?: {
|
|
313
|
+
TopicArn?: string;
|
|
314
|
+
};
|
|
315
|
+
}>;
|
|
316
|
+
}>;
|
|
317
|
+
}>;
|
|
318
|
+
/**
|
|
319
|
+
* Create a receipt rule
|
|
320
|
+
*/
|
|
321
|
+
createReceiptRule(params: {
|
|
322
|
+
RuleSetName: string;
|
|
323
|
+
Rule: {
|
|
324
|
+
Name: string;
|
|
325
|
+
Enabled?: boolean;
|
|
326
|
+
TlsPolicy?: 'Require' | 'Optional';
|
|
327
|
+
Recipients?: string[];
|
|
328
|
+
ScanEnabled?: boolean;
|
|
329
|
+
Actions: Array<{
|
|
330
|
+
S3Action?: {
|
|
331
|
+
BucketName: string;
|
|
332
|
+
ObjectKeyPrefix?: string;
|
|
333
|
+
KmsKeyArn?: string;
|
|
334
|
+
};
|
|
335
|
+
LambdaAction?: {
|
|
336
|
+
FunctionArn: string;
|
|
337
|
+
InvocationType?: 'Event' | 'RequestResponse';
|
|
338
|
+
};
|
|
339
|
+
SNSAction?: {
|
|
340
|
+
TopicArn: string;
|
|
341
|
+
Encoding?: 'UTF-8' | 'Base64';
|
|
342
|
+
};
|
|
343
|
+
StopAction?: {
|
|
344
|
+
Scope: 'RuleSet';
|
|
345
|
+
TopicArn?: string;
|
|
346
|
+
};
|
|
347
|
+
}>;
|
|
348
|
+
};
|
|
349
|
+
After?: string;
|
|
350
|
+
}): Promise<void>;
|
|
351
|
+
/**
|
|
352
|
+
* Delete a receipt rule
|
|
353
|
+
*/
|
|
354
|
+
deleteReceiptRule(ruleSetName: string, ruleName: string): Promise<void>;
|
|
355
|
+
/**
|
|
356
|
+
* Check if receipt rule set exists
|
|
357
|
+
*/
|
|
358
|
+
receiptRuleSetExists(ruleSetName: string): Promise<boolean>;
|
|
359
|
+
/**
|
|
360
|
+
* Get the active receipt rule set
|
|
361
|
+
*/
|
|
362
|
+
getActiveReceiptRuleSet(): Promise<{
|
|
363
|
+
Metadata?: {
|
|
364
|
+
Name?: string;
|
|
365
|
+
CreatedTimestamp?: string;
|
|
366
|
+
};
|
|
367
|
+
Rules?: Array<{
|
|
368
|
+
Name?: string;
|
|
369
|
+
Enabled?: boolean;
|
|
370
|
+
Recipients?: string[];
|
|
371
|
+
Actions?: Array<{
|
|
372
|
+
S3Action?: {
|
|
373
|
+
BucketName?: string;
|
|
374
|
+
ObjectKeyPrefix?: string;
|
|
375
|
+
};
|
|
376
|
+
LambdaAction?: {
|
|
377
|
+
FunctionArn?: string;
|
|
378
|
+
InvocationType?: string;
|
|
379
|
+
};
|
|
380
|
+
SNSAction?: {
|
|
381
|
+
TopicArn?: string;
|
|
382
|
+
};
|
|
383
|
+
}>;
|
|
384
|
+
}>;
|
|
385
|
+
} | null>;
|
|
386
|
+
/**
|
|
387
|
+
* Update a receipt rule
|
|
388
|
+
*/
|
|
389
|
+
updateReceiptRule(params: {
|
|
390
|
+
RuleSetName: string;
|
|
391
|
+
Rule: {
|
|
392
|
+
Name: string;
|
|
393
|
+
Enabled?: boolean;
|
|
394
|
+
TlsPolicy?: 'Require' | 'Optional';
|
|
395
|
+
Recipients?: string[];
|
|
396
|
+
ScanEnabled?: boolean;
|
|
397
|
+
Actions: Array<{
|
|
398
|
+
S3Action?: {
|
|
399
|
+
BucketName: string;
|
|
400
|
+
ObjectKeyPrefix?: string;
|
|
401
|
+
KmsKeyArn?: string;
|
|
402
|
+
};
|
|
403
|
+
LambdaAction?: {
|
|
404
|
+
FunctionArn: string;
|
|
405
|
+
InvocationType?: 'Event' | 'RequestResponse';
|
|
406
|
+
};
|
|
407
|
+
SNSAction?: {
|
|
408
|
+
TopicArn: string;
|
|
409
|
+
Encoding?: 'UTF-8' | 'Base64';
|
|
410
|
+
};
|
|
411
|
+
StopAction?: {
|
|
412
|
+
Scope: 'RuleSet';
|
|
413
|
+
TopicArn?: string;
|
|
414
|
+
};
|
|
415
|
+
}>;
|
|
416
|
+
};
|
|
417
|
+
}): Promise<void>;
|
|
418
|
+
/**
|
|
419
|
+
* Send raw email (for SMTP relay)
|
|
420
|
+
* Uses SES v1 API SendRawEmail action
|
|
421
|
+
*/
|
|
422
|
+
sendRawEmail(params: {
|
|
423
|
+
source: string;
|
|
424
|
+
destinations: string[];
|
|
425
|
+
rawMessage: string;
|
|
426
|
+
}): Promise<{
|
|
427
|
+
MessageId?: string;
|
|
428
|
+
}>;
|
|
429
|
+
/**
|
|
430
|
+
* Get a suppressed destination from the account suppression list (SESv2)
|
|
431
|
+
*/
|
|
432
|
+
getSuppressedDestination(emailAddress: string): Promise<{
|
|
433
|
+
EmailAddress: string;
|
|
434
|
+
Reason: string;
|
|
435
|
+
LastUpdateTime: string;
|
|
436
|
+
} | null>;
|
|
437
|
+
/**
|
|
438
|
+
* Remove an email address from the account suppression list (SESv2)
|
|
439
|
+
*/
|
|
440
|
+
deleteSuppressedDestination(emailAddress: string): Promise<void>;
|
|
441
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMS Setup Automation Module
|
|
3
|
+
* Handles complete SMS infrastructure setup during deploy
|
|
4
|
+
*
|
|
5
|
+
* This module automates:
|
|
6
|
+
* - S3 inbox setup for incoming messages
|
|
7
|
+
* - SNS topics for two-way messaging
|
|
8
|
+
* - Spending limit management
|
|
9
|
+
* - Sandbox exit requests via AWS Support
|
|
10
|
+
* - Delivery receipt configuration
|
|
11
|
+
*
|
|
12
|
+
* Note: Phone number provisioning requires AWS End User Messaging console.
|
|
13
|
+
* SNS uses a shared pool for sending unless you configure an origination number.
|
|
14
|
+
*/
|
|
15
|
+
export interface SmsSetupConfig {
|
|
16
|
+
region?: string;
|
|
17
|
+
accountName?: string;
|
|
18
|
+
accountId?: string;
|
|
19
|
+
inbox?: {
|
|
20
|
+
enabled?: boolean;
|
|
21
|
+
bucket?: string;
|
|
22
|
+
prefix?: string;
|
|
23
|
+
retentionDays?: number;
|
|
24
|
+
};
|
|
25
|
+
twoWay?: {
|
|
26
|
+
enabled?: boolean;
|
|
27
|
+
topicName?: string;
|
|
28
|
+
};
|
|
29
|
+
spending?: {
|
|
30
|
+
monthlyLimit?: number;
|
|
31
|
+
autoRequestIncrease?: boolean;
|
|
32
|
+
};
|
|
33
|
+
sandbox?: {
|
|
34
|
+
autoRequestExit?: boolean;
|
|
35
|
+
companyName?: string;
|
|
36
|
+
useCase?: string;
|
|
37
|
+
expectedMonthlyVolume?: number;
|
|
38
|
+
websiteUrl?: string;
|
|
39
|
+
};
|
|
40
|
+
deliveryReceipts?: {
|
|
41
|
+
enabled?: boolean;
|
|
42
|
+
topicName?: string;
|
|
43
|
+
s3Bucket?: string;
|
|
44
|
+
s3Prefix?: string;
|
|
45
|
+
};
|
|
46
|
+
inboxLambda?: {
|
|
47
|
+
enabled?: boolean;
|
|
48
|
+
functionName?: string;
|
|
49
|
+
codeS3Bucket?: string;
|
|
50
|
+
codeS3Key?: string;
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
export interface SmsSetupResult {
|
|
54
|
+
success: boolean;
|
|
55
|
+
inboxBucket?: string;
|
|
56
|
+
inboxPrefix?: string;
|
|
57
|
+
twoWayTopicArn?: string;
|
|
58
|
+
deliveryReceiptTopicArn?: string;
|
|
59
|
+
inboxLambdaArn?: string;
|
|
60
|
+
spendingLimit?: number;
|
|
61
|
+
sandboxStatus?: 'IN_SANDBOX' | 'OUT_OF_SANDBOX' | 'EXIT_REQUESTED';
|
|
62
|
+
supportCaseId?: string;
|
|
63
|
+
errors: string[];
|
|
64
|
+
warnings: string[];
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Set up complete SMS infrastructure
|
|
68
|
+
* Called automatically during `buddy deploy` when SMS is enabled
|
|
69
|
+
*/
|
|
70
|
+
export declare function setupSmsInfrastructure(config: SmsSetupConfig): Promise<SmsSetupResult>;
|
|
71
|
+
/**
|
|
72
|
+
* Get complete SMS infrastructure status
|
|
73
|
+
*/
|
|
74
|
+
export declare function getSmsInfrastructureStatus(config: {
|
|
75
|
+
region?: string;
|
|
76
|
+
accountName?: string;
|
|
77
|
+
}): Promise<{
|
|
78
|
+
sandboxStatus: 'IN_SANDBOX' | 'OUT_OF_SANDBOX' | 'UNKNOWN';
|
|
79
|
+
spendingLimit: number;
|
|
80
|
+
topics: Array<{
|
|
81
|
+
name: string;
|
|
82
|
+
arn: string;
|
|
83
|
+
}>;
|
|
84
|
+
}>;
|
|
85
|
+
/**
|
|
86
|
+
* Create SMS infrastructure for Stacks deploy
|
|
87
|
+
* This is the main entry point called by the deploy command
|
|
88
|
+
*/
|
|
89
|
+
export declare function createSmsInfrastructure(smsConfig: {
|
|
90
|
+
enabled: boolean;
|
|
91
|
+
provider: 'sns';
|
|
92
|
+
originationNumber?: string;
|
|
93
|
+
defaultCountryCode: string;
|
|
94
|
+
messageType: 'TRANSACTIONAL' | 'PROMOTIONAL';
|
|
95
|
+
maxSpendPerMonth?: number;
|
|
96
|
+
inbox?: {
|
|
97
|
+
enabled: boolean;
|
|
98
|
+
bucket: string;
|
|
99
|
+
prefix?: string;
|
|
100
|
+
retentionDays?: number;
|
|
101
|
+
};
|
|
102
|
+
twoWay?: {
|
|
103
|
+
enabled: boolean;
|
|
104
|
+
snsTopicArn?: string;
|
|
105
|
+
};
|
|
106
|
+
optOut: {
|
|
107
|
+
enabled: boolean;
|
|
108
|
+
keywords: string[];
|
|
109
|
+
};
|
|
110
|
+
}): Promise<SmsSetupResult>;
|
|
111
|
+
declare const _default: {
|
|
112
|
+
setupSmsInfrastructure: typeof setupSmsInfrastructure;
|
|
113
|
+
getSmsInfrastructureStatus: typeof getSmsInfrastructureStatus;
|
|
114
|
+
createSmsInfrastructure: typeof createSmsInfrastructure;
|
|
115
|
+
};
|
|
116
|
+
export default _default;
|