@fjall/generator 0.88.4 → 0.89.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/LICENSE +21 -0
  2. package/dist/src/ast/astCdnParser.d.ts +15 -0
  3. package/dist/src/ast/astCdnParser.js +114 -0
  4. package/dist/src/ast/astCommonParser.d.ts +90 -0
  5. package/dist/src/ast/astCommonParser.js +351 -0
  6. package/dist/src/ast/astComputeParser.d.ts +14 -2
  7. package/dist/src/ast/astComputeParser.js +55 -9
  8. package/dist/src/ast/astDatabaseParser.d.ts +104 -0
  9. package/dist/src/ast/astDatabaseParser.js +275 -0
  10. package/dist/src/ast/astInfrastructureParser.d.ts +23 -277
  11. package/dist/src/ast/astInfrastructureParser.js +83 -1456
  12. package/dist/src/ast/astMessagingParser.d.ts +25 -0
  13. package/dist/src/ast/astMessagingParser.js +78 -0
  14. package/dist/src/ast/astNetworkParser.d.ts +70 -0
  15. package/dist/src/ast/astNetworkParser.js +219 -0
  16. package/dist/src/ast/astPatternParser.d.ts +80 -0
  17. package/dist/src/ast/astPatternParser.js +155 -0
  18. package/dist/src/ast/astStorageParser.d.ts +18 -0
  19. package/dist/src/ast/astStorageParser.js +164 -0
  20. package/dist/src/ast/index.d.ts +1 -0
  21. package/dist/src/ast/index.js +4 -0
  22. package/dist/src/dns/bindParser.d.ts +13 -0
  23. package/dist/src/dns/bindParser.js +224 -0
  24. package/dist/src/dns/bindWriter.d.ts +2 -0
  25. package/dist/src/dns/bindWriter.js +52 -0
  26. package/dist/src/dns/index.d.ts +4 -0
  27. package/dist/src/dns/index.js +4 -0
  28. package/dist/src/dns/infrastructureWriter.d.ts +2 -0
  29. package/dist/src/dns/infrastructureWriter.js +58 -0
  30. package/dist/src/dns/types.d.ts +82 -0
  31. package/dist/src/dns/types.js +52 -0
  32. package/dist/src/generation/common.d.ts +1 -16
  33. package/dist/src/generation/common.js +2 -28
  34. package/dist/src/generation/compute.js +77 -28
  35. package/dist/src/generation/index.d.ts +2 -1
  36. package/dist/src/generation/index.js +3 -1
  37. package/dist/src/generation/messagingConnections.d.ts +33 -0
  38. package/dist/src/generation/messagingConnections.js +73 -0
  39. package/dist/src/generation/storage.d.ts +5 -1
  40. package/dist/src/generation/storage.js +9 -1
  41. package/dist/src/generation/storageConnections.d.ts +3 -3
  42. package/dist/src/generation/storageConnections.js +8 -4
  43. package/dist/src/index.d.ts +1 -0
  44. package/dist/src/index.js +2 -0
  45. package/dist/src/planning/resourcePlanning.js +0 -2
  46. package/dist/src/presets/tierTypes.d.ts +4 -1
  47. package/dist/src/schemas/applicationSchemas.d.ts +854 -0
  48. package/dist/src/schemas/applicationSchemas.js +80 -0
  49. package/dist/src/schemas/baseSchemas.d.ts +206 -0
  50. package/dist/src/schemas/baseSchemas.js +248 -0
  51. package/dist/src/schemas/cdnSchemas.d.ts +61 -0
  52. package/dist/src/schemas/cdnSchemas.js +62 -0
  53. package/dist/src/schemas/computeSchemas.d.ts +723 -0
  54. package/dist/src/schemas/computeSchemas.js +727 -0
  55. package/dist/src/schemas/constants.d.ts +12 -8
  56. package/dist/src/schemas/constants.js +14 -4
  57. package/dist/src/schemas/databaseSchemas.d.ts +638 -0
  58. package/dist/src/schemas/databaseSchemas.js +366 -0
  59. package/dist/src/schemas/messagingSchemas.d.ts +20 -0
  60. package/dist/src/schemas/messagingSchemas.js +29 -0
  61. package/dist/src/schemas/networkSchemas.d.ts +246 -0
  62. package/dist/src/schemas/networkSchemas.js +125 -0
  63. package/dist/src/schemas/patternSchemas.d.ts +708 -0
  64. package/dist/src/schemas/patternSchemas.js +294 -0
  65. package/dist/src/schemas/resourceSchemas.d.ts +24 -3530
  66. package/dist/src/schemas/resourceSchemas.js +24 -2011
  67. package/dist/src/schemas/storageSchemas.d.ts +93 -0
  68. package/dist/src/schemas/storageSchemas.js +119 -0
  69. package/dist/src/util/errorUtils.d.ts +1 -2
  70. package/dist/src/util/errorUtils.js +1 -15
  71. package/dist/src/validation/patterns.d.ts +9 -0
  72. package/dist/src/validation/patterns.js +9 -0
  73. package/dist/src/version.d.ts +1 -1
  74. package/dist/src/version.js +1 -1
  75. package/package.json +5 -3
