@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,100 @@
1
+ import type { ACMCertificate, KMSAlias, KMSKey, WAFv2IPSet, WAFv2WebACL } from '@stacksjs/ts-cloud-aws-types';
2
+ import type { EnvironmentType } from '@stacksjs/ts-cloud-types';
3
+ export declare interface CertificateOptions {
4
+ domain: string
5
+ subdomains?: string[]
6
+ slug: string
7
+ environment: EnvironmentType
8
+ validationMethod?: 'DNS' | 'EMAIL'
9
+ hostedZoneId?: string
10
+ }
11
+ export declare interface KmsKeyOptions {
12
+ description: string
13
+ slug: string
14
+ environment: EnvironmentType
15
+ enableRotation?: boolean
16
+ multiRegion?: boolean
17
+ }
18
+ export declare interface FirewallOptions {
19
+ slug: string
20
+ environment: EnvironmentType
21
+ scope?: 'CLOUDFRONT' | 'REGIONAL'
22
+ defaultAction?: 'allow' | 'block'
23
+ }
24
+ export declare interface RateLimitRule {
25
+ name: string
26
+ priority: number
27
+ requestsPerWindow: number
28
+ aggregateKeyType?: 'IP' | 'FORWARDED_IP'
29
+ }
30
+ export declare interface GeoBlockRule {
31
+ name: string
32
+ priority: number
33
+ countryCodes: string[]
34
+ }
35
+ export declare interface IpBlockRule {
36
+ name: string
37
+ priority: number
38
+ ipAddresses: string[]
39
+ ipVersion?: 'IPV4' | 'IPV6'
40
+ }
41
+ export declare interface ManagedRuleGroup {
42
+ name: string
43
+ priority: number
44
+ vendorName: string
45
+ ruleName: string
46
+ excludedRules?: string[]
47
+ }
48
+ /**
49
+ * Security Module - ACM, KMS, WAF Management
50
+ * Provides clean API for creating and configuring security resources
51
+ */
52
+ export declare class Security {
53
+ static createCertificate(options: CertificateOptions): {
54
+ certificate: ACMCertificate
55
+ logicalId: string
56
+ };
57
+ static createKmsKey(options: KmsKeyOptions): {
58
+ key: KMSKey
59
+ alias?: KMSAlias
60
+ logicalId: string
61
+ aliasId?: string
62
+ };
63
+ static createFirewall(options: FirewallOptions): {
64
+ webAcl: WAFv2WebACL
65
+ logicalId: string
66
+ };
67
+ static setRateLimit(webAcl: WAFv2WebACL, rule: RateLimitRule): WAFv2WebACL;
68
+ static blockCountries(webAcl: WAFv2WebACL, rule: GeoBlockRule): WAFv2WebACL;
69
+ static blockIpAddresses(webAcl: WAFv2WebACL, rule: IpBlockRule, slug: string, environment: EnvironmentType): {
70
+ webAcl: WAFv2WebACL
71
+ ipSet: WAFv2IPSet
72
+ ipSetLogicalId: string
73
+ };
74
+ static addManagedRules(webAcl: WAFv2WebACL, rule: ManagedRuleGroup): WAFv2WebACL;
75
+ static readonly ManagedRuleGroups: any;
76
+ static setPathRateLimit(webAcl: WAFv2WebACL, rule: RateLimitRule & { paths: string[] }): WAFv2WebACL;
77
+ static setHeaderRateLimit(webAcl: WAFv2WebACL, rule: RateLimitRule & { headerName: string, headerValue?: string }): WAFv2WebACL;
78
+ static protectLoginEndpoint(webAcl: WAFv2WebACL, options: {
79
+ loginPaths: string[]
80
+ priority: number
81
+ requestsPerMinute?: number
82
+ }): WAFv2WebACL;
83
+ static protectApiEndpoints(webAcl: WAFv2WebACL, options: {
84
+ apiPaths: string[]
85
+ priority: number
86
+ requestsPerMinute?: number
87
+ }): WAFv2WebACL;
88
+ static createProtectedFirewall(options: {
89
+ slug: string
90
+ environment: EnvironmentType
91
+ scope?: 'CLOUDFRONT' | 'REGIONAL'
92
+ enableBotControl?: boolean
93
+ enableRateLimiting?: boolean
94
+ rateLimitPerMinute?: number
95
+ }): {
96
+ webAcl: WAFv2WebACL
97
+ logicalId: string
98
+ };
99
+ static readonly RateLimitPresets: any;
100
+ }
@@ -0,0 +1,52 @@
1
+ export declare interface SmsConfig {
2
+ slug: string
3
+ environment: string
4
+ senderId?: string
5
+ originationNumber?: string
6
+ messageType?: 'TRANSACTIONAL' | 'PROMOTIONAL'
7
+ twoWayEnabled?: boolean
8
+ webhookUrl?: string
9
+ }
10
+ export declare class SMS {
11
+ static LambdaCode: { send: typeof sendHandler; receive: typeof receiveHandler; deliveryStatus: typeof deliveryStatusHandler };
12
+ static createPinpointApp(config: { slug: string; name?: string }): Record<string, any>;
13
+ static createSmsChannel(config: {
14
+ slug: string
15
+ applicationId: string | { Ref: string }
16
+ senderId?: string
17
+ shortCode?: string
18
+ enabled?: boolean
19
+ }): Record<string, any>;
20
+ static createSmsLambdaRole(config: { slug: string }): Record<string, any>;
21
+ static createSendLambda(config: {
22
+ slug: string
23
+ roleArn: string | { 'Fn::GetAtt': string[] }
24
+ pinpointAppId: string | { Ref: string }
25
+ messageLogTable?: string | { Ref: string }
26
+ senderId?: string
27
+ originationNumber?: string
28
+ }): Record<string, any>;
29
+ static createReceiveLambda(config: {
30
+ slug: string
31
+ roleArn: string | { 'Fn::GetAtt': string[] }
32
+ optOutTable?: string | { Ref: string }
33
+ messageLogTable?: string | { Ref: string }
34
+ notificationTopicArn?: string | { Ref: string }
35
+ webhookUrl?: string
36
+ }): Record<string, any>;
37
+ static createDeliveryStatusLambda(config: {
38
+ slug: string
39
+ roleArn: string | { 'Fn::GetAtt': string[] }
40
+ messageLogTable?: string | { Ref: string }
41
+ notificationTopicArn?: string | { Ref: string }
42
+ webhookUrl?: string
43
+ }): Record<string, any>;
44
+ static createMessageLogTable(config: { slug: string }): Record<string, any>;
45
+ static createOptOutTable(config: { slug: string }): Record<string, any>;
46
+ static createNotificationTopic(config: { slug: string }): Record<string, any>;
47
+ static createCompleteSetup(config: SmsConfig): {
48
+ resources: Record<string, any>
49
+ outputs: Record<string, any>
50
+ };
51
+ }
52
+ export default SMS;
@@ -0,0 +1,160 @@
1
+ import { Fn } from '../intrinsic-functions';
2
+ import type { BackupPlan, BackupSelection, BackupVault, S3Bucket, S3BucketPolicy } from '@stacksjs/ts-cloud-aws-types';
3
+ import type { EnvironmentType } from '@stacksjs/ts-cloud-types';
4
+ import type { IAMRole } from '@stacksjs/ts-cloud-aws-types';
5
+ export declare interface BucketOptions {
6
+ name?: string
7
+ bucketName?: string
8
+ slug: string
9
+ environment: EnvironmentType
10
+ public?: boolean
11
+ versioning?: boolean
12
+ website?: boolean
13
+ encryption?: boolean
14
+ intelligentTiering?: boolean
15
+ cors?: CorsRule[]
16
+ lifecycleRules?: LifecycleRule[]
17
+ }
18
+ export declare interface CorsRule {
19
+ allowedOrigins: string[]
20
+ allowedMethods: string[]
21
+ allowedHeaders?: string[]
22
+ maxAge?: number
23
+ }
24
+ export declare interface LifecycleRule {
25
+ id: string
26
+ enabled: boolean
27
+ expirationDays?: number
28
+ transitions?: Array<{
29
+ days: number
30
+ storageClass: 'GLACIER' | 'DEEP_ARCHIVE' | 'INTELLIGENT_TIERING' | 'STANDARD_IA' | 'ONEZONE_IA'
31
+ }>
32
+ }
33
+ export declare interface S3NotificationConfig {
34
+ functionArn: string | { 'Fn::GetAtt': [string, string] }
35
+ events: Array<'s3:ObjectCreated:*' | 's3:ObjectCreated:Put' | 's3:ObjectCreated:Post' | 's3:ObjectCreated:Copy' | 's3:ObjectCreated:CompleteMultipartUpload' | 's3:ObjectRemoved:*' | 's3:ObjectRemoved:Delete' | 's3:ObjectRemoved:DeleteMarkerCreated'>
36
+ filter?: {
37
+ prefix?: string
38
+ suffix?: string
39
+ }
40
+ }
41
+ export declare interface BackupPlanOptions {
42
+ name: string
43
+ slug: string
44
+ environment: EnvironmentType
45
+ bucketLogicalIds: string[]
46
+ retentionDays: number
47
+ schedule?: string
48
+ vaultName?: string
49
+ enableContinuousBackup?: boolean
50
+ moveToColdStorageAfterDays?: number
51
+ }
52
+ /**
53
+ * Storage Module - S3 Bucket Management
54
+ * Provides clean API for creating and configuring S3 buckets
55
+ */
56
+ export declare class Storage {
57
+ static createBucket(options: BucketOptions): { bucket: S3Bucket, bucketPolicy?: S3BucketPolicy, logicalId: string };
58
+ static enableVersioning(bucket: S3Bucket): S3Bucket;
59
+ static enableWebsiteHosting(bucket: S3Bucket, indexDocument?: any, errorDocument?: any): S3Bucket;
60
+ static setLifecycleRules(bucket: S3Bucket, rules: LifecycleRule[]): S3Bucket;
61
+ static enableIntelligentTiering(bucket: S3Bucket): S3Bucket;
62
+ static addLambdaNotification(bucket: S3Bucket, config: S3NotificationConfig): S3Bucket;
63
+ static readonly Notifications: any;
64
+ static createBackupPlan(options: BackupPlanOptions): {
65
+ vault: BackupVault
66
+ plan: BackupPlan
67
+ selection: BackupSelection
68
+ role: IAMRole
69
+ vaultLogicalId: string
70
+ planLogicalId: string
71
+ selectionLogicalId: string
72
+ roleLogicalId: string
73
+ };
74
+ static readonly BackupSchedules: any;
75
+ static readonly BackupRetention: any;
76
+ static createWwwRedirectBucket(options: {
77
+ slug: string
78
+ environment: EnvironmentType
79
+ sourceDomain: string // e.g., www.example.com
80
+ targetDomain: string // e.g., example.com
81
+ protocol?: 'http' | 'https'
82
+ }): { bucket: S3Bucket, bucketPolicy: S3BucketPolicy, logicalId: string };
83
+ static createDocsBucket(options: {
84
+ slug: string
85
+ environment: EnvironmentType
86
+ domain?: string
87
+ }): { bucket: S3Bucket, bucketPolicy?: S3BucketPolicy, logicalId: string };
88
+ static createEmailBucket(options: {
89
+ slug: string
90
+ environment: EnvironmentType
91
+ }): { bucket: S3Bucket, bucketPolicy: S3BucketPolicy, logicalId: string };
92
+ static docsExist(options?: {
93
+ projectRoot?: string
94
+ docsPaths?: string[]
95
+ }): {
96
+ exists: boolean
97
+ path: string | null
98
+ hasDistFolder: boolean
99
+ distPath: string | null
100
+ };
101
+ static createDocsBucketIfExists(options: {
102
+ slug: string
103
+ environment: EnvironmentType
104
+ domain?: string
105
+ projectRoot?: string
106
+ docsPaths?: string[]
107
+ }): {
108
+ bucket: S3Bucket | null
109
+ bucketPolicy?: S3BucketPolicy
110
+ logicalId: string | null
111
+ docsInfo: {
112
+ exists: boolean
113
+ path: string | null
114
+ hasDistFolder: boolean
115
+ distPath: string | null
116
+ }
117
+ };
118
+ static createPrivateBucket(options: {
119
+ slug: string
120
+ environment: EnvironmentType
121
+ enableVersioning?: boolean
122
+ retentionDays?: number
123
+ encryptionKeyArn?: string
124
+ }): { bucket: S3Bucket, logicalId: string };
125
+ static checkSourcePaths(options?: {
126
+ projectRoot?: string
127
+ paths?: {
128
+ web?: string
129
+ docs?: string
130
+ private?: string
131
+ }
132
+ }): {
133
+ web: { exists: boolean, path: string }
134
+ docs: { exists: boolean, path: string }
135
+ private: { exists: boolean, path: string }
136
+ };
137
+ static createDeploymentBuckets(options: {
138
+ slug: string
139
+ environment: EnvironmentType
140
+ domain?: string
141
+ projectRoot?: string
142
+ paths?: {
143
+ web?: string
144
+ docs?: string
145
+ private?: string
146
+ }
147
+ }): {
148
+ resources: Record<string, S3Bucket | S3BucketPolicy>
149
+ created: {
150
+ web: boolean
151
+ docs: boolean
152
+ private: boolean
153
+ }
154
+ sourcePaths: {
155
+ web: { exists: boolean, path: string }
156
+ docs: { exists: boolean, path: string }
157
+ private: { exists: boolean, path: string }
158
+ }
159
+ };
160
+ }
@@ -0,0 +1,205 @@
1
+ import type { EnvironmentType } from '@stacksjs/ts-cloud-types';
2
+ import type { StepFunctionsStateMachine, IAMRole, } from '@stacksjs/ts-cloud-aws-types';
3
+ export declare interface StateMachineOptions {
4
+ slug: string
5
+ environment: EnvironmentType
6
+ stateMachineName?: string
7
+ type?: 'STANDARD' | 'EXPRESS'
8
+ definition: StateMachineDefinition
9
+ roleArn?: string
10
+ loggingConfiguration?: {
11
+ level: 'ALL' | 'ERROR' | 'FATAL' | 'OFF'
12
+ includeExecutionData?: boolean
13
+ destinations?: string[]
14
+ }
15
+ tracingConfiguration?: {
16
+ enabled: boolean
17
+ }
18
+ }
19
+ export declare interface StateMachineDefinition {
20
+ Comment?: string
21
+ StartAt: string
22
+ States: Record<string, State>
23
+ TimeoutSeconds?: number
24
+ Version?: string
25
+ }
26
+ export declare interface BaseState {
27
+ Type: 'Task' | 'Pass' | 'Wait' | 'Choice' | 'Parallel' | 'Map' | 'Succeed' | 'Fail'
28
+ Comment?: string
29
+ End?: boolean
30
+ Next?: string
31
+ }
32
+ export declare interface TaskState extends BaseState {
33
+ Type: 'Task'
34
+ Resource: string
35
+ Parameters?: Record<string, unknown>
36
+ ResultPath?: string | null
37
+ OutputPath?: string
38
+ InputPath?: string
39
+ TimeoutSeconds?: number
40
+ HeartbeatSeconds?: number
41
+ Retry?: RetryConfig[]
42
+ Catch?: CatchConfig[]
43
+ }
44
+ export declare interface PassState extends BaseState {
45
+ Type: 'Pass'
46
+ Result?: unknown
47
+ ResultPath?: string | null
48
+ Parameters?: Record<string, unknown>
49
+ }
50
+ export declare interface WaitState extends BaseState {
51
+ Type: 'Wait'
52
+ Seconds?: number
53
+ Timestamp?: string
54
+ SecondsPath?: string
55
+ TimestampPath?: string
56
+ }
57
+ export declare interface ChoiceState extends BaseState {
58
+ Type: 'Choice'
59
+ Choices: ChoiceRule[]
60
+ Default?: string
61
+ }
62
+ export declare interface ChoiceRule {
63
+ Variable: string
64
+ StringEquals?: string
65
+ StringLessThan?: string
66
+ StringGreaterThan?: string
67
+ NumericEquals?: number
68
+ NumericLessThan?: number
69
+ NumericGreaterThan?: number
70
+ BooleanEquals?: boolean
71
+ TimestampEquals?: string
72
+ TimestampLessThan?: string
73
+ TimestampGreaterThan?: string
74
+ IsPresent?: boolean
75
+ IsNull?: boolean
76
+ IsNumeric?: boolean
77
+ IsString?: boolean
78
+ IsBoolean?: boolean
79
+ IsTimestamp?: boolean
80
+ Next: string
81
+ And?: ChoiceRule[]
82
+ Or?: ChoiceRule[]
83
+ Not?: ChoiceRule
84
+ }
85
+ export declare interface ParallelState extends BaseState {
86
+ Type: 'Parallel'
87
+ Branches: StateMachineDefinition[]
88
+ ResultPath?: string | null
89
+ Retry?: RetryConfig[]
90
+ Catch?: CatchConfig[]
91
+ }
92
+ export declare interface MapState extends BaseState {
93
+ Type: 'Map'
94
+ ItemsPath?: string
95
+ Iterator: StateMachineDefinition
96
+ MaxConcurrency?: number
97
+ ResultPath?: string | null
98
+ Retry?: RetryConfig[]
99
+ Catch?: CatchConfig[]
100
+ }
101
+ export declare interface SucceedState extends BaseState {
102
+ Type: 'Succeed'
103
+ }
104
+ export declare interface FailState extends BaseState {
105
+ Type: 'Fail'
106
+ Error?: string
107
+ Cause?: string
108
+ }
109
+ export declare interface RetryConfig {
110
+ ErrorEquals: string[]
111
+ IntervalSeconds?: number
112
+ MaxAttempts?: number
113
+ BackoffRate?: number
114
+ }
115
+ export declare interface CatchConfig {
116
+ ErrorEquals: string[]
117
+ Next: string
118
+ ResultPath?: string
119
+ }
120
+ export type State = | TaskState
121
+ | PassState
122
+ | WaitState
123
+ | ChoiceState
124
+ | ParallelState
125
+ | MapState
126
+ | SucceedState
127
+ | FailState
128
+ /**
129
+ * Workflow Module - Step Functions
130
+ * Provides clean API for orchestrating distributed applications and microservices
131
+ */
132
+ export declare class Workflow {
133
+ static createStateMachine(options: StateMachineOptions): {
134
+ stateMachine: StepFunctionsStateMachine
135
+ logicalId: string
136
+ role?: IAMRole
137
+ roleLogicalId?: string
138
+ };
139
+ static createLambdaTask(functionArn: string, options?: {
140
+ parameters?: Record<string, unknown>
141
+ resultPath?: string | null
142
+ retry?: RetryConfig[]
143
+ catch?: CatchConfig[]
144
+ next?: string
145
+ end?: boolean
146
+ }): TaskState;
147
+ static createDynamoDBTask(action: 'GetItem' | 'PutItem' | 'UpdateItem' | 'DeleteItem', tableName: string, parameters: Record<string, unknown>, options?: {
148
+ resultPath?: string | null
149
+ retry?: RetryConfig[]
150
+ catch?: CatchConfig[]
151
+ next?: string
152
+ end?: boolean
153
+ }): TaskState;
154
+ static createSNSPublishTask(topicArn: string, message: Record<string, unknown>, options?: {
155
+ resultPath?: string | null
156
+ retry?: RetryConfig[]
157
+ catch?: CatchConfig[]
158
+ next?: string
159
+ end?: boolean
160
+ }): TaskState;
161
+ static createSQSSendMessageTask(queueUrl: string, messageBody: Record<string, unknown>, options?: {
162
+ resultPath?: string | null
163
+ retry?: RetryConfig[]
164
+ catch?: CatchConfig[]
165
+ next?: string
166
+ end?: boolean
167
+ }): TaskState;
168
+ static createPassState(options?: {
169
+ result?: unknown
170
+ resultPath?: string | null
171
+ parameters?: Record<string, unknown>
172
+ next?: string
173
+ end?: boolean
174
+ }): PassState;
175
+ static createWaitState(options: {
176
+ seconds?: number
177
+ timestamp?: string
178
+ secondsPath?: string
179
+ timestampPath?: string
180
+ next?: string
181
+ end?: boolean
182
+ }): WaitState;
183
+ static createChoiceState(choices: ChoiceRule[], defaultState?: string): ChoiceState;
184
+ static createParallelState(branches: StateMachineDefinition[], options?: {
185
+ resultPath?: string | null
186
+ retry?: RetryConfig[]
187
+ catch?: CatchConfig[]
188
+ next?: string
189
+ end?: boolean
190
+ }): ParallelState;
191
+ static createMapState(iterator: StateMachineDefinition, options?: {
192
+ itemsPath?: string
193
+ maxConcurrency?: number
194
+ resultPath?: string | null
195
+ retry?: RetryConfig[]
196
+ catch?: CatchConfig[]
197
+ next?: string
198
+ end?: boolean
199
+ }): MapState;
200
+ static createSucceedState(): SucceedState;
201
+ static createFailState(error?: string, cause?: string): FailState;
202
+ static readonly RetryPolicies: any;
203
+ static readonly CatchPolicies: any;
204
+ static readonly Patterns: any;
205
+ }