@stacksjs/ts-cloud-core 0.1.6 → 0.1.8

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,59 @@
1
+ import { addApiGatewayResources } from './builders/api-gateway';
2
+ import { addCacheResources } from './builders/cache';
3
+ import { addCDNResources } from './builders/cdn';
4
+ import { addComputeResources } from './builders/compute';
5
+ import { addDatabaseResources } from './builders/database';
6
+ import { addFunctionResources } from './builders/functions';
7
+ import { addMessagingResources } from './builders/messaging';
8
+ import { addMonitoringResources } from './builders/monitoring';
9
+ import { addNetworkResources } from './builders/network';
10
+ import { addQueueResources } from './builders/queue';
11
+ import { addSecurityResources } from './builders/security';
12
+ import { addStorageResources } from './builders/storage';
13
+ import type { CloudConfig } from '@stacksjs/ts-cloud-types';
14
+ import type { CloudFormationTemplate, CloudFormationResource } from './types';
15
+ /**
16
+ * Main function to convert CloudConfig to CloudFormation template
17
+ */
18
+ export declare function buildCloudFormationTemplate(config: CloudConfig): CloudFormationTemplate;
19
+ /**
20
+ * CloudFormation Template Builder
21
+ * Converts-cloudConfig to CloudFormation templates
22
+ */
23
+ export declare class CloudFormationBuilder {
24
+ protected template: CloudFormationTemplate;
25
+ private config: CloudConfig;
26
+ private resourceDependencies: Map<string, Set<string>>;
27
+ constructor(config: CloudConfig);
28
+ build(): CloudFormationTemplate;
29
+ private addParameters(): void;
30
+ private addMappings(): void;
31
+ private addConditions(): void;
32
+ private addResources(): void;
33
+ private initializeOutputs(): void;
34
+ addResource(logicalId: string, type: string, properties: Record<string, any>, options?: {
35
+ dependsOn?: string | string[]
36
+ condition?: string
37
+ deletionPolicy?: 'Delete' | 'Retain' | 'Snapshot'
38
+ updateReplacePolicy?: 'Delete' | 'Retain' | 'Snapshot'
39
+ }): void;
40
+ addOutputs(outputs: Record<string, any>): void;
41
+ getOutputs(): Record<string, any>;
42
+ hasResource(logicalId: string): boolean;
43
+ getResource(logicalId: string): CloudFormationResource | undefined;
44
+ private trackDependency(resource: string, dependencies: string | string[]): void;
45
+ private resolveDependencies(): void;
46
+ toLogicalId(name: string): string;
47
+ private addNetworkResources(network: any): void;
48
+ private addStorageResources(storage: any): void;
49
+ private addComputeResources(compute: any): void;
50
+ private addDatabaseResources(database: any): void;
51
+ private addFunctionResources(functions: any): void;
52
+ private addCacheResources(cache: any): void;
53
+ private addQueueResources(queue: any): void;
54
+ private addMessagingResources(messaging: any): void;
55
+ private addCDNResources(cdn: any): void;
56
+ private addApiGatewayResources(apiGateway: any): void;
57
+ private addMonitoringResources(monitoring: any): void;
58
+ private addSecurityResources(security: any): void;
59
+ }
File without changes
@@ -0,0 +1,30 @@
1
+ import type { CloudFormationBuilder } from '../builder';
2
+ /**
3
+ * Add API Gateway resources to CloudFormation template
4
+ */
5
+ export declare function addApiGatewayResources(builder: CloudFormationBuilder, config: ApiGatewayConfig): void;
6
+ export declare interface ApiGatewayConfig {
7
+ type: 'http' | 'rest' | 'websocket'
8
+ customDomain?: {
9
+ domain: string
10
+ certificateArn: string
11
+ }
12
+ cors?: {
13
+ allowOrigins: string[]
14
+ allowMethods: string[]
15
+ allowHeaders?: string[]
16
+ maxAge?: number
17
+ }
18
+ throttling?: {
19
+ rateLimit: number
20
+ burstLimit: number
21
+ }
22
+ routes?: any
23
+ authorizer?: {
24
+ type: 'jwt' | 'lambda' | 'cognito'
25
+ identitySource?: string
26
+ authorizerUri?: string
27
+ issuer?: string
28
+ audience?: string[]
29
+ }
30
+ }
@@ -0,0 +1,35 @@
1
+ import type { CloudFormationBuilder } from '../builder';
2
+ /**
3
+ * Add ElastiCache resources to CloudFormation template
4
+ */
5
+ export declare function addCacheResources(builder: CloudFormationBuilder, config: CacheConfig): void;
6
+ export declare interface CacheConfig {
7
+ redis?: {
8
+ nodeType: string
9
+ numCacheNodes: number
10
+ engine: 'redis'
11
+ engineVersion: string
12
+ port?: number
13
+ parameterGroup?: {
14
+ maxmemoryPolicy?: string
15
+ timeout?: string
16
+ [key: string]: string | undefined
17
+ }
18
+ snapshotRetentionLimit?: number
19
+ snapshotWindow?: string
20
+ automaticFailoverEnabled?: boolean
21
+ }
22
+ memcached?: {
23
+ nodeType: string
24
+ numCacheNodes: number
25
+ engine: 'memcached'
26
+ engineVersion: string
27
+ port?: number
28
+ }
29
+ elasticache?: {
30
+ nodeType: string
31
+ numCacheNodes: number
32
+ engine: string
33
+ engineVersion: string
34
+ }
35
+ }
@@ -0,0 +1,34 @@
1
+ import type { CloudFormationBuilder } from '../builder';
2
+ /**
3
+ * Add CloudFront distribution to CloudFormation template
4
+ */
5
+ export declare function addCDNResources(builder: CloudFormationBuilder, config: CDNConfig): void;
6
+ export declare interface CDNConfig {
7
+ enabled: boolean
8
+ origins?: Array<{
9
+ id: string
10
+ domainName: string
11
+ pathPattern?: string
12
+ originPath?: string
13
+ }>
14
+ customDomain?: {
15
+ domain: string
16
+ certificateArn: string
17
+ }
18
+ cachePolicy?: {
19
+ minTTL?: number
20
+ defaultTTL?: number
21
+ maxTTL?: number
22
+ }
23
+ compress?: boolean
24
+ http3?: boolean
25
+ errorPages?: {
26
+ [code: string]: string
27
+ }
28
+ edgeFunctions?: Array<{
29
+ eventType: 'viewer-request' | 'viewer-response' | 'origin-request' | 'origin-response'
30
+ functionArn: string
31
+ name: string
32
+ }>
33
+ priceClass?: 'PriceClass_All' | 'PriceClass_200' | 'PriceClass_100'
34
+ }
@@ -0,0 +1,66 @@
1
+ import type { CloudFormationBuilder } from '../builder';
2
+ /**
3
+ * Add compute resources (EC2, ECS, ALB) to CloudFormation template
4
+ */
5
+ export declare function addComputeResources(builder: CloudFormationBuilder, config: ComputeConfig): void;
6
+ export declare interface LoadBalancerConfig {
7
+ type: 'application' | 'network'
8
+ healthCheck?: {
9
+ path?: string
10
+ interval?: number
11
+ timeout?: number
12
+ healthyThreshold?: number
13
+ unhealthyThreshold?: number
14
+ }
15
+ stickySession?: {
16
+ enabled: boolean
17
+ duration?: number
18
+ }
19
+ }
20
+ export declare interface ServerConfig {
21
+ instanceType: string
22
+ ami?: string
23
+ autoScaling?: {
24
+ min: number
25
+ max: number
26
+ targetCPU?: number
27
+ scaleUpCooldown?: number
28
+ scaleDownCooldown?: number
29
+ }
30
+ loadBalancer?: LoadBalancerConfig
31
+ userData?: string
32
+ }
33
+ export declare interface ComputeConfig {
34
+ server?: ServerConfig
35
+ fargate?: {
36
+ taskDefinition: {
37
+ cpu: string
38
+ memory: string
39
+ containerDefinitions?: Array<{
40
+ name: string
41
+ image: string
42
+ portMappings?: Array<{ containerPort: number }>
43
+ environment?: Record<string, string>
44
+ healthCheck?: any
45
+ }>
46
+ }
47
+ service: {
48
+ desiredCount: number
49
+ serviceDiscovery?: {
50
+ enabled: boolean
51
+ namespace?: string
52
+ }
53
+ autoScaling?: {
54
+ min: number
55
+ max: number
56
+ targetCPU?: number
57
+ }
58
+ }
59
+ }
60
+ services?: Array<{
61
+ name: string
62
+ type: 'fargate' | 'ec2'
63
+ taskDefinition: any
64
+ service: any
65
+ }>
66
+ }
@@ -0,0 +1,61 @@
1
+ import type { CloudFormationBuilder } from '../builder';
2
+ /**
3
+ * Add database resources (RDS, DynamoDB) to CloudFormation template
4
+ */
5
+ export declare function addDatabaseResources(builder: CloudFormationBuilder, config: DatabaseConfig): void;
6
+ export declare interface DatabaseConfig {
7
+ postgres?: {
8
+ engine: 'postgres'
9
+ version: string
10
+ instanceClass: string
11
+ allocatedStorage: number
12
+ maxAllocatedStorage?: number
13
+ multiAZ?: boolean
14
+ backupRetentionDays?: number
15
+ preferredBackupWindow?: string
16
+ preferredMaintenanceWindow?: string
17
+ enablePerformanceInsights?: boolean
18
+ performanceInsightsRetention?: number
19
+ deletionProtection?: boolean
20
+ parameters?: Record<string, string>
21
+ }
22
+ mysql?: {
23
+ engine: 'mysql'
24
+ version: string
25
+ instanceClass: string
26
+ allocatedStorage: number
27
+ maxAllocatedStorage?: number
28
+ multiAZ?: boolean
29
+ backupRetentionDays?: number
30
+ preferredBackupWindow?: string
31
+ preferredMaintenanceWindow?: string
32
+ enablePerformanceInsights?: boolean
33
+ performanceInsightsRetention?: number
34
+ deletionProtection?: boolean
35
+ parameters?: Record<string, string>
36
+ }
37
+ dynamodb?: {
38
+ tables: DynamoDBTableConfig[]
39
+ }
40
+ }
41
+ export declare interface DynamoDBTableConfig {
42
+ name: string
43
+ partitionKey: string
44
+ sortKey?: string
45
+ billingMode?: 'PROVISIONED' | 'PAY_PER_REQUEST'
46
+ readCapacity?: number
47
+ writeCapacity?: number
48
+ streamEnabled?: boolean
49
+ pointInTimeRecovery?: boolean
50
+ ttl?: {
51
+ enabled: boolean
52
+ attributeName: string
53
+ }
54
+ globalSecondaryIndexes?: Array<{
55
+ name: string
56
+ partitionKey: string
57
+ sortKey?: string
58
+ projectionType?: 'ALL' | 'KEYS_ONLY' | 'INCLUDE'
59
+ nonKeyAttributes?: string[]
60
+ }>
61
+ }
@@ -0,0 +1,32 @@
1
+ import type { CloudFormationBuilder } from '../builder';
2
+ /**
3
+ * Add Lambda function resources to CloudFormation template
4
+ */
5
+ export declare function addFunctionResources(builder: CloudFormationBuilder, config: FunctionsConfig): void;
6
+ export declare interface FunctionEvent {
7
+ type: 'http' | 's3' | 'sqs' | 'sns' | 'kinesis' | 'dynamodb-stream' | 'schedule'
8
+ path?: string
9
+ method?: string
10
+ bucket?: string
11
+ filterPrefix?: string
12
+ filterSuffix?: string
13
+ queueName?: string
14
+ streamName?: string
15
+ tableName?: string
16
+ batchSize?: number
17
+ startingPosition?: 'LATEST' | 'TRIM_HORIZON'
18
+ parallelizationFactor?: number
19
+ expression?: string
20
+ }
21
+ export declare interface FunctionItem {
22
+ name: string
23
+ runtime: string
24
+ handler: string
25
+ memory: number
26
+ timeout: number
27
+ events?: FunctionEvent[]
28
+ environment?: Record<string, string>
29
+ }
30
+ export declare interface FunctionsConfig {
31
+
32
+ }
@@ -0,0 +1,17 @@
1
+ import type { CloudFormationBuilder } from '../builder';
2
+ /**
3
+ * Add SNS topic resources to CloudFormation template
4
+ */
5
+ export declare function addMessagingResources(builder: CloudFormationBuilder, config: MessagingConfig): void;
6
+ export declare interface TopicConfig {
7
+ name: string
8
+ displayName?: string
9
+ subscriptions?: Array<{
10
+ protocol: 'http' | 'https' | 'email' | 'email-json' | 'sms' | 'sqs' | 'lambda'
11
+ endpoint: string
12
+ filterPolicy?: Record<string, any>
13
+ }>
14
+ }
15
+ export declare interface MessagingConfig {
16
+ topics?: TopicConfig[]
17
+ }
@@ -0,0 +1,36 @@
1
+ import type { CloudFormationBuilder } from '../builder';
2
+ /**
3
+ * Add CloudWatch monitoring resources to CloudFormation template
4
+ */
5
+ export declare function addMonitoringResources(builder: CloudFormationBuilder, config: MonitoringConfig): void;
6
+ export declare interface AlarmConfig {
7
+ name?: string
8
+ metric: string
9
+ threshold: number
10
+ evaluationPeriods?: number
11
+ comparisonOperator?: 'GreaterThanThreshold' | 'LessThanThreshold' | 'GreaterThanOrEqualToThreshold' | 'LessThanOrEqualToThreshold'
12
+ statistic?: 'Average' | 'Sum' | 'Minimum' | 'Maximum' | 'SampleCount'
13
+ period?: number
14
+ treatMissingData?: 'breaching' | 'notBreaching' | 'ignore' | 'missing'
15
+ service?: string
16
+ namespace?: string
17
+ dimensions?: Record<string, string>
18
+ }
19
+ export declare interface MonitoringConfig {
20
+ dashboard?: {
21
+ name: string
22
+ widgets?: Array<{
23
+ type: 'metric' | 'log' | 'text'
24
+ metrics?: string[] | Array<{ service?: string, metric: string }>
25
+ logGroup?: string
26
+ text?: string
27
+ width?: number
28
+ height?: number
29
+ }>
30
+ }
31
+ alarms?: AlarmConfig[]
32
+ logs?: {
33
+ retention?: number
34
+ groups?: string[]
35
+ }
36
+ }
@@ -0,0 +1,14 @@
1
+ import type { CloudFormationBuilder } from '../builder';
2
+ /**
3
+ * Add VPC and networking resources to CloudFormation template
4
+ */
5
+ export declare function addNetworkResources(builder: CloudFormationBuilder, config: NetworkConfig): void;
6
+ export declare interface NetworkConfig {
7
+ vpc?: {
8
+ cidr?: string
9
+ availabilityZones?: number
10
+ natGateways?: number
11
+ enableDnsHostnames?: boolean
12
+ enableDnsSupport?: boolean
13
+ }
14
+ }
@@ -0,0 +1,8 @@
1
+ import type { CloudFormationBuilder } from '../builder';
2
+ /**
3
+ * Add SQS queue resources to CloudFormation template
4
+ */
5
+ export declare function addQueueResources(builder: CloudFormationBuilder, config: QueueConfig): void;
6
+ export declare interface QueueConfig {
7
+
8
+ }
@@ -0,0 +1,31 @@
1
+ import type { CloudFormationBuilder } from '../builder';
2
+ /**
3
+ * Add security resources (ACM certificates, WAF, security groups) to CloudFormation template
4
+ */
5
+ export declare function addSecurityResources(builder: CloudFormationBuilder, config: SecurityConfig): void;
6
+ export declare interface SecurityConfig {
7
+ certificate?: {
8
+ domain: string
9
+ subdomains?: string[]
10
+ validationMethod?: 'DNS' | 'EMAIL'
11
+ }
12
+ waf?: {
13
+ enabled: boolean
14
+ rules?: string[]
15
+ rateLimit?: number
16
+ scope?: 'REGIONAL' | 'CLOUDFRONT'
17
+ }
18
+ securityGroups?: Record<string, {
19
+ ingress?: Array<{
20
+ port: number
21
+ protocol: string
22
+ cidr?: string
23
+ source?: string
24
+ }>
25
+ egress?: Array<{
26
+ port: number
27
+ protocol: string
28
+ cidr?: string
29
+ }>
30
+ }>
31
+ }
@@ -0,0 +1,8 @@
1
+ import type { CloudFormationBuilder } from '../builder';
2
+ /**
3
+ * Add S3 and EFS storage resources to CloudFormation template
4
+ */
5
+ export declare function addStorageResources(builder: CloudFormationBuilder, config: StorageConfig): void;
6
+ export declare interface StorageConfig {
7
+
8
+ }
@@ -0,0 +1,24 @@
1
+ export type {
2
+ CloudFormationTemplate,
3
+ CloudFormationResource,
4
+ CloudFormationParameter,
5
+ CloudFormationOutput,
6
+ CloudFormationCondition,
7
+ CloudFormationIntrinsicFunction,
8
+ } from './types';
9
+ export type { QueueConfig } from './builders/queue';
10
+ export {
11
+ CloudFormationBuilder,
12
+ buildCloudFormationTemplate,
13
+ } from './builder';
14
+ export {
15
+ Fn,
16
+ Arn,
17
+ AWS_PSEUDO_PARAMETERS,
18
+ } from './types';
19
+ export { addNetworkResources } from './builders/network';
20
+ export { addStorageResources } from './builders/storage';
21
+ export { addComputeResources } from './builders/compute';
22
+ export { addDatabaseResources } from './builders/database';
23
+ export { addFunctionResources } from './builders/functions';
24
+ export { addQueueResources } from './builders/queue';
@@ -0,0 +1,132 @@
1
+ /**
2
+ * Helper functions for creating CloudFormation intrinsic functions
3
+ */
4
+ export declare const Fn: {
5
+ ref: (logicalId: string) => unknown;
6
+ getAtt: (logicalId: string, attribute: string) => unknown;
7
+ join: (delimiter: string, values: any[]) => unknown;
8
+ sub: (template: string, variables?: Record<string, any>) => unknown;
9
+ select: (index: number, list: any[] | CloudFormationIntrinsicFunction) => unknown;
10
+ split: (delimiter: string, source: string) => unknown;
11
+ getAZs: (region: string?) => unknown;
12
+ importValue: (name: any) => unknown;
13
+ findInMap: (mapName: string, topLevelKey: any, secondLevelKey: any) => unknown;
14
+ base64: (value: any) => unknown;
15
+ cidr: (ipBlock: any, count: number, cidrBits: number) => unknown;
16
+ equals: (value1: any, value2: any) => unknown;
17
+ if: (conditionName: string, trueValue: any, falseValue: any) => unknown;
18
+ not: (condition: any) => unknown;
19
+ and: (...conditions: any[]) => unknown;
20
+ or: (...conditions: any[]) => unknown
21
+ };
22
+ /**
23
+ * Common AWS resource ARN patterns
24
+ */
25
+ export declare const Arn: {
26
+ s3Bucket: (bucketName: any) => unknown;
27
+ s3Object: (bucketName: any, key: string?) => unknown;
28
+ lambda: (functionName: string, region?: string, account?: string) => unknown;
29
+ dynamodb: (tableName: string) => unknown;
30
+ sqs: (queueName: string) => unknown;
31
+ sns: (topicName: string) => unknown;
32
+ kinesis: (streamName: string) => unknown;
33
+ iam: (resourceType: 'role' | 'policy' | 'user' | 'group', name: string) => unknown;
34
+ secretsManager: (secretName: string) => unknown;
35
+ cloudwatch: (logGroup: string) => unknown
36
+ };
37
+ /**
38
+ * Common CloudFormation pseudo parameters
39
+ */
40
+ export declare const AWS_PSEUDO_PARAMETERS: {
41
+ ACCOUNT_ID: {
42
+ Ref: 'AWS::AccountId'
43
+ };
44
+ NOTIFICATION_ARNS: {
45
+ Ref: 'AWS::NotificationARNs'
46
+ };
47
+ NO_VALUE: {
48
+ Ref: 'AWS::NoValue'
49
+ };
50
+ PARTITION: {
51
+ Ref: 'AWS::Partition'
52
+ };
53
+ REGION: {
54
+ Ref: 'AWS::Region'
55
+ };
56
+ STACK_ID: {
57
+ Ref: 'AWS::StackId'
58
+ };
59
+ STACK_NAME: {
60
+ Ref: 'AWS::StackName'
61
+ };
62
+ URL_SUFFIX: {
63
+ Ref: 'AWS::URLSuffix'
64
+ }
65
+ };
66
+ /**
67
+ * CloudFormation Template Types
68
+ * Based on AWS CloudFormation Resource Specification
69
+ */
70
+ export declare interface CloudFormationTemplate {
71
+ AWSTemplateFormatVersion: '2010-09-09'
72
+ Description?: string
73
+ Metadata?: Record<string, any>
74
+ Parameters?: Record<string, CloudFormationParameter>
75
+ Mappings?: Record<string, Record<string, Record<string, string>>>
76
+ Conditions?: Record<string, CloudFormationCondition>
77
+ Resources: Record<string, CloudFormationResource>
78
+ Outputs?: Record<string, CloudFormationOutput>
79
+ }
80
+ export declare interface CloudFormationParameter {
81
+ Type: 'String' | 'Number' | 'List<Number>' | 'CommaDelimitedList' | 'AWS::EC2::AvailabilityZone::Name' | 'AWS::EC2::Image::Id' | 'AWS::EC2::Instance::Id' | 'AWS::EC2::KeyPair::KeyName' | 'AWS::EC2::SecurityGroup::GroupName' | 'AWS::EC2::SecurityGroup::Id' | 'AWS::EC2::Subnet::Id' | 'AWS::EC2::Volume::Id' | 'AWS::EC2::VPC::Id' | 'AWS::Route53::HostedZone::Id' | 'List<AWS::EC2::AvailabilityZone::Name>' | 'List<AWS::EC2::Image::Id>' | 'List<AWS::EC2::Instance::Id>' | 'List<AWS::EC2::SecurityGroup::GroupName>' | 'List<AWS::EC2::SecurityGroup::Id>' | 'List<AWS::EC2::Subnet::Id>' | 'List<AWS::EC2::Volume::Id>' | 'List<AWS::EC2::VPC::Id>' | 'List<AWS::Route53::HostedZone::Id>'
82
+ Default?: string | number
83
+ Description?: string
84
+ AllowedValues?: string[]
85
+ AllowedPattern?: string
86
+ MinLength?: number
87
+ MaxLength?: number
88
+ MinValue?: number
89
+ MaxValue?: number
90
+ ConstraintDescription?: string
91
+ NoEcho?: boolean
92
+ }
93
+ export declare interface CloudFormationResource {
94
+ Type: string
95
+ Properties?: Record<string, any>
96
+ DependsOn?: string | string[]
97
+ Condition?: string
98
+ Metadata?: Record<string, any>
99
+ CreationPolicy?: Record<string, any>
100
+ UpdatePolicy?: Record<string, any>
101
+ DeletionPolicy?: 'Delete' | 'Retain' | 'Snapshot'
102
+ UpdateReplacePolicy?: 'Delete' | 'Retain' | 'Snapshot'
103
+ }
104
+ export declare interface CloudFormationOutput {
105
+ Value: any
106
+ Description?: string
107
+ Export?: {
108
+ Name: any
109
+ }
110
+ Condition?: string
111
+ }
112
+ export type CloudFormationCondition = | CloudFormationIntrinsicFunction
113
+ | boolean
114
+ /**
115
+ * CloudFormation Intrinsic Functions
116
+ */
117
+ export type CloudFormationIntrinsicFunction = | { Ref: string }
118
+ | { 'Fn::GetAtt': [string, string] }
119
+ | { 'Fn::Join': [string, any[]] }
120
+ | { 'Fn::Sub': string | [string, Record<string, any>] }
121
+ | { 'Fn::Select': [number, any[] | CloudFormationIntrinsicFunction] }
122
+ | { 'Fn::Split': [string, string] }
123
+ | { 'Fn::GetAZs': string }
124
+ | { 'Fn::ImportValue': any }
125
+ | { 'Fn::FindInMap': [string, any, any] }
126
+ | { 'Fn::Base64': any }
127
+ | { 'Fn::Cidr': [any, number, number] }
128
+ | { 'Fn::Equals': [any, any] }
129
+ | { 'Fn::If': [string, any, any] }
130
+ | { 'Fn::Not': [any] }
131
+ | { 'Fn::And': any[] }
132
+ | { 'Fn::Or': any[] }