@@ -0,0 +1,723 @@
1
+ import { z } from "zod";
2
+ /** Reusable Lambda memory validation with multiple-of-64 constraint. */
3
+ export declare const LambdaMemorySchema: z.ZodNumber;
4
+ export declare const WarmPoolSchema: z.ZodObject<{
5
+ minSize: z.ZodOptional<z.ZodNumber>;
6
+ reuseOnScaleIn: z.ZodOptional<z.ZodBoolean>;
7
+ }, z.core.$strict>;
8
+ export declare const Ec2ConfigSchema: z.ZodObject<{
9
+ instanceType: z.ZodOptional<z.ZodString>;
10
+ amiHardwareType: z.ZodOptional<z.ZodEnum<{
11
+ ARM: "ARM";
12
+ STANDARD: "STANDARD";
13
+ }>>;
14
+ minCapacity: z.ZodOptional<z.ZodNumber>;
15
+ maxCapacity: z.ZodOptional<z.ZodNumber>;
16
+ memoryLimitMiB: z.ZodOptional<z.ZodNumber>;
17
+ warmPool: z.ZodOptional<z.ZodObject<{
18
+ minSize: z.ZodOptional<z.ZodNumber>;
19
+ reuseOnScaleIn: z.ZodOptional<z.ZodBoolean>;
20
+ }, z.core.$strict>>;
21
+ }, z.core.$strict>;
22
+ export declare const ComputeTypeSchema: z.ZodEnum<{
23
+ ecs: "ecs";
24
+ lambda: "lambda";
25
+ ec2: "ec2";
26
+ }>;
27
+ export declare const EcsCapacityProviderSchema: z.ZodEnum<{
28
+ FARGATE: "FARGATE";
29
+ FARGATE_SPOT: "FARGATE_SPOT";
30
+ EC2: "EC2";
31
+ }>;
32
+ export declare const InstanceTypeSchema: z.ZodString & z.ZodType<"t3.nano" | "t3.micro" | "t3.small" | "t3.medium" | "t3.large" | "t3.xlarge" | "t3.2xlarge" | "t3a.nano" | "t3a.micro" | "t3a.small" | "t3a.medium" | "t3a.large" | "t3a.xlarge" | "t3a.2xlarge" | "t4g.nano" | "t4g.micro" | "t4g.small" | "t4g.medium" | "t4g.large" | "t4g.xlarge" | "t4g.2xlarge" | "c5.large" | "c5.xlarge" | "c5.2xlarge" | "c5.4xlarge" | "c5.9xlarge" | "c5.12xlarge" | "c5.18xlarge" | "c5.24xlarge" | "c5a.large" | "c5a.xlarge" | "c5a.2xlarge" | "c5a.4xlarge" | "c5a.8xlarge" | "c5a.12xlarge" | "c5a.16xlarge" | "c5a.24xlarge" | "c6g.medium" | "c6g.large" | "c6g.xlarge" | "c6g.2xlarge" | "c6g.4xlarge" | "c6g.8xlarge" | "c6g.12xlarge" | "c6g.16xlarge" | "r5.large" | "r5.xlarge" | "r5.2xlarge" | "r5.4xlarge" | "r5.8xlarge" | "r5.12xlarge" | "r5.16xlarge" | "r5.24xlarge" | "r5a.large" | "r5a.xlarge" | "r5a.2xlarge" | "r5a.4xlarge" | "r5a.8xlarge" | "r5a.12xlarge" | "r5a.16xlarge" | "r5a.24xlarge" | "r6g.medium" | "r6g.large" | "r6g.xlarge" | "r6g.2xlarge" | "r6g.4xlarge" | "r6g.8xlarge" | "r6g.12xlarge" | "r6g.16xlarge" | "i3.large" | "i3.xlarge" | "i3.2xlarge" | "i3.4xlarge" | "i3.8xlarge" | "i3.16xlarge" | "p3.2xlarge" | "p3.8xlarge" | "p3.16xlarge" | "g4dn.xlarge" | "g4dn.2xlarge" | "g4dn.4xlarge" | "g4dn.8xlarge" | "g4dn.12xlarge" | "g4dn.16xlarge" | "m5.large" | "m5.xlarge" | "m5.2xlarge" | "m5.4xlarge" | "m5.8xlarge" | "m5.12xlarge" | "m5.16xlarge" | "m5.24xlarge" | "m5a.large" | "m5a.xlarge" | "m5a.2xlarge" | "m5a.4xlarge" | "m5a.8xlarge" | "m5a.12xlarge" | "m5a.16xlarge" | "m5a.24xlarge", string, z.core.$ZodTypeInternals<"t3.nano" | "t3.micro" | "t3.small" | "t3.medium" | "t3.large" | "t3.xlarge" | "t3.2xlarge" | "t3a.nano" | "t3a.micro" | "t3a.small" | "t3a.medium" | "t3a.large" | "t3a.xlarge" | "t3a.2xlarge" | "t4g.nano" | "t4g.micro" | "t4g.small" | "t4g.medium" | "t4g.large" | "t4g.xlarge" | "t4g.2xlarge" | "c5.large" | "c5.xlarge" | "c5.2xlarge" | "c5.4xlarge" | "c5.9xlarge" | "c5.12xlarge" | "c5.18xlarge" | "c5.24xlarge" | "c5a.large" | "c5a.xlarge" | "c5a.2xlarge" | "c5a.4xlarge" | "c5a.8xlarge" | "c5a.12xlarge" | "c5a.16xlarge" | "c5a.24xlarge" | "c6g.medium" | "c6g.large" | "c6g.xlarge" | "c6g.2xlarge" | "c6g.4xlarge" | "c6g.8xlarge" | "c6g.12xlarge" | "c6g.16xlarge" | "r5.large" | "r5.xlarge" | "r5.2xlarge" | "r5.4xlarge" | "r5.8xlarge" | "r5.12xlarge" | "r5.16xlarge" | "r5.24xlarge" | "r5a.large" | "r5a.xlarge" | "r5a.2xlarge" | "r5a.4xlarge" | "r5a.8xlarge" | "r5a.12xlarge" | "r5a.16xlarge" | "r5a.24xlarge" | "r6g.medium" | "r6g.large" | "r6g.xlarge" | "r6g.2xlarge" | "r6g.4xlarge" | "r6g.8xlarge" | "r6g.12xlarge" | "r6g.16xlarge" | "i3.large" | "i3.xlarge" | "i3.2xlarge" | "i3.4xlarge" | "i3.8xlarge" | "i3.16xlarge" | "p3.2xlarge" | "p3.8xlarge" | "p3.16xlarge" | "g4dn.xlarge" | "g4dn.2xlarge" | "g4dn.4xlarge" | "g4dn.8xlarge" | "g4dn.12xlarge" | "g4dn.16xlarge" | "m5.large" | "m5.xlarge" | "m5.2xlarge" | "m5.4xlarge" | "m5.8xlarge" | "m5.12xlarge" | "m5.16xlarge" | "m5.24xlarge" | "m5a.large" | "m5a.xlarge" | "m5a.2xlarge" | "m5a.4xlarge" | "m5a.8xlarge" | "m5a.12xlarge" | "m5a.16xlarge" | "m5a.24xlarge", string>>;
33
+ export declare const LambdaEventSourceSchema: z.ZodObject<{
34
+ sourceType: z.ZodEnum<{
35
+ sqs: "sqs";
36
+ dynamodb: "dynamodb";
37
+ eventbridge: "eventbridge";
38
+ }>;
39
+ sourceRef: z.ZodString;
40
+ batchSize: z.ZodOptional<z.ZodNumber>;
41
+ startingPosition: z.ZodOptional<z.ZodEnum<{
42
+ TRIM_HORIZON: "TRIM_HORIZON";
43
+ LATEST: "LATEST";
44
+ }>>;
45
+ maxBatchingWindow: z.ZodOptional<z.ZodNumber>;
46
+ reportBatchItemFailures: z.ZodOptional<z.ZodBoolean>;
47
+ }, z.core.$strict>;
48
+ export type LambdaEventSource = z.infer<typeof LambdaEventSourceSchema>;
49
+ /**
50
+ * Container configuration for ECS tasks.
51
+ * For single-container services, name is optional and auto-generated.
52
+ * For multi-container tasks, first container with a port gets load balancer registration.
53
+ */
54
+ export declare const ContainerConfigSchema: z.ZodObject<{
55
+ name: z.ZodOptional<z.ZodString>;
56
+ image: z.ZodOptional<z.ZodString>;
57
+ port: z.ZodOptional<z.ZodNumber>;
58
+ environment: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodUnion<readonly [z.ZodObject<{
59
+ __identifier: z.ZodString;
60
+ }, z.core.$strict>, z.ZodObject<{
61
+ __expression: z.ZodString;
62
+ }, z.core.$strict>, z.ZodObject<{
63
+ __call: z.ZodString;
64
+ }, z.core.$strict>]>]>>>;
65
+ secretsImport: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
66
+ id: z.ZodString;
67
+ name: z.ZodString;
68
+ field: z.ZodOptional<z.ZodString>;
69
+ }, z.core.$strict>>>;
70
+ command: z.ZodOptional<z.ZodArray<z.ZodString>>;
71
+ entryPoint: z.ZodOptional<z.ZodArray<z.ZodString>>;
72
+ essential: z.ZodOptional<z.ZodBoolean>;
73
+ healthCheck: z.ZodOptional<z.ZodObject<{
74
+ command: z.ZodArray<z.ZodString>;
75
+ interval: z.ZodOptional<z.ZodNumber>;
76
+ timeout: z.ZodOptional<z.ZodNumber>;
77
+ retries: z.ZodOptional<z.ZodNumber>;
78
+ startPeriod: z.ZodOptional<z.ZodNumber>;
79
+ }, z.core.$strict>>;
80
+ ssmSecrets: z.ZodOptional<z.ZodArray<z.ZodString>>;
81
+ extraProperties: z.ZodOptional<z.ZodArray<z.ZodObject<{
82
+ key: z.ZodString;
83
+ sourceText: z.ZodString;
84
+ }, z.core.$strict>>>;
85
+ }, z.core.$strict>;
86
+ /**
87
+ * Service name schema.
88
+ * Must be a valid identifier for ECS services.
89
+ */
90
+ export declare const EcsServiceNameSchema: z.ZodString;
91
+ /**
92
+ * Cluster-level configuration.
93
+ * Controls the shared ALB for all services.
94
+ */
95
+ export declare const EcsClusterConfigSchema: z.ZodObject<{
96
+ domain: z.ZodOptional<z.ZodString>;
97
+ loadBalancer: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodLiteral<"public">, z.ZodLiteral<"internal">]>>;
98
+ directAccess: z.ZodOptional<z.ZodBoolean>;
99
+ }, z.core.$strict>;
100
+ /**
101
+ * Routing configuration for path/host-based routing on the ALB.
102
+ * Required when cluster has multiple services with ports.
103
+ */
104
+ export declare const EcsRoutingConfigSchema: z.ZodObject<{
105
+ path: z.ZodOptional<z.ZodString>;
106
+ host: z.ZodOptional<z.ZodString>;
107
+ priority: z.ZodOptional<z.ZodNumber>;
108
+ healthCheckPath: z.ZodOptional<z.ZodString>;
109
+ }, z.core.$strict>;
110
+ /**
111
+ * Scaling configuration for ECS services.
112
+ */
113
+ export declare const EcsScalingConfigSchema: z.ZodObject<{
114
+ desiredCount: z.ZodOptional<z.ZodNumber>;
115
+ minCapacity: z.ZodOptional<z.ZodNumber>;
116
+ maxCapacity: z.ZodOptional<z.ZodNumber>;
117
+ scalingType: z.ZodOptional<z.ZodEnum<{
118
+ CPU: "CPU";
119
+ MEMORY: "MEMORY";
120
+ }>>;
121
+ }, z.core.$strict>;
122
+ /**
123
+ * Configuration for a service in an ECS cluster.
124
+ * Each service gets its own task definition, scaling, and target group.
125
+ */
126
+ export declare const EcsServiceConfigSchema: z.ZodObject<{
127
+ name: z.ZodString;
128
+ dockerfilePath: z.ZodOptional<z.ZodString>;
129
+ dockerTarget: z.ZodOptional<z.ZodString>;
130
+ needsDatabaseConnection: z.ZodOptional<z.ZodBoolean>;
131
+ needsStorageConnection: z.ZodOptional<z.ZodBoolean>;
132
+ needsMessagingConnection: z.ZodOptional<z.ZodBoolean>;
133
+ image: z.ZodOptional<z.ZodString>;
134
+ containers: z.ZodOptional<z.ZodArray<z.ZodObject<{
135
+ name: z.ZodOptional<z.ZodString>;
136
+ image: z.ZodOptional<z.ZodString>;
137
+ port: z.ZodOptional<z.ZodNumber>;
138
+ environment: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodUnion<readonly [z.ZodObject<{
139
+ __identifier: z.ZodString;
140
+ }, z.core.$strict>, z.ZodObject<{
141
+ __expression: z.ZodString;
142
+ }, z.core.$strict>, z.ZodObject<{
143
+ __call: z.ZodString;
144
+ }, z.core.$strict>]>]>>>;
145
+ secretsImport: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
146
+ id: z.ZodString;
147
+ name: z.ZodString;
148
+ field: z.ZodOptional<z.ZodString>;
149
+ }, z.core.$strict>>>;
150
+ command: z.ZodOptional<z.ZodArray<z.ZodString>>;
151
+ entryPoint: z.ZodOptional<z.ZodArray<z.ZodString>>;
152
+ essential: z.ZodOptional<z.ZodBoolean>;
153
+ healthCheck: z.ZodOptional<z.ZodObject<{
154
+ command: z.ZodArray<z.ZodString>;
155
+ interval: z.ZodOptional<z.ZodNumber>;
156
+ timeout: z.ZodOptional<z.ZodNumber>;
157
+ retries: z.ZodOptional<z.ZodNumber>;
158
+ startPeriod: z.ZodOptional<z.ZodNumber>;
159
+ }, z.core.$strict>>;
160
+ ssmSecrets: z.ZodOptional<z.ZodArray<z.ZodString>>;
161
+ extraProperties: z.ZodOptional<z.ZodArray<z.ZodObject<{
162
+ key: z.ZodString;
163
+ sourceText: z.ZodString;
164
+ }, z.core.$strict>>>;
165
+ }, z.core.$strict>>>;
166
+ routing: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
167
+ path: z.ZodOptional<z.ZodString>;
168
+ host: z.ZodOptional<z.ZodString>;
169
+ priority: z.ZodOptional<z.ZodNumber>;
170
+ healthCheckPath: z.ZodOptional<z.ZodString>;
171
+ }, z.core.$strict>, z.ZodArray<z.ZodObject<{
172
+ path: z.ZodOptional<z.ZodString>;
173
+ host: z.ZodOptional<z.ZodString>;
174
+ priority: z.ZodOptional<z.ZodNumber>;
175
+ healthCheckPath: z.ZodOptional<z.ZodString>;
176
+ }, z.core.$strict>>]>>;
177
+ cpu: z.ZodOptional<z.ZodNumber>;
178
+ memoryLimitMiB: z.ZodOptional<z.ZodNumber>;
179
+ desiredCount: z.ZodOptional<z.ZodNumber>;
180
+ scaling: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodObject<{
181
+ desiredCount: z.ZodOptional<z.ZodNumber>;
182
+ minCapacity: z.ZodOptional<z.ZodNumber>;
183
+ maxCapacity: z.ZodOptional<z.ZodNumber>;
184
+ scalingType: z.ZodOptional<z.ZodEnum<{
185
+ CPU: "CPU";
186
+ MEMORY: "MEMORY";
187
+ }>>;
188
+ }, z.core.$strict>]>>;
189
+ capacityProvider: z.ZodEnum<{
190
+ FARGATE: "FARGATE";
191
+ FARGATE_SPOT: "FARGATE_SPOT";
192
+ EC2: "EC2";
193
+ }>;
194
+ ec2Config: z.ZodOptional<z.ZodObject<{
195
+ instanceType: z.ZodOptional<z.ZodString>;
196
+ amiHardwareType: z.ZodOptional<z.ZodEnum<{
197
+ ARM: "ARM";
198
+ STANDARD: "STANDARD";
199
+ }>>;
200
+ minCapacity: z.ZodOptional<z.ZodNumber>;
201
+ maxCapacity: z.ZodOptional<z.ZodNumber>;
202
+ memoryLimitMiB: z.ZodOptional<z.ZodNumber>;
203
+ warmPool: z.ZodOptional<z.ZodObject<{
204
+ minSize: z.ZodOptional<z.ZodNumber>;
205
+ reuseOnScaleIn: z.ZodOptional<z.ZodBoolean>;
206
+ }, z.core.$strict>>;
207
+ }, z.core.$strict>>;
208
+ ssmSecretsPath: z.ZodOptional<z.ZodString>;
209
+ extraProperties: z.ZodOptional<z.ZodArray<z.ZodObject<{
210
+ key: z.ZodString;
211
+ sourceText: z.ZodString;
212
+ }, z.core.$strict>>>;
213
+ }, z.core.$strict>;
214
+ /**
215
+ * Compute resource plan schema.
216
+ * Used by the code generator to produce infrastructure code.
217
+ */
218
+ export declare const ComputeResourcePlanSchema: z.ZodObject<{
219
+ name: z.ZodString;
220
+ type: z.ZodEnum<{
221
+ ecs: "ecs";
222
+ lambda: "lambda";
223
+ ec2: "ec2";
224
+ }>;
225
+ needsConnection: z.ZodBoolean;
226
+ connectedDatabase: z.ZodOptional<z.ZodArray<z.ZodString>>;
227
+ connectedStorage: z.ZodOptional<z.ZodArray<z.ZodString>>;
228
+ connectedMessaging: z.ZodOptional<z.ZodArray<z.ZodString>>;
229
+ cluster: z.ZodOptional<z.ZodObject<{
230
+ domain: z.ZodOptional<z.ZodString>;
231
+ loadBalancer: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodLiteral<"public">, z.ZodLiteral<"internal">]>>;
232
+ directAccess: z.ZodOptional<z.ZodBoolean>;
233
+ }, z.core.$strict>>;
234
+ services: z.ZodOptional<z.ZodArray<z.ZodObject<{
235
+ name: z.ZodString;
236
+ dockerfilePath: z.ZodOptional<z.ZodString>;
237
+ dockerTarget: z.ZodOptional<z.ZodString>;
238
+ needsDatabaseConnection: z.ZodOptional<z.ZodBoolean>;
239
+ needsStorageConnection: z.ZodOptional<z.ZodBoolean>;
240
+ needsMessagingConnection: z.ZodOptional<z.ZodBoolean>;
241
+ image: z.ZodOptional<z.ZodString>;
242
+ containers: z.ZodOptional<z.ZodArray<z.ZodObject<{
243
+ name: z.ZodOptional<z.ZodString>;
244
+ image: z.ZodOptional<z.ZodString>;
245
+ port: z.ZodOptional<z.ZodNumber>;
246
+ environment: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodUnion<readonly [z.ZodObject<{
247
+ __identifier: z.ZodString;
248
+ }, z.core.$strict>, z.ZodObject<{
249
+ __expression: z.ZodString;
250
+ }, z.core.$strict>, z.ZodObject<{
251
+ __call: z.ZodString;
252
+ }, z.core.$strict>]>]>>>;
253
+ secretsImport: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
254
+ id: z.ZodString;
255
+ name: z.ZodString;
256
+ field: z.ZodOptional<z.ZodString>;
257
+ }, z.core.$strict>>>;
258
+ command: z.ZodOptional<z.ZodArray<z.ZodString>>;
259
+ entryPoint: z.ZodOptional<z.ZodArray<z.ZodString>>;
260
+ essential: z.ZodOptional<z.ZodBoolean>;
261
+ healthCheck: z.ZodOptional<z.ZodObject<{
262
+ command: z.ZodArray<z.ZodString>;
263
+ interval: z.ZodOptional<z.ZodNumber>;
264
+ timeout: z.ZodOptional<z.ZodNumber>;
265
+ retries: z.ZodOptional<z.ZodNumber>;
266
+ startPeriod: z.ZodOptional<z.ZodNumber>;
267
+ }, z.core.$strict>>;
268
+ ssmSecrets: z.ZodOptional<z.ZodArray<z.ZodString>>;
269
+ extraProperties: z.ZodOptional<z.ZodArray<z.ZodObject<{
270
+ key: z.ZodString;
271
+ sourceText: z.ZodString;
272
+ }, z.core.$strict>>>;
273
+ }, z.core.$strict>>>;
274
+ routing: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
275
+ path: z.ZodOptional<z.ZodString>;
276
+ host: z.ZodOptional<z.ZodString>;
277
+ priority: z.ZodOptional<z.ZodNumber>;
278
+ healthCheckPath: z.ZodOptional<z.ZodString>;
279
+ }, z.core.$strict>, z.ZodArray<z.ZodObject<{
280
+ path: z.ZodOptional<z.ZodString>;
281
+ host: z.ZodOptional<z.ZodString>;
282
+ priority: z.ZodOptional<z.ZodNumber>;
283
+ healthCheckPath: z.ZodOptional<z.ZodString>;
284
+ }, z.core.$strict>>]>>;
285
+ cpu: z.ZodOptional<z.ZodNumber>;
286
+ memoryLimitMiB: z.ZodOptional<z.ZodNumber>;
287
+ desiredCount: z.ZodOptional<z.ZodNumber>;
288
+ scaling: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodObject<{
289
+ desiredCount: z.ZodOptional<z.ZodNumber>;
290
+ minCapacity: z.ZodOptional<z.ZodNumber>;
291
+ maxCapacity: z.ZodOptional<z.ZodNumber>;
292
+ scalingType: z.ZodOptional<z.ZodEnum<{
293
+ CPU: "CPU";
294
+ MEMORY: "MEMORY";
295
+ }>>;
296
+ }, z.core.$strict>]>>;
297
+ capacityProvider: z.ZodEnum<{
298
+ FARGATE: "FARGATE";
299
+ FARGATE_SPOT: "FARGATE_SPOT";
300
+ EC2: "EC2";
301
+ }>;
302
+ ec2Config: z.ZodOptional<z.ZodObject<{
303
+ instanceType: z.ZodOptional<z.ZodString>;
304
+ amiHardwareType: z.ZodOptional<z.ZodEnum<{
305
+ ARM: "ARM";
306
+ STANDARD: "STANDARD";
307
+ }>>;
308
+ minCapacity: z.ZodOptional<z.ZodNumber>;
309
+ maxCapacity: z.ZodOptional<z.ZodNumber>;
310
+ memoryLimitMiB: z.ZodOptional<z.ZodNumber>;
311
+ warmPool: z.ZodOptional<z.ZodObject<{
312
+ minSize: z.ZodOptional<z.ZodNumber>;
313
+ reuseOnScaleIn: z.ZodOptional<z.ZodBoolean>;
314
+ }, z.core.$strict>>;
315
+ }, z.core.$strict>>;
316
+ ssmSecretsPath: z.ZodOptional<z.ZodString>;
317
+ extraProperties: z.ZodOptional<z.ZodArray<z.ZodObject<{
318
+ key: z.ZodString;
319
+ sourceText: z.ZodString;
320
+ }, z.core.$strict>>>;
321
+ }, z.core.$strict>>>;
322
+ dockerfilePath: z.ZodOptional<z.ZodString>;
323
+ deployment: z.ZodOptional<z.ZodEnum<{
324
+ code: "code";
325
+ container: "container";
326
+ }>>;
327
+ codePath: z.ZodOptional<z.ZodString>;
328
+ timeout: z.ZodOptional<z.ZodNumber>;
329
+ memory: z.ZodOptional<z.ZodNumber>;
330
+ handler: z.ZodOptional<z.ZodString>;
331
+ runtime: z.ZodOptional<z.ZodString>;
332
+ environment: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodUnion<readonly [z.ZodObject<{
333
+ __identifier: z.ZodString;
334
+ }, z.core.$strict>, z.ZodObject<{
335
+ __expression: z.ZodString;
336
+ }, z.core.$strict>, z.ZodObject<{
337
+ __call: z.ZodString;
338
+ }, z.core.$strict>]>]>>>;
339
+ secrets: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodUnion<readonly [z.ZodObject<{
340
+ __identifier: z.ZodString;
341
+ }, z.core.$strict>, z.ZodObject<{
342
+ __expression: z.ZodString;
343
+ }, z.core.$strict>, z.ZodObject<{
344
+ __call: z.ZodString;
345
+ }, z.core.$strict>]>]>>>;
346
+ eventSources: z.ZodOptional<z.ZodArray<z.ZodObject<{
347
+ sourceType: z.ZodEnum<{
348
+ sqs: "sqs";
349
+ dynamodb: "dynamodb";
350
+ eventbridge: "eventbridge";
351
+ }>;
352
+ sourceRef: z.ZodString;
353
+ batchSize: z.ZodOptional<z.ZodNumber>;
354
+ startingPosition: z.ZodOptional<z.ZodEnum<{
355
+ TRIM_HORIZON: "TRIM_HORIZON";
356
+ LATEST: "LATEST";
357
+ }>>;
358
+ maxBatchingWindow: z.ZodOptional<z.ZodNumber>;
359
+ reportBatchItemFailures: z.ZodOptional<z.ZodBoolean>;
360
+ }, z.core.$strict>>>;
361
+ functionUrl: z.ZodOptional<z.ZodObject<{
362
+ authType: z.ZodEnum<{
363
+ NONE: "NONE";
364
+ AWS_IAM: "AWS_IAM";
365
+ }>;
366
+ }, z.core.$strict>>;
367
+ description: z.ZodOptional<z.ZodString>;
368
+ scheduleExpression: z.ZodOptional<z.ZodString>;
369
+ architecture: z.ZodOptional<z.ZodEnum<{
370
+ ARM_64: "ARM_64";
371
+ X86_64: "X86_64";
372
+ }>>;
373
+ ephemeralStorageSize: z.ZodOptional<z.ZodNumber>;
374
+ functionName: z.ZodOptional<z.ZodString>;
375
+ ssmSecrets: z.ZodOptional<z.ZodArray<z.ZodString>>;
376
+ ssmSecretsPath: z.ZodOptional<z.ZodString>;
377
+ instanceType: z.ZodOptional<z.ZodString & z.ZodType<"t3.nano" | "t3.micro" | "t3.small" | "t3.medium" | "t3.large" | "t3.xlarge" | "t3.2xlarge" | "t3a.nano" | "t3a.micro" | "t3a.small" | "t3a.medium" | "t3a.large" | "t3a.xlarge" | "t3a.2xlarge" | "t4g.nano" | "t4g.micro" | "t4g.small" | "t4g.medium" | "t4g.large" | "t4g.xlarge" | "t4g.2xlarge" | "c5.large" | "c5.xlarge" | "c5.2xlarge" | "c5.4xlarge" | "c5.9xlarge" | "c5.12xlarge" | "c5.18xlarge" | "c5.24xlarge" | "c5a.large" | "c5a.xlarge" | "c5a.2xlarge" | "c5a.4xlarge" | "c5a.8xlarge" | "c5a.12xlarge" | "c5a.16xlarge" | "c5a.24xlarge" | "c6g.medium" | "c6g.large" | "c6g.xlarge" | "c6g.2xlarge" | "c6g.4xlarge" | "c6g.8xlarge" | "c6g.12xlarge" | "c6g.16xlarge" | "r5.large" | "r5.xlarge" | "r5.2xlarge" | "r5.4xlarge" | "r5.8xlarge" | "r5.12xlarge" | "r5.16xlarge" | "r5.24xlarge" | "r5a.large" | "r5a.xlarge" | "r5a.2xlarge" | "r5a.4xlarge" | "r5a.8xlarge" | "r5a.12xlarge" | "r5a.16xlarge" | "r5a.24xlarge" | "r6g.medium" | "r6g.large" | "r6g.xlarge" | "r6g.2xlarge" | "r6g.4xlarge" | "r6g.8xlarge" | "r6g.12xlarge" | "r6g.16xlarge" | "i3.large" | "i3.xlarge" | "i3.2xlarge" | "i3.4xlarge" | "i3.8xlarge" | "i3.16xlarge" | "p3.2xlarge" | "p3.8xlarge" | "p3.16xlarge" | "g4dn.xlarge" | "g4dn.2xlarge" | "g4dn.4xlarge" | "g4dn.8xlarge" | "g4dn.12xlarge" | "g4dn.16xlarge" | "m5.large" | "m5.xlarge" | "m5.2xlarge" | "m5.4xlarge" | "m5.8xlarge" | "m5.12xlarge" | "m5.16xlarge" | "m5.24xlarge" | "m5a.large" | "m5a.xlarge" | "m5a.2xlarge" | "m5a.4xlarge" | "m5a.8xlarge" | "m5a.12xlarge" | "m5a.16xlarge" | "m5a.24xlarge", string, z.core.$ZodTypeInternals<"t3.nano" | "t3.micro" | "t3.small" | "t3.medium" | "t3.large" | "t3.xlarge" | "t3.2xlarge" | "t3a.nano" | "t3a.micro" | "t3a.small" | "t3a.medium" | "t3a.large" | "t3a.xlarge" | "t3a.2xlarge" | "t4g.nano" | "t4g.micro" | "t4g.small" | "t4g.medium" | "t4g.large" | "t4g.xlarge" | "t4g.2xlarge" | "c5.large" | "c5.xlarge" | "c5.2xlarge" | "c5.4xlarge" | "c5.9xlarge" | "c5.12xlarge" | "c5.18xlarge" | "c5.24xlarge" | "c5a.large" | "c5a.xlarge" | "c5a.2xlarge" | "c5a.4xlarge" | "c5a.8xlarge" | "c5a.12xlarge" | "c5a.16xlarge" | "c5a.24xlarge" | "c6g.medium" | "c6g.large" | "c6g.xlarge" | "c6g.2xlarge" | "c6g.4xlarge" | "c6g.8xlarge" | "c6g.12xlarge" | "c6g.16xlarge" | "r5.large" | "r5.xlarge" | "r5.2xlarge" | "r5.4xlarge" | "r5.8xlarge" | "r5.12xlarge" | "r5.16xlarge" | "r5.24xlarge" | "r5a.large" | "r5a.xlarge" | "r5a.2xlarge" | "r5a.4xlarge" | "r5a.8xlarge" | "r5a.12xlarge" | "r5a.16xlarge" | "r5a.24xlarge" | "r6g.medium" | "r6g.large" | "r6g.xlarge" | "r6g.2xlarge" | "r6g.4xlarge" | "r6g.8xlarge" | "r6g.12xlarge" | "r6g.16xlarge" | "i3.large" | "i3.xlarge" | "i3.2xlarge" | "i3.4xlarge" | "i3.8xlarge" | "i3.16xlarge" | "p3.2xlarge" | "p3.8xlarge" | "p3.16xlarge" | "g4dn.xlarge" | "g4dn.2xlarge" | "g4dn.4xlarge" | "g4dn.8xlarge" | "g4dn.12xlarge" | "g4dn.16xlarge" | "m5.large" | "m5.xlarge" | "m5.2xlarge" | "m5.4xlarge" | "m5.8xlarge" | "m5.12xlarge" | "m5.16xlarge" | "m5.24xlarge" | "m5a.large" | "m5a.xlarge" | "m5a.2xlarge" | "m5a.4xlarge" | "m5a.8xlarge" | "m5a.12xlarge" | "m5a.16xlarge" | "m5a.24xlarge", string>>>;
378
+ enableSSH: z.ZodOptional<z.ZodBoolean>;
379
+ keyName: z.ZodOptional<z.ZodString>;
380
+ userData: z.ZodOptional<z.ZodString>;
381
+ securityGroups: z.ZodOptional<z.ZodArray<z.ZodString>>;
382
+ variableName: z.ZodOptional<z.ZodString>;
383
+ extraProperties: z.ZodOptional<z.ZodArray<z.ZodObject<{
384
+ key: z.ZodString;
385
+ sourceText: z.ZodString;
386
+ }, z.core.$strict>>>;
387
+ }, z.core.$strict>;
388
+ export declare const ECSGeneratorSchema: z.ZodObject<{
389
+ appName: z.ZodString;
390
+ clusterName: z.ZodString;
391
+ containerPort: z.ZodNumber;
392
+ nameProvidedByFlag: z.ZodOptional<z.ZodBoolean>;
393
+ ecrRepository: z.ZodOptional<z.ZodString>;
394
+ capacityProvider: z.ZodOptional<z.ZodEnum<{
395
+ FARGATE: "FARGATE";
396
+ FARGATE_SPOT: "FARGATE_SPOT";
397
+ EC2: "EC2";
398
+ }>>;
399
+ useAppEcr: z.ZodOptional<z.ZodBoolean>;
400
+ desiredCount: z.ZodOptional<z.ZodNumber>;
401
+ cpu: z.ZodOptional<z.ZodNumber>;
402
+ memoryLimitMiB: z.ZodOptional<z.ZodNumber>;
403
+ minCapacity: z.ZodOptional<z.ZodNumber>;
404
+ maxCapacity: z.ZodOptional<z.ZodNumber>;
405
+ ec2Config: z.ZodOptional<z.ZodObject<{
406
+ instanceType: z.ZodOptional<z.ZodString>;
407
+ amiHardwareType: z.ZodOptional<z.ZodEnum<{
408
+ ARM: "ARM";
409
+ STANDARD: "STANDARD";
410
+ }>>;
411
+ minCapacity: z.ZodOptional<z.ZodNumber>;
412
+ maxCapacity: z.ZodOptional<z.ZodNumber>;
413
+ memoryLimitMiB: z.ZodOptional<z.ZodNumber>;
414
+ warmPool: z.ZodOptional<z.ZodObject<{
415
+ minSize: z.ZodOptional<z.ZodNumber>;
416
+ reuseOnScaleIn: z.ZodOptional<z.ZodBoolean>;
417
+ }, z.core.$strict>>;
418
+ }, z.core.$strict>>;
419
+ connectionConfig: z.ZodOptional<z.ZodObject<{
420
+ connectToDatabase: z.ZodOptional<z.ZodArray<z.ZodString>>;
421
+ }, z.core.$strict>>;
422
+ }, z.core.$strict>;
423
+ export declare const LambdaGeneratorSchema: z.ZodObject<{
424
+ appName: z.ZodString;
425
+ functionName: z.ZodString;
426
+ nameProvidedByFlag: z.ZodOptional<z.ZodBoolean>;
427
+ lambdaType: z.ZodOptional<z.ZodEnum<{
428
+ custom: "custom";
429
+ basic: "basic";
430
+ web: "web";
431
+ }>>;
432
+ ecrRepository: z.ZodOptional<z.ZodString>;
433
+ timeout: z.ZodOptional<z.ZodNumber>;
434
+ memory: z.ZodOptional<z.ZodNumber>;
435
+ enableFunctionUrl: z.ZodOptional<z.ZodBoolean>;
436
+ description: z.ZodOptional<z.ZodString>;
437
+ enableCors: z.ZodOptional<z.ZodBoolean>;
438
+ corsOrigins: z.ZodOptional<z.ZodString>;
439
+ corsHeaders: z.ZodOptional<z.ZodString>;
440
+ corsMethods: z.ZodOptional<z.ZodArray<z.ZodEnum<{
441
+ GET: "GET";
442
+ POST: "POST";
443
+ PUT: "PUT";
444
+ DELETE: "DELETE";
445
+ HEAD: "HEAD";
446
+ OPTIONS: "OPTIONS";
447
+ PATCH: "PATCH";
448
+ }>>>;
449
+ corsCredentials: z.ZodOptional<z.ZodBoolean>;
450
+ connectionConfig: z.ZodOptional<z.ZodObject<{
451
+ connectToDatabase: z.ZodOptional<z.ZodArray<z.ZodString>>;
452
+ }, z.core.$strict>>;
453
+ }, z.core.$strict>;
454
+ export declare const EC2GeneratorSchema: z.ZodObject<{
455
+ appName: z.ZodString;
456
+ instanceName: z.ZodString;
457
+ nameProvidedByFlag: z.ZodOptional<z.ZodBoolean>;
458
+ instanceType: z.ZodOptional<z.ZodString & z.ZodType<"t3.nano" | "t3.micro" | "t3.small" | "t3.medium" | "t3.large" | "t3.xlarge" | "t3.2xlarge" | "t3a.nano" | "t3a.micro" | "t3a.small" | "t3a.medium" | "t3a.large" | "t3a.xlarge" | "t3a.2xlarge" | "t4g.nano" | "t4g.micro" | "t4g.small" | "t4g.medium" | "t4g.large" | "t4g.xlarge" | "t4g.2xlarge" | "c5.large" | "c5.xlarge" | "c5.2xlarge" | "c5.4xlarge" | "c5.9xlarge" | "c5.12xlarge" | "c5.18xlarge" | "c5.24xlarge" | "c5a.large" | "c5a.xlarge" | "c5a.2xlarge" | "c5a.4xlarge" | "c5a.8xlarge" | "c5a.12xlarge" | "c5a.16xlarge" | "c5a.24xlarge" | "c6g.medium" | "c6g.large" | "c6g.xlarge" | "c6g.2xlarge" | "c6g.4xlarge" | "c6g.8xlarge" | "c6g.12xlarge" | "c6g.16xlarge" | "r5.large" | "r5.xlarge" | "r5.2xlarge" | "r5.4xlarge" | "r5.8xlarge" | "r5.12xlarge" | "r5.16xlarge" | "r5.24xlarge" | "r5a.large" | "r5a.xlarge" | "r5a.2xlarge" | "r5a.4xlarge" | "r5a.8xlarge" | "r5a.12xlarge" | "r5a.16xlarge" | "r5a.24xlarge" | "r6g.medium" | "r6g.large" | "r6g.xlarge" | "r6g.2xlarge" | "r6g.4xlarge" | "r6g.8xlarge" | "r6g.12xlarge" | "r6g.16xlarge" | "i3.large" | "i3.xlarge" | "i3.2xlarge" | "i3.4xlarge" | "i3.8xlarge" | "i3.16xlarge" | "p3.2xlarge" | "p3.8xlarge" | "p3.16xlarge" | "g4dn.xlarge" | "g4dn.2xlarge" | "g4dn.4xlarge" | "g4dn.8xlarge" | "g4dn.12xlarge" | "g4dn.16xlarge" | "m5.large" | "m5.xlarge" | "m5.2xlarge" | "m5.4xlarge" | "m5.8xlarge" | "m5.12xlarge" | "m5.16xlarge" | "m5.24xlarge" | "m5a.large" | "m5a.xlarge" | "m5a.2xlarge" | "m5a.4xlarge" | "m5a.8xlarge" | "m5a.12xlarge" | "m5a.16xlarge" | "m5a.24xlarge", string, z.core.$ZodTypeInternals<"t3.nano" | "t3.micro" | "t3.small" | "t3.medium" | "t3.large" | "t3.xlarge" | "t3.2xlarge" | "t3a.nano" | "t3a.micro" | "t3a.small" | "t3a.medium" | "t3a.large" | "t3a.xlarge" | "t3a.2xlarge" | "t4g.nano" | "t4g.micro" | "t4g.small" | "t4g.medium" | "t4g.large" | "t4g.xlarge" | "t4g.2xlarge" | "c5.large" | "c5.xlarge" | "c5.2xlarge" | "c5.4xlarge" | "c5.9xlarge" | "c5.12xlarge" | "c5.18xlarge" | "c5.24xlarge" | "c5a.large" | "c5a.xlarge" | "c5a.2xlarge" | "c5a.4xlarge" | "c5a.8xlarge" | "c5a.12xlarge" | "c5a.16xlarge" | "c5a.24xlarge" | "c6g.medium" | "c6g.large" | "c6g.xlarge" | "c6g.2xlarge" | "c6g.4xlarge" | "c6g.8xlarge" | "c6g.12xlarge" | "c6g.16xlarge" | "r5.large" | "r5.xlarge" | "r5.2xlarge" | "r5.4xlarge" | "r5.8xlarge" | "r5.12xlarge" | "r5.16xlarge" | "r5.24xlarge" | "r5a.large" | "r5a.xlarge" | "r5a.2xlarge" | "r5a.4xlarge" | "r5a.8xlarge" | "r5a.12xlarge" | "r5a.16xlarge" | "r5a.24xlarge" | "r6g.medium" | "r6g.large" | "r6g.xlarge" | "r6g.2xlarge" | "r6g.4xlarge" | "r6g.8xlarge" | "r6g.12xlarge" | "r6g.16xlarge" | "i3.large" | "i3.xlarge" | "i3.2xlarge" | "i3.4xlarge" | "i3.8xlarge" | "i3.16xlarge" | "p3.2xlarge" | "p3.8xlarge" | "p3.16xlarge" | "g4dn.xlarge" | "g4dn.2xlarge" | "g4dn.4xlarge" | "g4dn.8xlarge" | "g4dn.12xlarge" | "g4dn.16xlarge" | "m5.large" | "m5.xlarge" | "m5.2xlarge" | "m5.4xlarge" | "m5.8xlarge" | "m5.12xlarge" | "m5.16xlarge" | "m5.24xlarge" | "m5a.large" | "m5a.xlarge" | "m5a.2xlarge" | "m5a.4xlarge" | "m5a.8xlarge" | "m5a.12xlarge" | "m5a.16xlarge" | "m5a.24xlarge", string>>>;
459
+ enableSSH: z.ZodOptional<z.ZodBoolean>;
460
+ minCapacity: z.ZodOptional<z.ZodNumber>;
461
+ maxCapacity: z.ZodOptional<z.ZodNumber>;
462
+ connectionConfig: z.ZodOptional<z.ZodObject<{
463
+ connectToDatabase: z.ZodOptional<z.ZodArray<z.ZodString>>;
464
+ }, z.core.$strict>>;
465
+ }, z.core.$strict>;
466
+ /**
467
+ * Schema for adding a service to an existing ECS cluster.
468
+ * Used by the `fjall add service` command.
469
+ */
470
+ export declare const AddServiceGeneratorSchema: z.ZodObject<{
471
+ appName: z.ZodString;
472
+ clusterName: z.ZodString;
473
+ serviceName: z.ZodString;
474
+ capacityProvider: z.ZodEnum<{
475
+ FARGATE: "FARGATE";
476
+ FARGATE_SPOT: "FARGATE_SPOT";
477
+ EC2: "EC2";
478
+ }>;
479
+ containerPort: z.ZodOptional<z.ZodNumber>;
480
+ cpu: z.ZodOptional<z.ZodNumber>;
481
+ memoryLimitMiB: z.ZodOptional<z.ZodNumber>;
482
+ desiredCount: z.ZodOptional<z.ZodNumber>;
483
+ ec2Config: z.ZodOptional<z.ZodObject<{
484
+ instanceType: z.ZodOptional<z.ZodString>;
485
+ amiHardwareType: z.ZodOptional<z.ZodEnum<{
486
+ ARM: "ARM";
487
+ STANDARD: "STANDARD";
488
+ }>>;
489
+ minCapacity: z.ZodOptional<z.ZodNumber>;
490
+ maxCapacity: z.ZodOptional<z.ZodNumber>;
491
+ memoryLimitMiB: z.ZodOptional<z.ZodNumber>;
492
+ warmPool: z.ZodOptional<z.ZodObject<{
493
+ minSize: z.ZodOptional<z.ZodNumber>;
494
+ reuseOnScaleIn: z.ZodOptional<z.ZodBoolean>;
495
+ }, z.core.$strict>>;
496
+ }, z.core.$strict>>;
497
+ routing: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
498
+ path: z.ZodOptional<z.ZodString>;
499
+ host: z.ZodOptional<z.ZodString>;
500
+ priority: z.ZodOptional<z.ZodNumber>;
501
+ healthCheckPath: z.ZodOptional<z.ZodString>;
502
+ }, z.core.$strict>, z.ZodArray<z.ZodObject<{
503
+ path: z.ZodOptional<z.ZodString>;
504
+ host: z.ZodOptional<z.ZodString>;
505
+ priority: z.ZodOptional<z.ZodNumber>;
506
+ healthCheckPath: z.ZodOptional<z.ZodString>;
507
+ }, z.core.$strict>>]>>;
508
+ dockerfilePath: z.ZodOptional<z.ZodString>;
509
+ dockerTarget: z.ZodOptional<z.ZodString>;
510
+ nameProvidedByFlag: z.ZodOptional<z.ZodBoolean>;
511
+ connectionConfig: z.ZodOptional<z.ZodObject<{
512
+ connectToDatabase: z.ZodOptional<z.ZodArray<z.ZodString>>;
513
+ }, z.core.$strict>>;
514
+ }, z.core.$strict>;
515
+ export type AddServiceGeneratorOptions = z.infer<typeof AddServiceGeneratorSchema>;
516
+ /**
517
+ * Compute generator schema using discriminated union.
518
+ * Ensures type-specific fields are only allowed for the correct compute type.
519
+ */
520
+ export declare const ComputeGeneratorSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
521
+ appName: z.ZodString;
522
+ computeName: z.ZodString;
523
+ nameProvidedByFlag: z.ZodOptional<z.ZodBoolean>;
524
+ connectionConfig: z.ZodOptional<z.ZodObject<{
525
+ connectToDatabase: z.ZodOptional<z.ZodArray<z.ZodString>>;
526
+ }, z.core.$strict>>;
527
+ type: z.ZodLiteral<"ecs">;
528
+ cluster: z.ZodOptional<z.ZodObject<{
529
+ domain: z.ZodOptional<z.ZodString>;
530
+ loadBalancer: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodLiteral<"public">, z.ZodLiteral<"internal">]>>;
531
+ directAccess: z.ZodOptional<z.ZodBoolean>;
532
+ }, z.core.$strict>>;
533
+ services: z.ZodArray<z.ZodObject<{
534
+ name: z.ZodString;
535
+ dockerfilePath: z.ZodOptional<z.ZodString>;
536
+ dockerTarget: z.ZodOptional<z.ZodString>;
537
+ needsDatabaseConnection: z.ZodOptional<z.ZodBoolean>;
538
+ needsStorageConnection: z.ZodOptional<z.ZodBoolean>;
539
+ needsMessagingConnection: z.ZodOptional<z.ZodBoolean>;
540
+ image: z.ZodOptional<z.ZodString>;
541
+ containers: z.ZodOptional<z.ZodArray<z.ZodObject<{
542
+ name: z.ZodOptional<z.ZodString>;
543
+ image: z.ZodOptional<z.ZodString>;
544
+ port: z.ZodOptional<z.ZodNumber>;
545
+ environment: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodUnion<readonly [z.ZodObject<{
546
+ __identifier: z.ZodString;
547
+ }, z.core.$strict>, z.ZodObject<{
548
+ __expression: z.ZodString;
549
+ }, z.core.$strict>, z.ZodObject<{
550
+ __call: z.ZodString;
551
+ }, z.core.$strict>]>]>>>;
552
+ secretsImport: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
553
+ id: z.ZodString;
554
+ name: z.ZodString;
555
+ field: z.ZodOptional<z.ZodString>;
556
+ }, z.core.$strict>>>;
557
+ command: z.ZodOptional<z.ZodArray<z.ZodString>>;
558
+ entryPoint: z.ZodOptional<z.ZodArray<z.ZodString>>;
559
+ essential: z.ZodOptional<z.ZodBoolean>;
560
+ healthCheck: z.ZodOptional<z.ZodObject<{
561
+ command: z.ZodArray<z.ZodString>;
562
+ interval: z.ZodOptional<z.ZodNumber>;
563
+ timeout: z.ZodOptional<z.ZodNumber>;
564
+ retries: z.ZodOptional<z.ZodNumber>;
565
+ startPeriod: z.ZodOptional<z.ZodNumber>;
566
+ }, z.core.$strict>>;
567
+ ssmSecrets: z.ZodOptional<z.ZodArray<z.ZodString>>;
568
+ extraProperties: z.ZodOptional<z.ZodArray<z.ZodObject<{
569
+ key: z.ZodString;
570
+ sourceText: z.ZodString;
571
+ }, z.core.$strict>>>;
572
+ }, z.core.$strict>>>;
573
+ routing: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
574
+ path: z.ZodOptional<z.ZodString>;
575
+ host: z.ZodOptional<z.ZodString>;
576
+ priority: z.ZodOptional<z.ZodNumber>;
577
+ healthCheckPath: z.ZodOptional<z.ZodString>;
578
+ }, z.core.$strict>, z.ZodArray<z.ZodObject<{
579
+ path: z.ZodOptional<z.ZodString>;
580
+ host: z.ZodOptional<z.ZodString>;
581
+ priority: z.ZodOptional<z.ZodNumber>;
582
+ healthCheckPath: z.ZodOptional<z.ZodString>;
583
+ }, z.core.$strict>>]>>;
584
+ cpu: z.ZodOptional<z.ZodNumber>;
585
+ memoryLimitMiB: z.ZodOptional<z.ZodNumber>;
586
+ desiredCount: z.ZodOptional<z.ZodNumber>;
587
+ scaling: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodObject<{
588
+ desiredCount: z.ZodOptional<z.ZodNumber>;
589
+ minCapacity: z.ZodOptional<z.ZodNumber>;
590
+ maxCapacity: z.ZodOptional<z.ZodNumber>;
591
+ scalingType: z.ZodOptional<z.ZodEnum<{
592
+ CPU: "CPU";
593
+ MEMORY: "MEMORY";
594
+ }>>;
595
+ }, z.core.$strict>]>>;
596
+ capacityProvider: z.ZodEnum<{
597
+ FARGATE: "FARGATE";
598
+ FARGATE_SPOT: "FARGATE_SPOT";
599
+ EC2: "EC2";
600
+ }>;
601
+ ec2Config: z.ZodOptional<z.ZodObject<{
602
+ instanceType: z.ZodOptional<z.ZodString>;
603
+ amiHardwareType: z.ZodOptional<z.ZodEnum<{
604
+ ARM: "ARM";
605
+ STANDARD: "STANDARD";
606
+ }>>;
607
+ minCapacity: z.ZodOptional<z.ZodNumber>;
608
+ maxCapacity: z.ZodOptional<z.ZodNumber>;
609
+ memoryLimitMiB: z.ZodOptional<z.ZodNumber>;
610
+ warmPool: z.ZodOptional<z.ZodObject<{
611
+ minSize: z.ZodOptional<z.ZodNumber>;
612
+ reuseOnScaleIn: z.ZodOptional<z.ZodBoolean>;
613
+ }, z.core.$strict>>;
614
+ }, z.core.$strict>>;
615
+ ssmSecretsPath: z.ZodOptional<z.ZodString>;
616
+ extraProperties: z.ZodOptional<z.ZodArray<z.ZodObject<{
617
+ key: z.ZodString;
618
+ sourceText: z.ZodString;
619
+ }, z.core.$strict>>>;
620
+ }, z.core.$strict>>;
621
+ dockerfilePath: z.ZodOptional<z.ZodString>;
622
+ }, z.core.$strict>, z.ZodObject<{
623
+ appName: z.ZodString;
624
+ computeName: z.ZodString;
625
+ nameProvidedByFlag: z.ZodOptional<z.ZodBoolean>;
626
+ connectionConfig: z.ZodOptional<z.ZodObject<{
627
+ connectToDatabase: z.ZodOptional<z.ZodArray<z.ZodString>>;
628
+ }, z.core.$strict>>;
629
+ type: z.ZodLiteral<"lambda">;
630
+ timeout: z.ZodOptional<z.ZodNumber>;
631
+ memory: z.ZodOptional<z.ZodNumber>;
632
+ handler: z.ZodOptional<z.ZodString>;
633
+ runtime: z.ZodOptional<z.ZodString>;
634
+ environment: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodUnion<readonly [z.ZodObject<{
635
+ __identifier: z.ZodString;
636
+ }, z.core.$strict>, z.ZodObject<{
637
+ __expression: z.ZodString;
638
+ }, z.core.$strict>, z.ZodObject<{
639
+ __call: z.ZodString;
640
+ }, z.core.$strict>]>]>>>;
641
+ secrets: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodUnion<readonly [z.ZodObject<{
642
+ __identifier: z.ZodString;
643
+ }, z.core.$strict>, z.ZodObject<{
644
+ __expression: z.ZodString;
645
+ }, z.core.$strict>, z.ZodObject<{
646
+ __call: z.ZodString;
647
+ }, z.core.$strict>]>]>>>;
648
+ description: z.ZodOptional<z.ZodString>;
649
+ functionUrl: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
650
+ authType: z.ZodOptional<z.ZodEnum<{
651
+ NONE: "NONE";
652
+ AWS_IAM: "AWS_IAM";
653
+ }>>;
654
+ }, z.core.$strict>, z.ZodLiteral<false>]>>;
655
+ eventSources: z.ZodOptional<z.ZodArray<z.ZodObject<{
656
+ sourceType: z.ZodEnum<{
657
+ sqs: "sqs";
658
+ dynamodb: "dynamodb";
659
+ eventbridge: "eventbridge";
660
+ }>;
661
+ sourceRef: z.ZodString;
662
+ batchSize: z.ZodOptional<z.ZodNumber>;
663
+ startingPosition: z.ZodOptional<z.ZodEnum<{
664
+ TRIM_HORIZON: "TRIM_HORIZON";
665
+ LATEST: "LATEST";
666
+ }>>;
667
+ maxBatchingWindow: z.ZodOptional<z.ZodNumber>;
668
+ reportBatchItemFailures: z.ZodOptional<z.ZodBoolean>;
669
+ }, z.core.$strict>>>;
670
+ }, z.core.$strict>, z.ZodObject<{
671
+ appName: z.ZodString;
672
+ computeName: z.ZodString;
673
+ nameProvidedByFlag: z.ZodOptional<z.ZodBoolean>;
674
+ connectionConfig: z.ZodOptional<z.ZodObject<{
675
+ connectToDatabase: z.ZodOptional<z.ZodArray<z.ZodString>>;
676
+ }, z.core.$strict>>;
677
+ type: z.ZodLiteral<"ec2">;
678
+ instanceType: z.ZodOptional<z.ZodString & z.ZodType<"t3.nano" | "t3.micro" | "t3.small" | "t3.medium" | "t3.large" | "t3.xlarge" | "t3.2xlarge" | "t3a.nano" | "t3a.micro" | "t3a.small" | "t3a.medium" | "t3a.large" | "t3a.xlarge" | "t3a.2xlarge" | "t4g.nano" | "t4g.micro" | "t4g.small" | "t4g.medium" | "t4g.large" | "t4g.xlarge" | "t4g.2xlarge" | "c5.large" | "c5.xlarge" | "c5.2xlarge" | "c5.4xlarge" | "c5.9xlarge" | "c5.12xlarge" | "c5.18xlarge" | "c5.24xlarge" | "c5a.large" | "c5a.xlarge" | "c5a.2xlarge" | "c5a.4xlarge" | "c5a.8xlarge" | "c5a.12xlarge" | "c5a.16xlarge" | "c5a.24xlarge" | "c6g.medium" | "c6g.large" | "c6g.xlarge" | "c6g.2xlarge" | "c6g.4xlarge" | "c6g.8xlarge" | "c6g.12xlarge" | "c6g.16xlarge" | "r5.large" | "r5.xlarge" | "r5.2xlarge" | "r5.4xlarge" | "r5.8xlarge" | "r5.12xlarge" | "r5.16xlarge" | "r5.24xlarge" | "r5a.large" | "r5a.xlarge" | "r5a.2xlarge" | "r5a.4xlarge" | "r5a.8xlarge" | "r5a.12xlarge" | "r5a.16xlarge" | "r5a.24xlarge" | "r6g.medium" | "r6g.large" | "r6g.xlarge" | "r6g.2xlarge" | "r6g.4xlarge" | "r6g.8xlarge" | "r6g.12xlarge" | "r6g.16xlarge" | "i3.large" | "i3.xlarge" | "i3.2xlarge" | "i3.4xlarge" | "i3.8xlarge" | "i3.16xlarge" | "p3.2xlarge" | "p3.8xlarge" | "p3.16xlarge" | "g4dn.xlarge" | "g4dn.2xlarge" | "g4dn.4xlarge" | "g4dn.8xlarge" | "g4dn.12xlarge" | "g4dn.16xlarge" | "m5.large" | "m5.xlarge" | "m5.2xlarge" | "m5.4xlarge" | "m5.8xlarge" | "m5.12xlarge" | "m5.16xlarge" | "m5.24xlarge" | "m5a.large" | "m5a.xlarge" | "m5a.2xlarge" | "m5a.4xlarge" | "m5a.8xlarge" | "m5a.12xlarge" | "m5a.16xlarge" | "m5a.24xlarge", string, z.core.$ZodTypeInternals<"t3.nano" | "t3.micro" | "t3.small" | "t3.medium" | "t3.large" | "t3.xlarge" | "t3.2xlarge" | "t3a.nano" | "t3a.micro" | "t3a.small" | "t3a.medium" | "t3a.large" | "t3a.xlarge" | "t3a.2xlarge" | "t4g.nano" | "t4g.micro" | "t4g.small" | "t4g.medium" | "t4g.large" | "t4g.xlarge" | "t4g.2xlarge" | "c5.large" | "c5.xlarge" | "c5.2xlarge" | "c5.4xlarge" | "c5.9xlarge" | "c5.12xlarge" | "c5.18xlarge" | "c5.24xlarge" | "c5a.large" | "c5a.xlarge" | "c5a.2xlarge" | "c5a.4xlarge" | "c5a.8xlarge" | "c5a.12xlarge" | "c5a.16xlarge" | "c5a.24xlarge" | "c6g.medium" | "c6g.large" | "c6g.xlarge" | "c6g.2xlarge" | "c6g.4xlarge" | "c6g.8xlarge" | "c6g.12xlarge" | "c6g.16xlarge" | "r5.large" | "r5.xlarge" | "r5.2xlarge" | "r5.4xlarge" | "r5.8xlarge" | "r5.12xlarge" | "r5.16xlarge" | "r5.24xlarge" | "r5a.large" | "r5a.xlarge" | "r5a.2xlarge" | "r5a.4xlarge" | "r5a.8xlarge" | "r5a.12xlarge" | "r5a.16xlarge" | "r5a.24xlarge" | "r6g.medium" | "r6g.large" | "r6g.xlarge" | "r6g.2xlarge" | "r6g.4xlarge" | "r6g.8xlarge" | "r6g.12xlarge" | "r6g.16xlarge" | "i3.large" | "i3.xlarge" | "i3.2xlarge" | "i3.4xlarge" | "i3.8xlarge" | "i3.16xlarge" | "p3.2xlarge" | "p3.8xlarge" | "p3.16xlarge" | "g4dn.xlarge" | "g4dn.2xlarge" | "g4dn.4xlarge" | "g4dn.8xlarge" | "g4dn.12xlarge" | "g4dn.16xlarge" | "m5.large" | "m5.xlarge" | "m5.2xlarge" | "m5.4xlarge" | "m5.8xlarge" | "m5.12xlarge" | "m5.16xlarge" | "m5.24xlarge" | "m5a.large" | "m5a.xlarge" | "m5a.2xlarge" | "m5a.4xlarge" | "m5a.8xlarge" | "m5a.12xlarge" | "m5a.16xlarge" | "m5a.24xlarge", string>>>;
679
+ enableSSH: z.ZodOptional<z.ZodBoolean>;
680
+ keyName: z.ZodOptional<z.ZodString>;
681
+ userData: z.ZodOptional<z.ZodString>;
682
+ securityGroups: z.ZodOptional<z.ZodArray<z.ZodString>>;
683
+ }, z.core.$strict>], "type">;
684
+ /**
685
+ * Simple routing configuration for application generator services.
686
+ * Matches what the UI sends (path is required, priority optional).
687
+ */
688
+ export declare const ApplicationServiceRoutingSchema: z.ZodObject<{
689
+ path: z.ZodString;
690
+ priority: z.ZodOptional<z.ZodNumber>;
691
+ }, z.core.$strict>;
692
+ /**
693
+ * Service configuration for application generator.
694
+ * Used to configure multi-service ECS applications.
695
+ */
696
+ export declare const ApplicationServiceConfigSchema: z.ZodObject<{
697
+ name: z.ZodString;
698
+ dockerfilePath: z.ZodOptional<z.ZodString>;
699
+ containerPort: z.ZodOptional<z.ZodNumber>;
700
+ needsDatabaseConnection: z.ZodOptional<z.ZodBoolean>;
701
+ routing: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
702
+ path: z.ZodString;
703
+ priority: z.ZodOptional<z.ZodNumber>;
704
+ }, z.core.$strict>, z.ZodArray<z.ZodObject<{
705
+ path: z.ZodString;
706
+ priority: z.ZodOptional<z.ZodNumber>;
707
+ }, z.core.$strict>>]>>;
708
+ }, z.core.$strict>;
709
+ export type ApplicationServiceConfig = z.infer<typeof ApplicationServiceConfigSchema>;
710
+ export declare const TunnelGeneratorSchema: z.ZodObject<{
711
+ appName: z.ZodString;
712
+ instanceType: z.ZodOptional<z.ZodString>;
713
+ }, z.core.$strict>;
714
+ export type ContainerConfig = z.infer<typeof ContainerConfigSchema>;
715
+ export type EcsClusterConfig = z.infer<typeof EcsClusterConfigSchema>;
716
+ export type EcsRoutingConfig = z.infer<typeof EcsRoutingConfigSchema>;
717
+ export type EcsScalingConfig = z.infer<typeof EcsScalingConfigSchema>;
718
+ export type EcsServiceConfig = z.infer<typeof EcsServiceConfigSchema>;
719
+ export type ComputeResourcePlan = z.infer<typeof ComputeResourcePlanSchema>;
720
+ export type ComputeGeneratorOptions = z.infer<typeof ComputeGeneratorSchema>;
721
+ export type TunnelGeneratorOptions = z.infer<typeof TunnelGeneratorSchema>;
722
+ export type WarmPool = z.infer<typeof WarmPoolSchema>;
723
+ export type Ec2Config = z.infer<typeof Ec2ConfigSchema>;