@stacksjs/ts-cloud-core 0.1.6 → 0.1.7

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 (225) hide show
  1. package/dist/advanced-features.test.d.ts +0 -0
  2. package/dist/aws/cloudformation.d.ts +69 -0
  3. package/dist/aws/cloudfront.d.ts +21 -0
  4. package/dist/aws/credentials.d.ts +66 -0
  5. package/dist/aws/credentials.test.d.ts +0 -0
  6. package/dist/aws/index.d.ts +73 -0
  7. package/dist/aws/s3.d.ts +130 -0
  8. package/dist/aws/s3.test.d.ts +0 -0
  9. package/dist/aws/signature.d.ts +101 -0
  10. package/dist/aws/signature.test.d.ts +0 -0
  11. package/dist/backup/disaster-recovery.d.ts +98 -0
  12. package/dist/backup/disaster-recovery.test.d.ts +0 -0
  13. package/dist/backup/index.d.ts +24 -0
  14. package/dist/backup/manager.d.ts +112 -0
  15. package/dist/backup/manager.test.d.ts +0 -0
  16. package/dist/cicd/circleci.d.ts +47 -0
  17. package/dist/cicd/github-actions.d.ts +55 -0
  18. package/dist/cicd/gitlab-ci.d.ts +46 -0
  19. package/dist/cicd/index.d.ts +3 -0
  20. package/dist/cli/history.d.ts +66 -0
  21. package/dist/cli/index.d.ts +5 -0
  22. package/dist/cli/progress.d.ts +97 -0
  23. package/dist/cli/repl.d.ts +76 -0
  24. package/dist/cli/suggestions.d.ts +67 -0
  25. package/dist/cli/table.d.ts +70 -0
  26. package/dist/cli/table.test.d.ts +0 -0
  27. package/dist/cloudformation/builder.d.ts +59 -0
  28. package/dist/cloudformation/builder.test.d.ts +0 -0
  29. package/dist/cloudformation/builders/api-gateway.d.ts +30 -0
  30. package/dist/cloudformation/builders/cache.d.ts +35 -0
  31. package/dist/cloudformation/builders/cdn.d.ts +34 -0
  32. package/dist/cloudformation/builders/compute.d.ts +66 -0
  33. package/dist/cloudformation/builders/database.d.ts +61 -0
  34. package/dist/cloudformation/builders/functions.d.ts +32 -0
  35. package/dist/cloudformation/builders/messaging.d.ts +17 -0
  36. package/dist/cloudformation/builders/monitoring.d.ts +36 -0
  37. package/dist/cloudformation/builders/network.d.ts +14 -0
  38. package/dist/cloudformation/builders/queue.d.ts +8 -0
  39. package/dist/cloudformation/builders/security.d.ts +31 -0
  40. package/dist/cloudformation/builders/storage.d.ts +8 -0
  41. package/dist/cloudformation/index.d.ts +24 -0
  42. package/dist/cloudformation/types.d.ts +132 -0
  43. package/dist/compliance/aws-config.d.ts +88 -0
  44. package/dist/compliance/cloudtrail.d.ts +96 -0
  45. package/dist/compliance/compliance.test.d.ts +0 -0
  46. package/dist/compliance/guardduty.d.ts +110 -0
  47. package/dist/compliance/index.d.ts +50 -0
  48. package/dist/compliance/security-hub.d.ts +110 -0
  49. package/dist/containers/build-optimization.d.ts +110 -0
  50. package/dist/containers/containers.test.d.ts +0 -0
  51. package/dist/containers/image-scanning.d.ts +96 -0
  52. package/dist/containers/index.d.ts +4 -0
  53. package/dist/containers/registry.d.ts +99 -0
  54. package/dist/containers/service-mesh.d.ts +206 -0
  55. package/dist/database/database.test.d.ts +0 -0
  56. package/dist/database/index.d.ts +4 -0
  57. package/dist/database/migrations.d.ts +102 -0
  58. package/dist/database/performance.d.ts +168 -0
  59. package/dist/database/replicas.d.ts +146 -0
  60. package/dist/database/users.d.ts +102 -0
  61. package/dist/dependency-graph.d.ts +19 -0
  62. package/dist/deployment/ab-testing.d.ts +114 -0
  63. package/dist/deployment/blue-green.d.ts +98 -0
  64. package/dist/deployment/canary.d.ts +103 -0
  65. package/dist/deployment/deployment.test.d.ts +0 -0
  66. package/dist/deployment/index.d.ts +45 -0
  67. package/dist/deployment/progressive.d.ts +34 -0
  68. package/dist/dns/dns.test.d.ts +0 -0
  69. package/dist/dns/dnssec.d.ts +75 -0
  70. package/dist/dns/index.d.ts +3 -0
  71. package/dist/dns/resolver.d.ts +150 -0
  72. package/dist/dns/routing.d.ts +217 -0
  73. package/dist/email/advanced/analytics.d.ts +78 -0
  74. package/dist/email/advanced/index.d.ts +7 -0
  75. package/dist/email/advanced/rules.d.ts +60 -0
  76. package/dist/email/advanced/scheduling.d.ts +63 -0
  77. package/dist/email/advanced/search.d.ts +76 -0
  78. package/dist/email/advanced/shared-mailboxes.d.ts +66 -0
  79. package/dist/email/advanced/templates.d.ts +39 -0
  80. package/dist/email/advanced/threading.d.ts +53 -0
  81. package/dist/email/analytics.d.ts +144 -0
  82. package/dist/email/bounce-handling.d.ts +120 -0
  83. package/dist/email/email.test.d.ts +0 -0
  84. package/dist/email/handlers/__tests__/inbound.test.d.ts +0 -0
  85. package/dist/email/handlers/__tests__/outbound.test.d.ts +0 -0
  86. package/dist/email/handlers/converter.d.ts +225 -0
  87. package/dist/email/handlers/feedback.d.ts +226 -0
  88. package/dist/email/handlers/inbound.d.ts +167 -0
  89. package/dist/email/handlers/outbound.d.ts +176 -0
  90. package/dist/email/index.d.ts +6 -0
  91. package/dist/email/reputation.d.ts +97 -0
  92. package/dist/email/templates.d.ts +82 -0
  93. package/dist/errors/index.d.ts +186 -0
  94. package/dist/errors/index.test.d.ts +0 -0
  95. package/dist/health-checks/index.d.ts +35 -0
  96. package/dist/index.d.ts +256 -0
  97. package/dist/index.js +63499 -0
  98. package/dist/intrinsic-functions.d.ts +37 -0
  99. package/dist/lambda/concurrency.d.ts +98 -0
  100. package/dist/lambda/destinations.d.ts +99 -0
  101. package/dist/lambda/dlq.d.ts +109 -0
  102. package/dist/lambda/index.d.ts +6 -0
  103. package/dist/lambda/lambda.test.d.ts +0 -0
  104. package/dist/lambda/layers.d.ts +81 -0
  105. package/dist/lambda/versions.d.ts +91 -0
  106. package/dist/lambda/vpc.d.ts +116 -0
  107. package/dist/local/config.d.ts +44 -0
  108. package/dist/local/index.d.ts +2 -0
  109. package/dist/local/mock-aws.d.ts +60 -0
  110. package/dist/modules/ai.d.ts +47 -0
  111. package/dist/modules/api.d.ts +98 -0
  112. package/dist/modules/auth.d.ts +165 -0
  113. package/dist/modules/cache.d.ts +73 -0
  114. package/dist/modules/cdn.d.ts +125 -0
  115. package/dist/modules/communication.d.ts +98 -0
  116. package/dist/modules/compute.d.ts +309 -0
  117. package/dist/modules/database.d.ts +105 -0
  118. package/dist/modules/deployment.d.ts +181 -0
  119. package/dist/modules/dns.d.ts +45 -0
  120. package/dist/modules/email.d.ts +217 -0
  121. package/dist/modules/filesystem.d.ts +94 -0
  122. package/dist/modules/index.d.ts +27 -0
  123. package/dist/modules/messaging.d.ts +108 -0
  124. package/dist/modules/monitoring.d.ts +127 -0
  125. package/dist/modules/network.d.ts +102 -0
  126. package/dist/modules/parameter-store.d.ts +33 -0
  127. package/dist/modules/permissions.d.ts +132 -0
  128. package/dist/modules/phone.d.ts +80 -0
  129. package/dist/modules/queue.d.ts +210 -0
  130. package/dist/modules/redirects.d.ts +59 -0
  131. package/dist/modules/registry.d.ts +73 -0
  132. package/dist/modules/search.d.ts +56 -0
  133. package/dist/modules/secrets.d.ts +80 -0
  134. package/dist/modules/security.d.ts +100 -0
  135. package/dist/modules/sms.d.ts +52 -0
  136. package/dist/modules/storage.d.ts +160 -0
  137. package/dist/modules/workflow.d.ts +205 -0
  138. package/dist/multi-account/config.d.ts +315 -0
  139. package/dist/multi-account/index.d.ts +2 -0
  140. package/dist/multi-account/manager.d.ts +100 -0
  141. package/dist/multi-region/cross-region.d.ts +114 -0
  142. package/dist/multi-region/index.d.ts +3 -0
  143. package/dist/multi-region/manager.d.ts +72 -0
  144. package/dist/multi-region/regions.d.ts +98 -0
  145. package/dist/network-security/index.d.ts +39 -0
  146. package/dist/observability/index.d.ts +4 -0
  147. package/dist/observability/logs.d.ts +129 -0
  148. package/dist/observability/metrics.d.ts +153 -0
  149. package/dist/observability/observability.test.d.ts +0 -0
  150. package/dist/observability/synthetics.d.ts +146 -0
  151. package/dist/observability/xray.d.ts +129 -0
  152. package/dist/phone/advanced/analytics.d.ts +66 -0
  153. package/dist/phone/advanced/callbacks.d.ts +50 -0
  154. package/dist/phone/advanced/index.d.ts +4 -0
  155. package/dist/phone/advanced/ivr-builder.d.ts +83 -0
  156. package/dist/phone/advanced/recording.d.ts +48 -0
  157. package/dist/phone/handlers/__tests__/incoming-call.test.d.ts +0 -0
  158. package/dist/phone/handlers/incoming-call.d.ts +115 -0
  159. package/dist/phone/handlers/missed-call.d.ts +114 -0
  160. package/dist/phone/handlers/voicemail.d.ts +177 -0
  161. package/dist/phone/index.d.ts +2 -0
  162. package/dist/presets/api-backend.d.ts +11 -0
  163. package/dist/presets/data-pipeline.d.ts +11 -0
  164. package/dist/presets/extend.d.ts +194 -0
  165. package/dist/presets/extend.test.d.ts +0 -0
  166. package/dist/presets/fullstack-app.d.ts +12 -0
  167. package/dist/presets/index.d.ts +24 -0
  168. package/dist/presets/jamstack.d.ts +12 -0
  169. package/dist/presets/microservices.d.ts +18 -0
  170. package/dist/presets/ml-api.d.ts +13 -0
  171. package/dist/presets/nodejs-server.d.ts +14 -0
  172. package/dist/presets/nodejs-serverless.d.ts +14 -0
  173. package/dist/presets/realtime-app.d.ts +11 -0
  174. package/dist/presets/static-site.d.ts +12 -0
  175. package/dist/presets/traditional-web-app.d.ts +16 -0
  176. package/dist/presets/wordpress.d.ts +12 -0
  177. package/dist/preview/github.d.ts +32 -0
  178. package/dist/preview/github.test.d.ts +0 -0
  179. package/dist/preview/index.d.ts +27 -0
  180. package/dist/preview/manager.d.ts +58 -0
  181. package/dist/preview/manager.test.d.ts +0 -0
  182. package/dist/preview/notifications.d.ts +55 -0
  183. package/dist/preview/notifications.test.d.ts +0 -0
  184. package/dist/queue/batch-processing.d.ts +87 -0
  185. package/dist/queue/dlq-monitoring.d.ts +95 -0
  186. package/dist/queue/fifo.d.ts +90 -0
  187. package/dist/queue/index.d.ts +4 -0
  188. package/dist/queue/management.d.ts +105 -0
  189. package/dist/queue/queue.test.d.ts +0 -0
  190. package/dist/resource-mgmt/index.d.ts +29 -0
  191. package/dist/resource-naming.d.ts +26 -0
  192. package/dist/s3/index.d.ts +173 -0
  193. package/dist/schema/index.d.ts +9 -0
  194. package/dist/security/certificate-manager.d.ts +121 -0
  195. package/dist/security/index.d.ts +4 -0
  196. package/dist/security/scanning.d.ts +147 -0
  197. package/dist/security/secrets-manager.d.ts +144 -0
  198. package/dist/security/secrets-rotation.d.ts +115 -0
  199. package/dist/security/security.test.d.ts +0 -0
  200. package/dist/sms/advanced/ab-testing.d.ts +54 -0
  201. package/dist/sms/advanced/analytics.d.ts +56 -0
  202. package/dist/sms/advanced/campaigns.d.ts +82 -0
  203. package/dist/sms/advanced/chatbot.d.ts +48 -0
  204. package/dist/sms/advanced/index.d.ts +6 -0
  205. package/dist/sms/advanced/link-tracking.d.ts +42 -0
  206. package/dist/sms/advanced/mms.d.ts +35 -0
  207. package/dist/sms/handlers/__tests__/send.test.d.ts +0 -0
  208. package/dist/sms/handlers/delivery-status.d.ts +131 -0
  209. package/dist/sms/handlers/receive.d.ts +160 -0
  210. package/dist/sms/handlers/send.d.ts +172 -0
  211. package/dist/sms/index.d.ts +2 -0
  212. package/dist/stack-diff.d.ts +34 -0
  213. package/dist/static-site/index.d.ts +49 -0
  214. package/dist/template-builder.d.ts +14 -0
  215. package/dist/template-validator.d.ts +24 -0
  216. package/dist/utils/cache.d.ts +55 -0
  217. package/dist/utils/diff.d.ts +48 -0
  218. package/dist/utils/hash.d.ts +58 -0
  219. package/dist/utils/index.d.ts +4 -0
  220. package/dist/utils/parallel.d.ts +60 -0
  221. package/dist/validators/credentials.d.ts +23 -0
  222. package/dist/validators/credentials.test.d.ts +0 -0
  223. package/dist/validators/quotas.d.ts +60 -0
  224. package/dist/validators/quotas.test.d.ts +0 -0
  225. package/package.json +4 -4
