@stacksjs/ts-cloud 0.1.3 → 0.1.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 (187) hide show
  1. package/README.md +98 -13
  2. package/dist/aws/acm.d.ts +129 -0
  3. package/dist/aws/application-autoscaling.d.ts +282 -0
  4. package/dist/aws/bedrock.d.ts +2292 -0
  5. package/dist/aws/client.d.ts +79 -0
  6. package/dist/aws/cloudformation.d.ts +105 -0
  7. package/dist/aws/cloudfront.d.ts +265 -0
  8. package/dist/aws/cloudwatch-logs.d.ts +48 -0
  9. package/dist/aws/comprehend.d.ts +505 -0
  10. package/dist/aws/connect.d.ts +377 -0
  11. package/dist/aws/deploy-imap.d.ts +14 -0
  12. package/dist/aws/dynamodb.d.ts +176 -0
  13. package/dist/aws/ec2.d.ts +272 -0
  14. package/dist/aws/ecr.d.ts +149 -0
  15. package/dist/aws/ecs.d.ts +162 -0
  16. package/dist/aws/elasticache.d.ts +71 -0
  17. package/dist/aws/elbv2.d.ts +248 -0
  18. package/dist/aws/email.d.ts +175 -0
  19. package/dist/aws/eventbridge.d.ts +142 -0
  20. package/dist/aws/iam.d.ts +638 -0
  21. package/dist/aws/imap-server.d.ts +119 -0
  22. package/{src/aws/index.ts → dist/aws/index.d.ts} +62 -83
  23. package/{src/aws/kendra.ts → dist/aws/kendra.d.ts} +71 -386
  24. package/dist/aws/lambda.d.ts +232 -0
  25. package/dist/aws/opensearch.d.ts +87 -0
  26. package/dist/aws/personalize.d.ts +516 -0
  27. package/dist/aws/polly.d.ts +214 -0
  28. package/dist/aws/rds.d.ts +240 -0
  29. package/dist/aws/rekognition.d.ts +543 -0
  30. package/dist/aws/route53-domains.d.ts +113 -0
  31. package/dist/aws/route53.d.ts +215 -0
  32. package/dist/aws/s3.d.ts +212 -0
  33. package/dist/aws/scheduler.d.ts +140 -0
  34. package/dist/aws/secrets-manager.d.ts +170 -0
  35. package/dist/aws/ses.d.ts +288 -0
  36. package/dist/aws/setup-phone.d.ts +0 -0
  37. package/dist/aws/setup-sms.d.ts +115 -0
  38. package/dist/aws/sms.d.ts +304 -0
  39. package/dist/aws/smtp-server.d.ts +61 -0
  40. package/dist/aws/sns.d.ts +117 -0
  41. package/dist/aws/sqs.d.ts +65 -0
  42. package/dist/aws/ssm.d.ts +179 -0
  43. package/dist/aws/sts.d.ts +15 -0
  44. package/dist/aws/support.d.ts +104 -0
  45. package/dist/aws/test-imap.d.ts +0 -0
  46. package/dist/aws/textract.d.ts +403 -0
  47. package/dist/aws/transcribe.d.ts +60 -0
  48. package/dist/aws/translate.d.ts +358 -0
  49. package/dist/aws/voice.d.ts +219 -0
  50. package/dist/bin/cli.js +1724 -0
  51. package/dist/config.d.ts +7 -0
  52. package/dist/deploy/index.d.ts +2 -0
  53. package/dist/deploy/static-site-external-dns.d.ts +51 -0
  54. package/dist/deploy/static-site.d.ts +71 -0
  55. package/dist/dns/cloudflare.d.ts +52 -0
  56. package/dist/dns/godaddy.d.ts +38 -0
  57. package/dist/dns/index.d.ts +45 -0
  58. package/dist/dns/porkbun.d.ts +18 -0
  59. package/dist/dns/route53-adapter.d.ts +38 -0
  60. package/{src/dns/types.ts → dist/dns/types.d.ts} +26 -63
  61. package/dist/dns/validator.d.ts +78 -0
  62. package/dist/generators/index.d.ts +1 -0
  63. package/dist/generators/infrastructure.d.ts +30 -0
  64. package/{src/index.ts → dist/index.d.ts} +70 -93
  65. package/dist/index.js +7881 -0
  66. package/dist/push/apns.d.ts +60 -0
  67. package/dist/push/fcm.d.ts +117 -0
  68. package/dist/push/index.d.ts +14 -0
  69. package/dist/security/pre-deploy-scanner.d.ts +69 -0
  70. package/dist/ssl/acme-client.d.ts +67 -0
  71. package/dist/ssl/index.d.ts +2 -0
  72. package/dist/ssl/letsencrypt.d.ts +48 -0
  73. package/dist/types.d.ts +1 -0
  74. package/dist/utils/cli.d.ts +123 -0
  75. package/dist/validation/index.d.ts +1 -0
  76. package/dist/validation/template.d.ts +23 -0
  77. package/package.json +8 -8
  78. package/bin/cli.ts +0 -133
  79. package/bin/commands/analytics.ts +0 -328
  80. package/bin/commands/api.ts +0 -379
  81. package/bin/commands/assets.ts +0 -221
  82. package/bin/commands/audit.ts +0 -501
  83. package/bin/commands/backup.ts +0 -682
  84. package/bin/commands/cache.ts +0 -294
  85. package/bin/commands/cdn.ts +0 -281
  86. package/bin/commands/config.ts +0 -202
  87. package/bin/commands/container.ts +0 -105
  88. package/bin/commands/cost.ts +0 -208
  89. package/bin/commands/database.ts +0 -401
  90. package/bin/commands/deploy.ts +0 -674
  91. package/bin/commands/domain.ts +0 -397
  92. package/bin/commands/email.ts +0 -423
  93. package/bin/commands/environment.ts +0 -285
  94. package/bin/commands/events.ts +0 -424
  95. package/bin/commands/firewall.ts +0 -145
  96. package/bin/commands/function.ts +0 -116
  97. package/bin/commands/generate.ts +0 -280
  98. package/bin/commands/git.ts +0 -139
  99. package/bin/commands/iam.ts +0 -464
  100. package/bin/commands/index.ts +0 -48
  101. package/bin/commands/init.ts +0 -120
  102. package/bin/commands/logs.ts +0 -148
  103. package/bin/commands/network.ts +0 -579
  104. package/bin/commands/notify.ts +0 -489
  105. package/bin/commands/queue.ts +0 -407
  106. package/bin/commands/scheduler.ts +0 -370
  107. package/bin/commands/secrets.ts +0 -54
  108. package/bin/commands/server.ts +0 -629
  109. package/bin/commands/shared.ts +0 -97
  110. package/bin/commands/ssl.ts +0 -138
  111. package/bin/commands/stack.ts +0 -325
  112. package/bin/commands/status.ts +0 -385
  113. package/bin/commands/storage.ts +0 -450
  114. package/bin/commands/team.ts +0 -96
  115. package/bin/commands/tunnel.ts +0 -489
  116. package/bin/commands/utils.ts +0 -202
  117. package/build.ts +0 -15
  118. package/cloud +0 -2
  119. package/src/aws/acm.ts +0 -768
  120. package/src/aws/application-autoscaling.ts +0 -845
  121. package/src/aws/bedrock.ts +0 -4074
  122. package/src/aws/client.ts +0 -878
  123. package/src/aws/cloudformation.ts +0 -896
  124. package/src/aws/cloudfront.ts +0 -1531
  125. package/src/aws/cloudwatch-logs.ts +0 -154
  126. package/src/aws/comprehend.ts +0 -839
  127. package/src/aws/connect.ts +0 -1056
  128. package/src/aws/deploy-imap.ts +0 -384
  129. package/src/aws/dynamodb.ts +0 -340
  130. package/src/aws/ec2.ts +0 -1385
  131. package/src/aws/ecr.ts +0 -621
  132. package/src/aws/ecs.ts +0 -615
  133. package/src/aws/elasticache.ts +0 -301
  134. package/src/aws/elbv2.ts +0 -942
  135. package/src/aws/email.ts +0 -928
  136. package/src/aws/eventbridge.ts +0 -248
  137. package/src/aws/iam.ts +0 -1689
  138. package/src/aws/imap-server.ts +0 -2100
  139. package/src/aws/lambda.ts +0 -786
  140. package/src/aws/opensearch.ts +0 -158
  141. package/src/aws/personalize.ts +0 -977
  142. package/src/aws/polly.ts +0 -559
  143. package/src/aws/rds.ts +0 -888
  144. package/src/aws/rekognition.ts +0 -846
  145. package/src/aws/route53-domains.ts +0 -359
  146. package/src/aws/route53.ts +0 -1046
  147. package/src/aws/s3.ts +0 -2318
  148. package/src/aws/scheduler.ts +0 -571
  149. package/src/aws/secrets-manager.ts +0 -769
  150. package/src/aws/ses.ts +0 -1081
  151. package/src/aws/setup-phone.ts +0 -104
  152. package/src/aws/setup-sms.ts +0 -580
  153. package/src/aws/sms.ts +0 -1735
  154. package/src/aws/smtp-server.ts +0 -531
  155. package/src/aws/sns.ts +0 -758
  156. package/src/aws/sqs.ts +0 -382
  157. package/src/aws/ssm.ts +0 -807
  158. package/src/aws/sts.ts +0 -92
  159. package/src/aws/support.ts +0 -391
  160. package/src/aws/test-imap.ts +0 -86
  161. package/src/aws/textract.ts +0 -780
  162. package/src/aws/transcribe.ts +0 -108
  163. package/src/aws/translate.ts +0 -641
  164. package/src/aws/voice.ts +0 -1379
  165. package/src/config.ts +0 -35
  166. package/src/deploy/index.ts +0 -7
  167. package/src/deploy/static-site-external-dns.ts +0 -906
  168. package/src/deploy/static-site.ts +0 -1125
  169. package/src/dns/godaddy.ts +0 -412
  170. package/src/dns/index.ts +0 -183
  171. package/src/dns/porkbun.ts +0 -362
  172. package/src/dns/route53-adapter.ts +0 -414
  173. package/src/dns/validator.ts +0 -369
  174. package/src/generators/index.ts +0 -5
  175. package/src/generators/infrastructure.ts +0 -1660
  176. package/src/push/apns.ts +0 -452
  177. package/src/push/fcm.ts +0 -506
  178. package/src/push/index.ts +0 -58
  179. package/src/ssl/acme-client.ts +0 -478
  180. package/src/ssl/index.ts +0 -7
  181. package/src/ssl/letsencrypt.ts +0 -747
  182. package/src/types.ts +0 -2
  183. package/src/utils/cli.ts +0 -398
  184. package/src/validation/index.ts +0 -5
  185. package/src/validation/template.ts +0 -405
  186. package/test/index.test.ts +0 -128
  187. package/tsconfig.json +0 -18
