@stacksjs/ts-cloud 0.1.8 → 0.1.9

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 (75) hide show
  1. package/dist/bin/cli.js +1 -1
  2. package/package.json +18 -16
  3. package/src/aws/acm.ts +768 -0
  4. package/src/aws/application-autoscaling.ts +845 -0
  5. package/src/aws/bedrock.ts +4074 -0
  6. package/src/aws/client.ts +891 -0
  7. package/src/aws/cloudformation.ts +896 -0
  8. package/src/aws/cloudfront.ts +1531 -0
  9. package/src/aws/cloudwatch-logs.ts +154 -0
  10. package/src/aws/comprehend.ts +839 -0
  11. package/src/aws/connect.ts +1056 -0
  12. package/src/aws/deploy-imap.ts +384 -0
  13. package/src/aws/dynamodb.ts +340 -0
  14. package/src/aws/ec2.ts +1385 -0
  15. package/src/aws/ecr.ts +621 -0
  16. package/src/aws/ecs.ts +615 -0
  17. package/src/aws/elasticache.ts +301 -0
  18. package/src/aws/elbv2.ts +942 -0
  19. package/src/aws/email.ts +928 -0
  20. package/src/aws/eventbridge.ts +248 -0
  21. package/src/aws/iam.ts +1689 -0
  22. package/src/aws/imap-server.ts +2100 -0
  23. package/src/aws/index.ts +213 -0
  24. package/src/aws/kendra.ts +1097 -0
  25. package/src/aws/lambda.ts +786 -0
  26. package/src/aws/opensearch.ts +158 -0
  27. package/src/aws/personalize.ts +977 -0
  28. package/src/aws/polly.ts +559 -0
  29. package/src/aws/rds.ts +888 -0
  30. package/src/aws/rekognition.ts +846 -0
  31. package/src/aws/route53-domains.ts +359 -0
  32. package/src/aws/route53.ts +1046 -0
  33. package/src/aws/s3.ts +2334 -0
  34. package/src/aws/scheduler.ts +571 -0
  35. package/src/aws/secrets-manager.ts +769 -0
  36. package/src/aws/ses.ts +1081 -0
  37. package/src/aws/setup-phone.ts +104 -0
  38. package/src/aws/setup-sms.ts +580 -0
  39. package/src/aws/sms.ts +1735 -0
  40. package/src/aws/smtp-server.ts +531 -0
  41. package/src/aws/sns.ts +758 -0
  42. package/src/aws/sqs.ts +382 -0
  43. package/src/aws/ssm.ts +807 -0
  44. package/src/aws/sts.ts +92 -0
  45. package/src/aws/support.ts +391 -0
  46. package/src/aws/test-imap.ts +86 -0
  47. package/src/aws/textract.ts +780 -0
  48. package/src/aws/transcribe.ts +108 -0
  49. package/src/aws/translate.ts +641 -0
  50. package/src/aws/voice.ts +1379 -0
  51. package/src/config.ts +35 -0
  52. package/src/deploy/index.ts +7 -0
  53. package/src/deploy/static-site-external-dns.ts +945 -0
  54. package/src/deploy/static-site.ts +1175 -0
  55. package/src/dns/cloudflare.ts +548 -0
  56. package/src/dns/godaddy.ts +412 -0
  57. package/src/dns/index.ts +205 -0
  58. package/src/dns/porkbun.ts +362 -0
  59. package/src/dns/route53-adapter.ts +414 -0
  60. package/src/dns/types.ts +119 -0
  61. package/src/dns/validator.ts +369 -0
  62. package/src/generators/index.ts +5 -0
  63. package/src/generators/infrastructure.ts +1660 -0
  64. package/src/index.ts +163 -0
  65. package/src/push/apns.ts +452 -0
  66. package/src/push/fcm.ts +506 -0
  67. package/src/push/index.ts +58 -0
  68. package/src/security/pre-deploy-scanner.ts +655 -0
  69. package/src/ssl/acme-client.ts +478 -0
  70. package/src/ssl/index.ts +7 -0
  71. package/src/ssl/letsencrypt.ts +747 -0
  72. package/src/types.ts +2 -0
  73. package/src/utils/cli.ts +398 -0
  74. package/src/validation/index.ts +5 -0
  75. package/src/validation/template.ts +405 -0