@@ -0,0 +1,217 @@
1
+ import type { EnvironmentType } from '@stacksjs/ts-cloud-types';
2
+ import type { IAMPolicy, IAMRole, LambdaFunction, LambdaPermission, Route53RecordSet, S3Bucket, SESConfigurationSet, SESEmailIdentity, SESReceiptRule, SESReceiptRuleSet, } from '@stacksjs/ts-cloud-aws-types';
3
+ export declare interface EmailIdentityOptions {
4
+ domain: string
5
+ slug: string
6
+ environment: EnvironmentType
7
+ enableDkim?: boolean
8
+ dkimKeyLength?: 'RSA_1024_BIT' | 'RSA_2048_BIT'
9
+ }
10
+ export declare interface ConfigurationSetOptions {
11
+ slug: string
12
+ environment: EnvironmentType
13
+ name?: string
14
+ reputationMetrics?: boolean
15
+ sendingEnabled?: boolean
16
+ suppressBounces?: boolean
17
+ suppressComplaints?: boolean
18
+ }
19
+ export declare interface ReceiptRuleSetOptions {
20
+ slug: string
21
+ environment: EnvironmentType
22
+ name?: string
23
+ }
24
+ export declare interface ReceiptRuleOptions {
25
+ slug: string
26
+ environment: EnvironmentType
27
+ ruleSetName: string
28
+ recipients?: string[]
29
+ enabled?: boolean
30
+ scanEnabled?: boolean
31
+ tlsPolicy?: 'Optional' | 'Require'
32
+ s3Action?: {
33
+ bucketName: string
34
+ prefix?: string
35
+ kmsKeyArn?: string
36
+ }
37
+ lambdaAction?: {
38
+ functionArn: string
39
+ invocationType?: 'Event' | 'RequestResponse'
40
+ }
41
+ snsAction?: {
42
+ topicArn: string
43
+ encoding?: 'UTF-8' | 'Base64'
44
+ }
45
+ }
46
+ /**
47
+ * Email Module - SES (Simple Email Service)
48
+ * Provides clean API for email sending, receiving, and domain verification
49
+ */
50
+ export declare class Email {
51
+ static verifyDomain(options: EmailIdentityOptions): {
52
+ emailIdentity: SESEmailIdentity
53
+ logicalId: string
54
+ };
55
+ static createDkimRecords(domain: string, dkimTokens: string[], hostedZoneId: string): Array<{ record: Route53RecordSet, logicalId: string }>;
56
+ static createConfigurationSet(options: ConfigurationSetOptions): {
57
+ configurationSet: SESConfigurationSet
58
+ logicalId: string
59
+ };
60
+ static createReceiptRuleSet(options: ReceiptRuleSetOptions): {
61
+ ruleSet: SESReceiptRuleSet
62
+ logicalId: string
63
+ };
64
+ static createReceiptRule(ruleSetLogicalId: string, options: ReceiptRuleOptions): {
65
+ receiptRule: SESReceiptRule
66
+ logicalId: string
67
+ };
68
+ static createMxRecord(domain: string, hostedZoneId: string, region: string): {
69
+ record: Route53RecordSet
70
+ logicalId: string
71
+ };
72
+ static createVerificationRecord(domain: string, verificationToken: string, hostedZoneId: string): {
73
+ record: Route53RecordSet
74
+ logicalId: string
75
+ };
76
+ static getSmtpEndpoint(region: string): string;
77
+ static readonly SmtpPorts: any;
78
+ static createSpfRecord(domain: string, hostedZoneId: string, options?: {
79
+ includeDomains?: string[]
80
+ softFail?: boolean
81
+ }): {
82
+ record: Route53RecordSet
83
+ logicalId: string
84
+ };
85
+ static createDmarcRecord(domain: string, hostedZoneId: string, options?: {
86
+ policy?: 'none' | 'quarantine' | 'reject'
87
+ subdomainPolicy?: 'none' | 'quarantine' | 'reject'
88
+ percentage?: number
89
+ reportingEmail?: string
90
+ forensicEmail?: string
91
+ }): {
92
+ record: Route53RecordSet
93
+ logicalId: string
94
+ };
95
+ static createInboundEmailSetup(options: {
96
+ slug: string
97
+ environment: EnvironmentType
98
+ domain: string
99
+ s3BucketName: string
100
+ s3KeyPrefix?: string
101
+ region: string
102
+ hostedZoneId: string
103
+ lambdaFunctionArn?: string
104
+ snsTopicArn?: string
105
+ }): {
106
+ resources: Record<string, any>
107
+ outputs: {
108
+ ruleSetLogicalId: string
109
+ ruleLogicalId: string
110
+ mxRecordLogicalId: string
111
+ }
112
+ };
113
+ static createCompleteDomainSetup(options: {
114
+ slug: string
115
+ environment: EnvironmentType
116
+ domain: string
117
+ hostedZoneId: string
118
+ region: string
119
+ enableInbound?: boolean
120
+ inboundS3Bucket?: string
121
+ dmarcReportingEmail?: string
122
+ }): {
123
+ resources: Record<string, any>
124
+ outputs: {
125
+ identityLogicalId: string
126
+ configSetLogicalId: string
127
+ }
128
+ };
129
+ static readonly InboundSmtpEndpoints: Record<string, string>;
130
+ static supportsInboundEmail(region: string): boolean;
131
+ static createEmailLambdaRole(options: {
132
+ slug: string
133
+ environment: EnvironmentType
134
+ s3BucketArn: string
135
+ sesIdentityArn?: string
136
+ }): {
137
+ role: IAMRole
138
+ policy: IAMPolicy
139
+ roleLogicalId: string
140
+ policyLogicalId: string
141
+ };
142
+ static createOutboundEmailLambda(options: {
143
+ slug: string
144
+ environment: EnvironmentType
145
+ roleArn: string
146
+ domain: string
147
+ configurationSetName?: string
148
+ timeout?: number
149
+ memorySize?: number
150
+ }): {
151
+ function: LambdaFunction
152
+ logicalId: string
153
+ };
154
+ static createInboundEmailLambda(options: {
155
+ slug: string
156
+ environment: EnvironmentType
157
+ roleArn: string
158
+ s3BucketName: string
159
+ organizedPrefix?: string
160
+ timeout?: number
161
+ memorySize?: number
162
+ }): {
163
+ function: LambdaFunction
164
+ permission: LambdaPermission
165
+ logicalId: string
166
+ permissionLogicalId: string
167
+ };
168
+ static createEmailConversionLambda(options: {
169
+ slug: string
170
+ environment: EnvironmentType
171
+ roleArn: string
172
+ s3BucketName: string
173
+ convertedPrefix?: string
174
+ timeout?: number
175
+ memorySize?: number
176
+ }): {
177
+ function: LambdaFunction
178
+ logicalId: string
179
+ };
180
+ static createEmailBucketNotification(options: {
181
+ bucketLogicalId: string
182
+ lambdaArn: string
183
+ prefix?: string
184
+ suffix?: string
185
+ events?: string[]
186
+ }): {
187
+ notificationConfiguration: NonNullable<NonNullable<S3Bucket['Properties']>['NotificationConfiguration']>
188
+ };
189
+ static createS3LambdaPermission(options: {
190
+ slug: string
191
+ environment: EnvironmentType
192
+ lambdaLogicalId: string
193
+ s3BucketArn: string
194
+ }): {
195
+ permission: LambdaPermission
196
+ logicalId: string
197
+ };
198
+ static createEmailProcessingStack(options: {
199
+ slug: string
200
+ environment: EnvironmentType
201
+ domain: string
202
+ s3BucketName: string
203
+ s3BucketArn: string
204
+ configurationSetName?: string
205
+ enableInbound?: boolean
206
+ enableConversion?: boolean
207
+ }): {
208
+ resources: Record<string, any>
209
+ outputs: {
210
+ roleLogicalId: string
211
+ outboundLambdaLogicalId: string
212
+ inboundLambdaLogicalId?: string
213
+ conversionLambdaLogicalId?: string
214
+ }
215
+ };
216
+ static readonly LambdaCode: any;
217
+ }
@@ -0,0 +1,94 @@
1
+ import type { EC2SecurityGroup, EFSAccessPoint, EFSFileSystem, EFSMountTarget, } from '@stacksjs/ts-cloud-aws-types';
2
+ import type { EnvironmentType } from '@stacksjs/ts-cloud-types';
3
+ export declare interface FileSystemOptions {
4
+ slug: string
5
+ environment: EnvironmentType
6
+ encrypted?: boolean
7
+ kmsKeyId?: string
8
+ performanceMode?: 'generalPurpose' | 'maxIO'
9
+ throughputMode?: 'bursting' | 'provisioned' | 'elastic'
10
+ provisionedThroughput?: number
11
+ enableBackup?: boolean
12
+ }
13
+ export declare interface MountTargetOptions {
14
+ slug: string
15
+ environment: EnvironmentType
16
+ subnetId: string
17
+ securityGroups: string[]
18
+ ipAddress?: string
19
+ }
20
+ export declare interface AccessPointOptions {
21
+ slug: string
22
+ environment: EnvironmentType
23
+ path?: string
24
+ uid?: string
25
+ gid?: string
26
+ permissions?: string
27
+ }
28
+ export declare interface LifecyclePolicyOptions {
29
+ transitionToIA?: 7 | 14 | 30 | 60 | 90
30
+ transitionToPrimary?: boolean
31
+ }
32
+ /**
33
+ * FileSystem Module - EFS (Elastic File System)
34
+ * Provides clean API for creating and configuring shared file systems
35
+ */
36
+ export declare class FileSystem {
37
+ static createFileSystem(options: FileSystemOptions): {
38
+ fileSystem: EFSFileSystem
39
+ logicalId: string
40
+ };
41
+ static createMountTarget(fileSystemLogicalId: string, options: MountTargetOptions): {
42
+ mountTarget: EFSMountTarget
43
+ logicalId: string
44
+ };
45
+ static createAccessPoint(fileSystemLogicalId: string, options: AccessPointOptions): {
46
+ accessPoint: EFSAccessPoint
47
+ logicalId: string
48
+ };
49
+ static setLifecyclePolicy(fileSystem: EFSFileSystem, options: LifecyclePolicyOptions): EFSFileSystem;
50
+ static enableBackup(fileSystem: EFSFileSystem): EFSFileSystem;
51
+ static disableBackup(fileSystem: EFSFileSystem): EFSFileSystem;
52
+ static setProvisionedThroughput(fileSystem: EFSFileSystem, throughputInMibps: number): EFSFileSystem;
53
+ static setElasticThroughput(fileSystem: EFSFileSystem): EFSFileSystem;
54
+ static enableMaxIO(fileSystem: EFSFileSystem): EFSFileSystem;
55
+ static createEfsSecurityGroup(options: {
56
+ slug: string
57
+ environment: EnvironmentType
58
+ vpcId: string
59
+ sourceSecurityGroupIds?: string[]
60
+ sourceCidrBlocks?: string[]
61
+ description?: string
62
+ }): {
63
+ securityGroup: EC2SecurityGroup
64
+ logicalId: string
65
+ };
66
+ static createMultiAzMountTargets(fileSystemLogicalId: string, options: {
67
+ slug: string
68
+ environment: EnvironmentType
69
+ subnetIds: string[]
70
+ securityGroupId: string
71
+ }): {
72
+ mountTargets: EFSMountTarget[]
73
+ logicalIds: string[]
74
+ };
75
+ static createCompleteFileSystem(options: {
76
+ slug: string
77
+ environment: EnvironmentType
78
+ vpcId: string
79
+ subnetIds: string[]
80
+ sourceSecurityGroupIds?: string[]
81
+ encrypted?: boolean
82
+ performanceMode?: 'generalPurpose' | 'maxIO'
83
+ throughputMode?: 'bursting' | 'provisioned' | 'elastic'
84
+ enableBackup?: boolean
85
+ transitionToIA?: 7 | 14 | 30 | 60 | 90
86
+ }): {
87
+ resources: Record<string, any>
88
+ outputs: {
89
+ fileSystemId: string
90
+ securityGroupId: string
91
+ mountTargetIds: string[]
92
+ }
93
+ };
94
+ }
@@ -0,0 +1,27 @@
1
+ export * from './storage';
2
+ export * from './registry';
3
+ export * from './cdn';
4
+ export * from './dns';
5
+ export * from './security';
6
+ export * from './compute';
7
+ export * from './network';
8
+ export * from './filesystem';
9
+ export * from './email';
10
+ export * from './phone';
11
+ export * from './queue';
12
+ export * from './sms';
13
+ export * from './ai';
14
+ export * from './database';
15
+ export * from './cache';
16
+ export * from './permissions';
17
+ export * from './api';
18
+ export * from './messaging';
19
+ export * from './workflow';
20
+ export * from './monitoring';
21
+ export * from './auth';
22
+ export * from './deployment';
23
+ export * from './secrets';
24
+ export * from './parameter-store';
25
+ export * from './search';
26
+ export * from './redirects';
27
+ export * from './communication';
@@ -0,0 +1,108 @@
1
+ import type { EnvironmentType } from '@stacksjs/ts-cloud-types';
2
+ import type { SNSSubscription, SNSTopic, SNSTopicPolicy, } from '@stacksjs/ts-cloud-aws-types';
3
+ export declare interface TopicOptions {
4
+ slug: string
5
+ environment: EnvironmentType
6
+ topicName?: string
7
+ displayName?: string
8
+ encrypted?: boolean
9
+ kmsKeyId?: string
10
+ }
11
+ export declare interface SubscriptionOptions {
12
+ slug: string
13
+ environment: EnvironmentType
14
+ protocol: 'http' | 'https' | 'email' | 'email-json' | 'sms' | 'sqs' | 'application' | 'lambda' | 'firehose'
15
+ endpoint: string
16
+ filterPolicy?: Record<string, unknown>
17
+ rawMessageDelivery?: boolean
18
+ }
19
+ export declare interface TopicPolicyOptions {
20
+ slug: string
21
+ environment: EnvironmentType
22
+ allowedPrincipals?: string | string[]
23
+ allowedServices?: string | string[]
24
+ actions?: string | string[]
25
+ }
26
+ /**
27
+ * Messaging Module - SNS (Simple Notification Service)
28
+ * Provides clean API for pub/sub messaging, notifications, and event routing
29
+ */
30
+ export declare class Messaging {
31
+ static createTopic(options: TopicOptions): {
32
+ topic: SNSTopic
33
+ logicalId: string
34
+ };
35
+ static subscribe(topicLogicalId: string, options: SubscriptionOptions): {
36
+ subscription: SNSSubscription
37
+ logicalId: string
38
+ };
39
+ static subscribeEmail(topicLogicalId: string, email: string, options: {
40
+ slug: string
41
+ environment: EnvironmentType
42
+ filterPolicy?: Record<string, unknown>
43
+ }): {
44
+ subscription: SNSSubscription
45
+ logicalId: string
46
+ };
47
+ static subscribeLambda(topicLogicalId: string, functionArn: string, options: {
48
+ slug: string
49
+ environment: EnvironmentType
50
+ filterPolicy?: Record<string, unknown>
51
+ }): {
52
+ subscription: SNSSubscription
53
+ logicalId: string
54
+ };
55
+ static subscribeSqs(topicLogicalId: string, queueArn: string, options: {
56
+ slug: string
57
+ environment: EnvironmentType
58
+ filterPolicy?: Record<string, unknown>
59
+ rawMessageDelivery?: boolean
60
+ }): {
61
+ subscription: SNSSubscription
62
+ logicalId: string
63
+ };
64
+ static subscribeHttp(topicLogicalId: string, url: string, options: {
65
+ slug: string
66
+ environment: EnvironmentType
67
+ filterPolicy?: Record<string, unknown>
68
+ }): {
69
+ subscription: SNSSubscription
70
+ logicalId: string
71
+ };
72
+ static subscribeSms(topicLogicalId: string, phoneNumber: string, options: {
73
+ slug: string
74
+ environment: EnvironmentType
75
+ }): {
76
+ subscription: SNSSubscription
77
+ logicalId: string
78
+ };
79
+ static setTopicPolicy(topicLogicalId: string, options: TopicPolicyOptions): {
80
+ policy: SNSTopicPolicy
81
+ logicalId: string
82
+ };
83
+ static allowCloudWatchAlarms(topicLogicalId: string, options: {
84
+ slug: string
85
+ environment: EnvironmentType
86
+ }): {
87
+ policy: SNSTopicPolicy
88
+ logicalId: string
89
+ };
90
+ static allowEventBridge(topicLogicalId: string, options: {
91
+ slug: string
92
+ environment: EnvironmentType
93
+ }): {
94
+ policy: SNSTopicPolicy
95
+ logicalId: string
96
+ };
97
+ static allowS3(topicLogicalId: string, options: {
98
+ slug: string
99
+ environment: EnvironmentType
100
+ }): {
101
+ policy: SNSTopicPolicy
102
+ logicalId: string
103
+ };
104
+ static enableEncryption(topic: SNSTopic, kmsKeyId: string): SNSTopic;
105
+ static addInlineSubscription(topic: SNSTopic, protocol: SubscriptionOptions['protocol'], endpoint: string): SNSTopic;
106
+ static readonly FilterPolicies: any;
107
+ static readonly UseCases: any;
108
+ }
@@ -0,0 +1,127 @@
1
+ import type { CloudWatchAlarm, CloudWatchDashboard, CloudWatchLogGroup, CloudWatchLogStream, CloudWatchMetricFilter, CloudWatchCompositeAlarm, } from '@stacksjs/ts-cloud-aws-types';
2
+ import type { EnvironmentType } from '@stacksjs/ts-cloud-types';
3
+ export declare interface AlarmOptions {
4
+ slug: string
5
+ environment: EnvironmentType
6
+ alarmName?: string
7
+ metricName: string
8
+ namespace: string
9
+ statistic?: 'Average' | 'Sum' | 'Minimum' | 'Maximum' | 'SampleCount'
10
+ period?: number
11
+ evaluationPeriods?: number
12
+ threshold: number
13
+ comparisonOperator: 'GreaterThanThreshold' | 'GreaterThanOrEqualToThreshold' | 'LessThanThreshold' | 'LessThanOrEqualToThreshold'
14
+ treatMissingData?: 'breaching' | 'notBreaching' | 'ignore' | 'missing'
15
+ actionsEnabled?: boolean
16
+ alarmActions?: string[]
17
+ okActions?: string[]
18
+ insufficientDataActions?: string[]
19
+ dimensions?: Record<string, string>
20
+ unit?: string
21
+ datapointsToAlarm?: number
22
+ }
23
+ export declare interface DashboardOptions {
24
+ slug: string
25
+ environment: EnvironmentType
26
+ dashboardName?: string
27
+ widgets: DashboardWidget[]
28
+ }
29
+ export declare interface DashboardWidget {
30
+ type: 'metric' | 'log' | 'text' | 'alarm'
31
+ x: number
32
+ y: number
33
+ width: number
34
+ height: number
35
+ properties: Record<string, unknown>
36
+ }
37
+ export declare interface LogGroupOptions {
38
+ slug: string
39
+ environment: EnvironmentType
40
+ logGroupName?: string
41
+ retentionInDays?: number
42
+ kmsKeyId?: string
43
+ }
44
+ export declare interface LogStreamOptions {
45
+ slug: string
46
+ environment: EnvironmentType
47
+ logStreamName?: string
48
+ }
49
+ export declare interface MetricFilterOptions {
50
+ slug: string
51
+ environment: EnvironmentType
52
+ filterName?: string
53
+ filterPattern: string
54
+ metricTransformations: MetricTransformation[]
55
+ }
56
+ export declare interface MetricTransformation {
57
+ metricName: string
58
+ metricNamespace: string
59
+ metricValue: string
60
+ defaultValue?: number
61
+ unit?: string
62
+ }
63
+ export declare interface CompositeAlarmOptions {
64
+ slug: string
65
+ environment: EnvironmentType
66
+ alarmName?: string
67
+ alarmRule: string
68
+ actionsEnabled?: boolean
69
+ alarmActions?: string[]
70
+ okActions?: string[]
71
+ insufficientDataActions?: string[]
72
+ }
73
+ /**
74
+ * Monitoring Module - CloudWatch
75
+ * Provides clean API for alarms, dashboards, logs, and metrics
76
+ */
77
+ export declare class Monitoring {
78
+ static createAlarm(options: AlarmOptions): {
79
+ alarm: CloudWatchAlarm
80
+ logicalId: string
81
+ };
82
+ static createCompositeAlarm(options: CompositeAlarmOptions): {
83
+ alarm: CloudWatchCompositeAlarm
84
+ logicalId: string
85
+ };
86
+ static createDashboard(options: DashboardOptions): {
87
+ dashboard: CloudWatchDashboard
88
+ logicalId: string
89
+ };
90
+ static createLogGroup(options: LogGroupOptions): {
91
+ logGroup: CloudWatchLogGroup
92
+ logicalId: string
93
+ };
94
+ static createLogStream(logGroupLogicalId: string, options: LogStreamOptions): {
95
+ logStream: CloudWatchLogStream
96
+ logicalId: string
97
+ };
98
+ static createMetricFilter(logGroupLogicalId: string, options: MetricFilterOptions): {
99
+ metricFilter: CloudWatchMetricFilter
100
+ logicalId: string
101
+ };
102
+ static readonly AlarmTypes: any;
103
+ static readonly DashboardWidgets: any;
104
+ static readonly RetentionPeriods: any;
105
+ static readonly FilterPatterns: any;
106
+ static createApplicationDashboard(options: {
107
+ slug: string
108
+ environment: EnvironmentType
109
+ region?: string
110
+ components?: {
111
+ ec2InstanceIds?: string[]
112
+ lambdaFunctionNames?: string[]
113
+ ecsClusterName?: string
114
+ ecsServiceName?: string
115
+ albName?: string
116
+ targetGroupName?: string
117
+ rdsInstanceId?: string
118
+ sqsQueueNames?: string[]
119
+ logGroupNames?: string[]
120
+ }
121
+ }): {
122
+ dashboard: CloudWatchDashboard
123
+ logicalId: string
124
+ };
125
+ static readonly DashboardTemplates: any;
126
+ static readonly Config: any;
127
+ }
@@ -0,0 +1,102 @@
1
+ import type { EC2EIP, EC2FlowLog, EC2InternetGateway, EC2NatGateway, EC2Route, EC2RouteTable, EC2Subnet, EC2SubnetRouteTableAssociation, EC2VPC, EC2VPCGatewayAttachment, } from '@stacksjs/ts-cloud-aws-types';
2
+ import type { EnvironmentType } from '@stacksjs/ts-cloud-types';
3
+ export declare interface VpcOptions {
4
+ slug: string
5
+ environment: EnvironmentType
6
+ cidr?: string
7
+ enableDnsHostnames?: boolean
8
+ enableDnsSupport?: boolean
9
+ zones?: number
10
+ }
11
+ export declare interface SubnetOptions {
12
+ slug: string
13
+ environment: EnvironmentType
14
+ vpcId: string
15
+ type: 'public' | 'private' | 'isolated'
16
+ cidr: string
17
+ availabilityZone: string
18
+ mapPublicIp?: boolean
19
+ }
20
+ export declare interface NatGatewayOptions {
21
+ slug: string
22
+ environment: EnvironmentType
23
+ subnetId: string
24
+ }
25
+ export declare interface FlowLogOptions {
26
+ slug: string
27
+ environment: EnvironmentType
28
+ resourceId: string
29
+ resourceType: 'VPC' | 'Subnet'
30
+ trafficType?: 'ACCEPT' | 'REJECT' | 'ALL'
31
+ logGroupName?: string
32
+ }
33
+ /**
34
+ * Network Module - VPC, Subnets, NAT, Internet Gateway
35
+ * Provides clean API for creating and configuring networking resources
36
+ */
37
+ export declare class Network {
38
+ static createVpc(options: VpcOptions): {
39
+ vpc: EC2VPC
40
+ logicalId: string
41
+ };
42
+ static createSubnet(options: SubnetOptions): {
43
+ subnet: EC2Subnet
44
+ logicalId: string
45
+ };
46
+ static createInternetGateway(slug: string, environment: EnvironmentType): {
47
+ internetGateway: EC2InternetGateway
48
+ logicalId: string
49
+ };
50
+ static attachInternetGateway(vpcLogicalId: string, igwLogicalId: string): {
51
+ attachment: EC2VPCGatewayAttachment
52
+ logicalId: string
53
+ };
54
+ static createEip(slug: string, environment: EnvironmentType): {
55
+ eip: EC2EIP
56
+ logicalId: string
57
+ };
58
+ static createNatGateway(options: NatGatewayOptions, eipLogicalId: string): {
59
+ natGateway: EC2NatGateway
60
+ logicalId: string
61
+ };
62
+ static createRouteTable(slug: string, environment: EnvironmentType, vpcLogicalId: string, type: 'public' | 'private'): {
63
+ routeTable: EC2RouteTable
64
+ logicalId: string
65
+ };
66
+ static createRoute(routeTableLogicalId: string, destination: string, target: {
67
+ type: 'igw' | 'nat' | 'instance'
68
+ logicalId: string
69
+ }): {
70
+ route: EC2Route
71
+ logicalId: string
72
+ };
73
+ static associateSubnetWithRouteTable(subnetLogicalId: string, routeTableLogicalId: string): {
74
+ association: EC2SubnetRouteTableAssociation
75
+ logicalId: string
76
+ };
77
+ static enableFlowLogs(options: FlowLogOptions): {
78
+ flowLog: EC2FlowLog
79
+ logicalId: string
80
+ };
81
+ static calculateSubnetCidrs(vpcCidr: string, zones: number, subnetsPerZone?: any): string[];
82
+ static getAvailabilityZones(region: string, count: number): string[];
83
+ static createMultiAzNetwork(options: {
84
+ slug: string
85
+ environment: EnvironmentType
86
+ region: string
87
+ cidr?: string
88
+ zones?: number
89
+ enableNatGateway?: boolean
90
+ singleNatGateway?: boolean // Use single NAT for cost savings (not HA)
91
+ enableFlowLogs?: boolean
92
+ }): {
93
+ resources: Record<string, any>
94
+ outputs: {
95
+ vpcId: string
96
+ publicSubnetIds: string[]
97
+ privateSubnetIds: string[]
98
+ natGatewayIds?: string[]
99
+ }
100
+ };
101
+ static readonly NatGatewayCostWarning: any;
102
+ }
@@ -0,0 +1,33 @@
1
+ import type { SSMParameter } from '@stacksjs/ts-cloud-aws-types';
2
+ export declare interface ParameterOptions {
3
+ slug: string
4
+ environment: string
5
+ parameterName?: string
6
+ value: string
7
+ type?: 'String' | 'StringList' | 'SecureString'
8
+ description?: string
9
+ tier?: 'Standard' | 'Advanced' | 'Intelligent-Tiering'
10
+ tags?: Record<string, string>
11
+ }
12
+ /**
13
+ * Parameter Store Module
14
+ */
15
+ export declare class ParameterStore {
16
+ static createParameter(options: ParameterOptions): {
17
+ parameter: SSMParameter
18
+ logicalId: string
19
+ };
20
+ static createString(slug: string, environment: string, name: string, value: string, description?: string): {
21
+ parameter: SSMParameter
22
+ logicalId: string
23
+ };
24
+ static createSecureString(slug: string, environment: string, name: string, value: string, description?: string): {
25
+ parameter: SSMParameter
26
+ logicalId: string
27
+ };
28
+ static createStringList(slug: string, environment: string, name: string, values: string[], description?: string): {
29
+ parameter: SSMParameter
30
+ logicalId: string
31
+ };
32
+ static readonly Parameters: any;
33
+ }