@@ -0,0 +1,60 @@
1
+ import { AWSClient } from './client';
2
+ export declare interface TranscriptionJob {
3
+ TranscriptionJobName: string
4
+ TranscriptionJobStatus: 'QUEUED' | 'IN_PROGRESS' | 'FAILED' | 'COMPLETED'
5
+ LanguageCode?: string
6
+ MediaSampleRateHertz?: number
7
+ MediaFormat?: string
8
+ Media?: {
9
+ MediaFileUri?: string
10
+ }
11
+ Transcript?: {
12
+ TranscriptFileUri?: string
13
+ }
14
+ StartTime?: string
15
+ CreationTime?: string
16
+ CompletionTime?: string
17
+ FailureReason?: string
18
+ }
19
+ /**
20
+ * Transcribe client for direct API calls
21
+ */
22
+ export declare class TranscribeClient {
23
+ private client: AWSClient;
24
+ private region: string;
25
+ constructor(region?: string);
26
+ private request<T>(action: string, params: Record<string, any>): Promise<T>;
27
+ startTranscriptionJob(params: {
28
+ TranscriptionJobName: string
29
+ LanguageCode: string
30
+ MediaFormat?: 'mp3' | 'mp4' | 'wav' | 'flac' | 'ogg' | 'amr' | 'webm'
31
+ Media: {
32
+ MediaFileUri: string
33
+ }
34
+ OutputBucketName?: string
35
+ OutputKey?: string
36
+ Settings?: {
37
+ ShowSpeakerLabels?: boolean
38
+ MaxSpeakerLabels?: number
39
+ ChannelIdentification?: boolean
40
+ ShowAlternatives?: boolean
41
+ MaxAlternatives?: number
42
+ }
43
+ }): Promise<{ TranscriptionJob: TranscriptionJob }>;
44
+ getTranscriptionJob(params: {
45
+ TranscriptionJobName: string
46
+ }): Promise<{ TranscriptionJob: TranscriptionJob }>;
47
+ listTranscriptionJobs(params?: {
48
+ Status?: 'QUEUED' | 'IN_PROGRESS' | 'FAILED' | 'COMPLETED'
49
+ JobNameContains?: string
50
+ NextToken?: string
51
+ MaxResults?: number
52
+ }): Promise<{
53
+ Status?: string
54
+ NextToken?: string
55
+ TranscriptionJobSummaries: TranscriptionJob[]
56
+ }>;
57
+ deleteTranscriptionJob(params: {
58
+ TranscriptionJobName: string
59
+ }): Promise<void>;
60
+ }
@@ -0,0 +1,358 @@
1
+ import { AWSClient } from './client';
2
+ /**
3
+ * Quick translation
4
+ */
5
+ export declare function translate(text: string, targetLanguage: string, options?: {
6
+ sourceLanguage?: string
7
+ region?: string
8
+ }): Promise<string>;
9
+ /**
10
+ * Translate to multiple languages
11
+ */
12
+ export declare function translateToMultiple(text: string, targetLanguages: string[], options?: {
13
+ sourceLanguage?: string
14
+ region?: string
15
+ }): Promise<Record<string, string>>;
16
+ /**
17
+ * List supported languages
18
+ */
19
+ export declare function listLanguages(region?: string): Promise<Language[]>;
20
+ // ============================================================================
21
+ // Types
22
+ // ============================================================================
23
+ export declare interface TranslateTextCommandInput {
24
+ Text: string
25
+ SourceLanguageCode: string
26
+ TargetLanguageCode: string
27
+ TerminologyNames?: string[]
28
+ Settings?: {
29
+ Formality?: 'FORMAL' | 'INFORMAL'
30
+ Profanity?: 'MASK'
31
+ Brevity?: 'ON'
32
+ }
33
+ }
34
+ export declare interface TranslatedDocument {
35
+ Content: Uint8Array
36
+ }
37
+ export declare interface AppliedTerminology {
38
+ Name?: string
39
+ Terms?: Array<{
40
+ SourceText?: string
41
+ TargetText?: string
42
+ }>
43
+ }
44
+ export declare interface TranslateTextCommandOutput {
45
+ TranslatedText: string
46
+ SourceLanguageCode: string
47
+ TargetLanguageCode: string
48
+ AppliedTerminologies?: AppliedTerminology[]
49
+ AppliedSettings?: {
50
+ Formality?: 'FORMAL' | 'INFORMAL'
51
+ Profanity?: 'MASK'
52
+ Brevity?: 'ON'
53
+ }
54
+ }
55
+ export declare interface TranslateDocumentCommandInput {
56
+ Document: {
57
+ Content: Uint8Array
58
+ ContentType: 'text/html' | 'text/plain' | 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
59
+ }
60
+ SourceLanguageCode: string
61
+ TargetLanguageCode: string
62
+ TerminologyNames?: string[]
63
+ Settings?: {
64
+ Formality?: 'FORMAL' | 'INFORMAL'
65
+ Profanity?: 'MASK'
66
+ Brevity?: 'ON'
67
+ }
68
+ }
69
+ export declare interface TranslateDocumentCommandOutput {
70
+ TranslatedDocument: TranslatedDocument
71
+ SourceLanguageCode: string
72
+ TargetLanguageCode: string
73
+ AppliedTerminologies?: AppliedTerminology[]
74
+ AppliedSettings?: {
75
+ Formality?: 'FORMAL' | 'INFORMAL'
76
+ Profanity?: 'MASK'
77
+ Brevity?: 'ON'
78
+ }
79
+ }
80
+ export declare interface StartTextTranslationJobCommandInput {
81
+ JobName?: string
82
+ InputDataConfig: {
83
+ S3Uri: string
84
+ ContentType: 'text/html' | 'text/plain' | 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' | 'application/vnd.openxmlformats-officedocument.presentationml.presentation' | 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' | 'application/x-xliff+xml'
85
+ }
86
+ OutputDataConfig: {
87
+ S3Uri: string
88
+ EncryptionKey?: {
89
+ Type: 'KMS'
90
+ Id: string
91
+ }
92
+ }
93
+ DataAccessRoleArn: string
94
+ SourceLanguageCode: string
95
+ TargetLanguageCodes: string[]
96
+ TerminologyNames?: string[]
97
+ ParallelDataNames?: string[]
98
+ ClientToken?: string
99
+ Settings?: {
100
+ Formality?: 'FORMAL' | 'INFORMAL'
101
+ Profanity?: 'MASK'
102
+ Brevity?: 'ON'
103
+ }
104
+ }
105
+ export declare interface StartTextTranslationJobCommandOutput {
106
+ JobId?: string
107
+ JobStatus?: 'SUBMITTED' | 'IN_PROGRESS' | 'COMPLETED' | 'COMPLETED_WITH_ERROR' | 'FAILED' | 'STOP_REQUESTED' | 'STOPPED'
108
+ }
109
+ export declare interface DescribeTextTranslationJobCommandInput {
110
+ JobId: string
111
+ }
112
+ export declare interface TextTranslationJobProperties {
113
+ JobId?: string
114
+ JobName?: string
115
+ JobStatus?: 'SUBMITTED' | 'IN_PROGRESS' | 'COMPLETED' | 'COMPLETED_WITH_ERROR' | 'FAILED' | 'STOP_REQUESTED' | 'STOPPED'
116
+ JobDetails?: {
117
+ TranslatedDocumentsCount?: number
118
+ DocumentsWithErrorsCount?: number
119
+ InputDocumentsCount?: number
120
+ }
121
+ SourceLanguageCode?: string
122
+ TargetLanguageCodes?: string[]
123
+ TerminologyNames?: string[]
124
+ ParallelDataNames?: string[]
125
+ Message?: string
126
+ SubmittedTime?: string
127
+ EndTime?: string
128
+ InputDataConfig?: {
129
+ S3Uri?: string
130
+ ContentType?: string
131
+ }
132
+ OutputDataConfig?: {
133
+ S3Uri?: string
134
+ EncryptionKey?: {
135
+ Type?: string
136
+ Id?: string
137
+ }
138
+ }
139
+ DataAccessRoleArn?: string
140
+ Settings?: {
141
+ Formality?: 'FORMAL' | 'INFORMAL'
142
+ Profanity?: 'MASK'
143
+ Brevity?: 'ON'
144
+ }
145
+ }
146
+ export declare interface DescribeTextTranslationJobCommandOutput {
147
+ TextTranslationJobProperties?: TextTranslationJobProperties
148
+ }
149
+ export declare interface ListTextTranslationJobsCommandInput {
150
+ Filter?: {
151
+ JobName?: string
152
+ JobStatus?: 'SUBMITTED' | 'IN_PROGRESS' | 'COMPLETED' | 'COMPLETED_WITH_ERROR' | 'FAILED' | 'STOP_REQUESTED' | 'STOPPED'
153
+ SubmittedBeforeTime?: string
154
+ SubmittedAfterTime?: string
155
+ }
156
+ NextToken?: string
157
+ MaxResults?: number
158
+ }
159
+ export declare interface ListTextTranslationJobsCommandOutput {
160
+ TextTranslationJobPropertiesList?: TextTranslationJobProperties[]
161
+ NextToken?: string
162
+ }
163
+ export declare interface StopTextTranslationJobCommandInput {
164
+ JobId: string
165
+ }
166
+ export declare interface StopTextTranslationJobCommandOutput {
167
+ JobId?: string
168
+ JobStatus?: 'SUBMITTED' | 'IN_PROGRESS' | 'COMPLETED' | 'COMPLETED_WITH_ERROR' | 'FAILED' | 'STOP_REQUESTED' | 'STOPPED'
169
+ }
170
+ export declare interface ListLanguagesCommandInput {
171
+ DisplayLanguageCode?: string
172
+ NextToken?: string
173
+ MaxResults?: number
174
+ }
175
+ export declare interface Language {
176
+ LanguageName?: string
177
+ LanguageCode?: string
178
+ }
179
+ export declare interface ListLanguagesCommandOutput {
180
+ Languages?: Language[]
181
+ DisplayLanguageCode?: string
182
+ NextToken?: string
183
+ }
184
+ export declare interface ImportTerminologyCommandInput {
185
+ Name: string
186
+ MergeStrategy: 'OVERWRITE'
187
+ Description?: string
188
+ TerminologyData: {
189
+ File: Uint8Array
190
+ Format: 'CSV' | 'TMX' | 'TSV'
191
+ Directionality?: 'UNI' | 'MULTI'
192
+ }
193
+ EncryptionKey?: {
194
+ Type: 'KMS'
195
+ Id: string
196
+ }
197
+ Tags?: Array<{ Key: string; Value: string }>
198
+ }
199
+ export declare interface TerminologyProperties {
200
+ Name?: string
201
+ Description?: string
202
+ Arn?: string
203
+ SourceLanguageCode?: string
204
+ TargetLanguageCodes?: string[]
205
+ EncryptionKey?: {
206
+ Type?: string
207
+ Id?: string
208
+ }
209
+ SizeBytes?: number
210
+ TermCount?: number
211
+ CreatedAt?: string
212
+ LastUpdatedAt?: string
213
+ Directionality?: 'UNI' | 'MULTI'
214
+ Message?: string
215
+ SkippedTermCount?: number
216
+ Format?: 'CSV' | 'TMX' | 'TSV'
217
+ }
218
+ export declare interface ImportTerminologyCommandOutput {
219
+ TerminologyProperties?: TerminologyProperties
220
+ AuxiliaryDataLocation?: {
221
+ RepositoryType?: string
222
+ Location?: string
223
+ }
224
+ }
225
+ export declare interface GetTerminologyCommandInput {
226
+ Name: string
227
+ TerminologyDataFormat?: 'CSV' | 'TMX' | 'TSV'
228
+ }
229
+ export declare interface GetTerminologyCommandOutput {
230
+ TerminologyProperties?: TerminologyProperties
231
+ TerminologyDataLocation?: {
232
+ RepositoryType?: string
233
+ Location?: string
234
+ }
235
+ AuxiliaryDataLocation?: {
236
+ RepositoryType?: string
237
+ Location?: string
238
+ }
239
+ }
240
+ export declare interface ListTerminologiesCommandInput {
241
+ NextToken?: string
242
+ MaxResults?: number
243
+ }
244
+ export declare interface ListTerminologiesCommandOutput {
245
+ TerminologyPropertiesList?: TerminologyProperties[]
246
+ NextToken?: string
247
+ }
248
+ export declare interface DeleteTerminologyCommandInput {
249
+ Name: string
250
+ }
251
+ export declare interface DeleteTerminologyCommandOutput {
252
+
253
+ }
254
+ export declare interface CreateParallelDataCommandInput {
255
+ Name: string
256
+ Description?: string
257
+ ParallelDataConfig: {
258
+ S3Uri: string
259
+ Format: 'TSV' | 'CSV' | 'TMX'
260
+ }
261
+ EncryptionKey?: {
262
+ Type: 'KMS'
263
+ Id: string
264
+ }
265
+ ClientToken?: string
266
+ Tags?: Array<{ Key: string; Value: string }>
267
+ }
268
+ export declare interface ParallelDataProperties {
269
+ Name?: string
270
+ Arn?: string
271
+ Description?: string
272
+ Status?: 'CREATING' | 'UPDATING' | 'ACTIVE' | 'DELETING' | 'FAILED'
273
+ SourceLanguageCode?: string
274
+ TargetLanguageCodes?: string[]
275
+ ParallelDataConfig?: {
276
+ S3Uri?: string
277
+ Format?: 'TSV' | 'CSV' | 'TMX'
278
+ }
279
+ Message?: string
280
+ ImportedDataSize?: number
281
+ ImportedRecordCount?: number
282
+ FailedRecordCount?: number
283
+ SkippedRecordCount?: number
284
+ EncryptionKey?: {
285
+ Type?: string
286
+ Id?: string
287
+ }
288
+ CreatedAt?: string
289
+ LastUpdatedAt?: string
290
+ LatestUpdateAttemptStatus?: 'CREATING' | 'UPDATING' | 'ACTIVE' | 'DELETING' | 'FAILED'
291
+ LatestUpdateAttemptAt?: string
292
+ }
293
+ export declare interface CreateParallelDataCommandOutput {
294
+ Name?: string
295
+ Status?: 'CREATING' | 'UPDATING' | 'ACTIVE' | 'DELETING' | 'FAILED'
296
+ }
297
+ export declare interface GetParallelDataCommandInput {
298
+ Name: string
299
+ }
300
+ export declare interface GetParallelDataCommandOutput {
301
+ ParallelDataProperties?: ParallelDataProperties
302
+ DataLocation?: {
303
+ RepositoryType?: string
304
+ Location?: string
305
+ }
306
+ AuxiliaryDataLocation?: {
307
+ RepositoryType?: string
308
+ Location?: string
309
+ }
310
+ LatestUpdateAttemptAuxiliaryDataLocation?: {
311
+ RepositoryType?: string
312
+ Location?: string
313
+ }
314
+ }
315
+ export declare interface ListParallelDataCommandInput {
316
+ NextToken?: string
317
+ MaxResults?: number
318
+ }
319
+ export declare interface ListParallelDataCommandOutput {
320
+ ParallelDataPropertiesList?: ParallelDataProperties[]
321
+ NextToken?: string
322
+ }
323
+ export declare interface DeleteParallelDataCommandInput {
324
+ Name: string
325
+ }
326
+ export declare interface DeleteParallelDataCommandOutput {
327
+ Name?: string
328
+ Status?: 'CREATING' | 'UPDATING' | 'ACTIVE' | 'DELETING' | 'FAILED'
329
+ }
330
+ // ============================================================================
331
+ // Translate Client
332
+ // ============================================================================
333
+ export declare class TranslateClient {
334
+ private client: AWSClient;
335
+ private region: string;
336
+ constructor(region?: string);
337
+ private request<T>(action: string, params: Record<string, unknown>): Promise<T>;
338
+ translateText(params: TranslateTextCommandInput): Promise<TranslateTextCommandOutput>;
339
+ translateDocument(params: TranslateDocumentCommandInput): Promise<TranslateDocumentCommandOutput>;
340
+ startTextTranslationJob(params: StartTextTranslationJobCommandInput): Promise<StartTextTranslationJobCommandOutput>;
341
+ describeTextTranslationJob(params: DescribeTextTranslationJobCommandInput): Promise<DescribeTextTranslationJobCommandOutput>;
342
+ listTextTranslationJobs(params?: ListTextTranslationJobsCommandInput): Promise<ListTextTranslationJobsCommandOutput>;
343
+ stopTextTranslationJob(params: StopTextTranslationJobCommandInput): Promise<StopTextTranslationJobCommandOutput>;
344
+ listLanguages(params?: ListLanguagesCommandInput): Promise<ListLanguagesCommandOutput>;
345
+ importTerminology(params: ImportTerminologyCommandInput): Promise<ImportTerminologyCommandOutput>;
346
+ getTerminology(params: GetTerminologyCommandInput): Promise<GetTerminologyCommandOutput>;
347
+ listTerminologies(params?: ListTerminologiesCommandInput): Promise<ListTerminologiesCommandOutput>;
348
+ deleteTerminology(params: DeleteTerminologyCommandInput): Promise<DeleteTerminologyCommandOutput>;
349
+ createParallelData(params: CreateParallelDataCommandInput): Promise<CreateParallelDataCommandOutput>;
350
+ getParallelData(params: GetParallelDataCommandInput): Promise<GetParallelDataCommandOutput>;
351
+ listParallelData(params?: ListParallelDataCommandInput): Promise<ListParallelDataCommandOutput>;
352
+ deleteParallelData(params: DeleteParallelDataCommandInput): Promise<DeleteParallelDataCommandOutput>;
353
+ translate(text: string, targetLanguage: string, sourceLanguage?: string): Promise<string>;
354
+ translateFormal(text: string, targetLanguage: string, sourceLanguage?: string, formality?: 'FORMAL' | 'INFORMAL'): Promise<string>;
355
+ translateToMultiple(text: string, targetLanguages: string[], sourceLanguage?: string): Promise<Record<string, string>>;
356
+ waitForJob(jobId: string, options?: { maxWaitMs?: number; pollIntervalMs?: number }): Promise<TextTranslationJobProperties>;
357
+ getSupportedLanguages(): Promise<string[]>;
358
+ }
@@ -0,0 +1,219 @@
1
+ import { ConnectClient } from './connect';
2
+ import { S3Client } from './s3';
3
+ import { TranscribeClient } from './transcribe';
4
+ /**
5
+ * Create a Lambda handler for processing incoming voicemails
6
+ * Use this with Connect's voicemail feature or custom IVR
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * // lambda.ts
11
+ * import { createVoicemailHandler } from 'ts-cloud/aws/voice'
12
+ *
13
+ * export const handler = createVoicemailHandler({
14
+ * bucket: 'my-voicemail-bucket',
15
+ * prefix: 'voicemail/',
16
+ * region: 'us-east-1',
17
+ * })
18
+ * ```
19
+ */
20
+ export declare function createVoicemailHandler(config: {
21
+ bucket: string
22
+ prefix?: string
23
+ region?: string
24
+ onVoicemail?: (voicemail: Voicemail) => Promise<void>
25
+ }): void;
26
+ /**
27
+ * Create a Lambda handler for Connect recording events
28
+ * This processes call recordings uploaded to S3 by Connect
29
+ */
30
+ export declare function createRecordingHandler(config: {
31
+ bucket: string
32
+ prefix?: string
33
+ region?: string
34
+ onRecording?: (recording: CallRecording) => Promise<void>
35
+ }): void;
36
+ /**
37
+ * Convenience function to create a voice client
38
+ */
39
+ export declare function createVoiceClient(config?: VoiceClientConfig): VoiceClient;
40
+ export declare interface VoiceClientConfig {
41
+ region?: string
42
+ voicemailBucket?: string
43
+ voicemailPrefix?: string
44
+ recordingsPrefix?: string
45
+ connectInstanceId?: string
46
+ connectContactFlowId?: string
47
+ defaultCallerId?: string
48
+ enableTranscription?: boolean
49
+ transcriptionLanguage?: string
50
+ }
51
+ export declare interface Voicemail {
52
+ key: string
53
+ from: string
54
+ to: string
55
+ duration: number
56
+ timestamp: Date
57
+ transcription?: string
58
+ transcriptionStatus?: 'pending' | 'processing' | 'completed' | 'failed'
59
+ transcriptionJobName?: string
60
+ audioUrl?: string
61
+ read?: boolean
62
+ readAt?: Date
63
+ contentType?: string
64
+ size?: number
65
+ raw?: any
66
+ }
67
+ export declare interface CallRecording {
68
+ key: string
69
+ contactId: string
70
+ from?: string
71
+ to?: string
72
+ duration: number
73
+ timestamp: Date
74
+ audioUrl?: string
75
+ contentType?: string
76
+ size?: number
77
+ }
78
+ export declare interface MakeCallOptions {
79
+ to: string
80
+ from?: string
81
+ message?: string
82
+ voiceId?: string
83
+ audioUrl?: string
84
+ contactFlowId?: string
85
+ attributes?: Record<string, string>
86
+ }
87
+ export declare interface SendVoiceMessageOptions {
88
+ to: string
89
+ from?: string
90
+ message: string
91
+ voiceId?: string
92
+ languageCode?: string
93
+ }
94
+ export declare interface VoicemailGreeting {
95
+ id: string
96
+ name: string
97
+ type: 'default' | 'busy' | 'unavailable' | 'custom'
98
+ text?: string
99
+ audioKey?: string
100
+ audioUrl?: string
101
+ voiceId?: string
102
+ languageCode?: string
103
+ isActive: boolean
104
+ createdAt: Date
105
+ updatedAt?: Date
106
+ }
107
+ export declare interface CallForwardingRule {
108
+ id: string
109
+ name: string
110
+ enabled: boolean
111
+ condition: 'always' | 'busy' | 'no_answer' | 'unreachable' | 'after_hours'
112
+ forwardTo: string
113
+ ringTimeout?: number
114
+ businessHours?: {
115
+ timezone: string
116
+ schedule: Array<{
117
+ day: 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat' | 'sun'
118
+ start: string // HH:MM format
119
+ end: string
120
+ }>
121
+ }
122
+ priority: number
123
+ createdAt: Date
124
+ updatedAt?: Date
125
+ }
126
+ /**
127
+ * Voice Client with S3 voicemail storage
128
+ */
129
+ export declare class VoiceClient {
130
+ private config: VoiceClientConfig;
131
+ private connect?: ConnectClient;
132
+ private s3?: S3Client;
133
+ private transcribe?: TranscribeClient;
134
+ constructor(config?: VoiceClientConfig);
135
+ call(options: MakeCallOptions): Promise<{ callId: string }>;
136
+ sendVoiceMessage(options: SendVoiceMessageOptions): Promise<{ messageId: string }>;
137
+ speak(to: string, message: string, voiceId?: string): Promise<{ messageId: string }>;
138
+ getVoicemails(options?: {
139
+ prefix?: string
140
+ maxResults?: number
141
+ }): Promise<Voicemail[]>;
142
+ getVoicemail(key: string): Promise<Voicemail | null>;
143
+ getVoicemailAudioUrl(key: string, expiresIn?: number): Promise<string>;
144
+ deleteVoicemail(key: string): Promise<void>;
145
+ archiveVoicemail(key: string): Promise<string>;
146
+ getVoicemailCount(): Promise<number>;
147
+ getUnreadCount(): Promise<number>;
148
+ markAsRead(key: string): Promise<void>;
149
+ markAsUnread(key: string): Promise<void>;
150
+ markManyAsRead(keys: string[]): Promise<void>;
151
+ deleteMany(keys: string[]): Promise<void>;
152
+ transcribeVoicemail(key: string): Promise<{ jobName: string }>;
153
+ getTranscriptionStatus(jobName: string): Promise<{
154
+ status: 'IN_PROGRESS' | 'COMPLETED' | 'FAILED'
155
+ transcription?: string
156
+ }>;
157
+ updateTranscription(key: string, transcription: string): Promise<void>;
158
+ createGreeting(greeting: {
159
+ name: string
160
+ type: 'default' | 'busy' | 'unavailable' | 'custom'
161
+ text?: string
162
+ audioData?: Buffer | string
163
+ voiceId?: string
164
+ languageCode?: string
165
+ setActive?: boolean
166
+ }): Promise<VoicemailGreeting>;
167
+ getGreetings(): Promise<VoicemailGreeting[]>;
168
+ getGreeting(id: string): Promise<VoicemailGreeting | null>;
169
+ getActiveGreeting(type: 'default' | 'busy' | 'unavailable' | 'custom'): Promise<VoicemailGreeting | null>;
170
+ setActiveGreeting(id: string): Promise<void>;
171
+ private deactivateGreetingsOfType(type: string): Promise<void>;
172
+ updateGreeting(id: string, updates: { name?: string; text?: string; audioData?: Buffer | string }): Promise<VoicemailGreeting>;
173
+ deleteGreeting(id: string): Promise<void>;
174
+ getGreetingAudioUrl(id: string, expiresIn?: number): Promise<string | null>;
175
+ createForwardingRule(rule: {
176
+ name: string
177
+ condition: 'always' | 'busy' | 'no_answer' | 'unreachable' | 'after_hours'
178
+ forwardTo: string
179
+ ringTimeout?: number
180
+ businessHours?: CallForwardingRule['businessHours']
181
+ priority?: number
182
+ enabled?: boolean
183
+ }): Promise<CallForwardingRule>;
184
+ getForwardingRules(): Promise<CallForwardingRule[]>;
185
+ getForwardingRule(id: string): Promise<CallForwardingRule | null>;
186
+ updateForwardingRule(id: string, updates: Partial<Omit<CallForwardingRule, 'id' | 'createdAt' | 'updatedAt'>>): Promise<CallForwardingRule>;
187
+ setForwardingRuleEnabled(id: string, enabled: boolean): Promise<void>;
188
+ deleteForwardingRule(id: string): Promise<void>;
189
+ getApplicableForwardingRule(currentConditions?: {
190
+ isBusy?: boolean
191
+ isUnreachable?: boolean
192
+ noAnswer?: boolean
193
+ }): Promise<CallForwardingRule | null>;
194
+ private isWithinBusinessHours(date: Date, businessHours: NonNullable<CallForwardingRule['businessHours']>): boolean;
195
+ getRecordings(options?: {
196
+ prefix?: string
197
+ maxResults?: number
198
+ }): Promise<CallRecording[]>;
199
+ getRecordingUrl(key: string, expiresIn?: number): Promise<string>;
200
+ storeVoicemail(voicemail: {
201
+ from: string
202
+ to: string
203
+ audioData: Buffer | string
204
+ duration?: number
205
+ transcription?: string
206
+ contentType?: string
207
+ timestamp?: Date
208
+ }): Promise<string>;
209
+ storeRecording(recording: {
210
+ contactId: string
211
+ from?: string
212
+ to?: string
213
+ audioData: Buffer | string
214
+ duration?: number
215
+ contentType?: string
216
+ timestamp?: Date
217
+ }): Promise<string>;
218
+ private getVoicemailMetadata(audioKey: string): Promise<Voicemail | null>;
219
+ }