@@ -0,0 +1,158 @@
1
+ /**
2
+ * AWS OpenSearch Service Client
3
+ * Direct API calls for OpenSearch operations
4
+ */
5
+
6
+ import { AWSClient } from './client'
7
+
8
+ export interface DomainStatus {
9
+ DomainId: string
10
+ DomainName: string
11
+ ARN: string
12
+ Created: boolean
13
+ Deleted: boolean
14
+ Endpoint?: string
15
+ Endpoints?: Record<string, string>
16
+ Processing: boolean
17
+ EngineVersion: string
18
+ ClusterConfig: {
19
+ InstanceType: string
20
+ InstanceCount: number
21
+ DedicatedMasterEnabled: boolean
22
+ ZoneAwarenessEnabled: boolean
23
+ DedicatedMasterType?: string
24
+ DedicatedMasterCount?: number
25
+ }
26
+ EBSOptions?: {
27
+ EBSEnabled: boolean
28
+ VolumeType?: string
29
+ VolumeSize?: number
30
+ }
31
+ }
32
+
33
+ /**
34
+ * OpenSearch client for direct API calls
35
+ */
36
+ export class OpenSearchClient {
37
+ private client: AWSClient
38
+ private region: string
39
+
40
+ constructor(region: string = 'us-east-1') {
41
+ this.region = region
42
+ this.client = new AWSClient()
43
+ }
44
+
45
+ /**
46
+ * Create an OpenSearch domain
47
+ */
48
+ async createDomain(params: {
49
+ DomainName: string
50
+ EngineVersion?: string
51
+ ClusterConfig?: {
52
+ InstanceType?: string
53
+ InstanceCount?: number
54
+ DedicatedMasterEnabled?: boolean
55
+ DedicatedMasterType?: string
56
+ DedicatedMasterCount?: number
57
+ ZoneAwarenessEnabled?: boolean
58
+ }
59
+ EBSOptions?: {
60
+ EBSEnabled: boolean
61
+ VolumeType?: string
62
+ VolumeSize?: number
63
+ }
64
+ AccessPolicies?: string
65
+ EncryptionAtRestOptions?: {
66
+ Enabled: boolean
67
+ KmsKeyId?: string
68
+ }
69
+ NodeToNodeEncryptionOptions?: {
70
+ Enabled: boolean
71
+ }
72
+ AdvancedSecurityOptions?: {
73
+ Enabled: boolean
74
+ InternalUserDatabaseEnabled?: boolean
75
+ MasterUserOptions?: {
76
+ MasterUserName?: string
77
+ MasterUserPassword?: string
78
+ }
79
+ }
80
+ DomainEndpointOptions?: {
81
+ EnforceHTTPS?: boolean
82
+ TLSSecurityPolicy?: string
83
+ }
84
+ Tags?: Array<{ Key: string; Value: string }>
85
+ }): Promise<{ DomainStatus: DomainStatus }> {
86
+ return this.client.request({
87
+ service: 'es',
88
+ region: this.region,
89
+ method: 'POST',
90
+ path: `/2021-01-01/opensearch/domain`,
91
+ headers: { 'Content-Type': 'application/json' },
92
+ body: JSON.stringify(params),
93
+ })
94
+ }
95
+
96
+ /**
97
+ * Delete an OpenSearch domain
98
+ */
99
+ async deleteDomain(domainName: string): Promise<{ DomainStatus: DomainStatus }> {
100
+ return this.client.request({
101
+ service: 'es',
102
+ region: this.region,
103
+ method: 'DELETE',
104
+ path: `/2021-01-01/opensearch/domain/${domainName}`,
105
+ })
106
+ }
107
+
108
+ /**
109
+ * Describe an OpenSearch domain
110
+ */
111
+ async describeDomain(domainName: string): Promise<{ DomainStatus: DomainStatus }> {
112
+ return this.client.request({
113
+ service: 'es',
114
+ region: this.region,
115
+ method: 'GET',
116
+ path: `/2021-01-01/opensearch/domain/${domainName}`,
117
+ })
118
+ }
119
+
120
+ /**
121
+ * List all OpenSearch domains
122
+ */
123
+ async listDomainNames(): Promise<{ DomainNames: Array<{ DomainName: string; EngineType: string }> }> {
124
+ return this.client.request({
125
+ service: 'es',
126
+ region: this.region,
127
+ method: 'GET',
128
+ path: '/2021-01-01/domain',
129
+ })
130
+ }
131
+
132
+ /**
133
+ * Update domain config
134
+ */
135
+ async updateDomainConfig(params: {
136
+ DomainName: string
137
+ ClusterConfig?: {
138
+ InstanceType?: string
139
+ InstanceCount?: number
140
+ }
141
+ EBSOptions?: {
142
+ EBSEnabled: boolean
143
+ VolumeType?: string
144
+ VolumeSize?: number
145
+ }
146
+ AccessPolicies?: string
147
+ }): Promise<{ DomainConfig: any }> {
148
+ const { DomainName, ...config } = params
149
+ return this.client.request({
150
+ service: 'es',
151
+ region: this.region,
152
+ method: 'POST',
153
+ path: `/2021-01-01/opensearch/domain/${DomainName}/config`,
154
+ headers: { 'Content-Type': 'application/json' },
155
+ body: JSON.stringify(config),
156
+ })
157
+ }
158
+ }