@alienplatform/core 1.0.1 → 1.3.3

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 (169) hide show
  1. package/.turbo/turbo-build.log +24 -0
  2. package/LICENSE.md +105 -0
  3. package/dist/index.d.ts +2343 -2321
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +16 -6
  6. package/dist/index.js.map +1 -1
  7. package/dist/stack.js +264 -262
  8. package/dist/stack.js.map +1 -1
  9. package/dist/tests/index.d.ts +2 -1
  10. package/dist/tests/index.d.ts.map +1 -1
  11. package/kubb.config.ts +1 -0
  12. package/package.json +17 -10
  13. package/src/artifact-registry.ts +12 -0
  14. package/src/function.ts +5 -6
  15. package/src/generated/index.ts +0 -2
  16. package/src/generated/schemas/agentStatus.json +1 -1
  17. package/src/generated/schemas/alienError.json +1 -1
  18. package/src/generated/schemas/alienEvent.json +1 -1
  19. package/src/generated/schemas/artifactRegistry.json +1 -1
  20. package/src/generated/schemas/azureManagementConfig.json +1 -1
  21. package/src/generated/schemas/commandState.json +1 -1
  22. package/src/generated/schemas/createCommandRequest.json +1 -1
  23. package/src/generated/schemas/deploymentStatus.json +1 -1
  24. package/src/generated/schemas/devStatus.json +1 -1
  25. package/src/generated/schemas/envelope.json +1 -1
  26. package/src/generated/schemas/eventChange.json +1 -1
  27. package/src/generated/schemas/eventState.json +1 -1
  28. package/src/generated/schemas/function.json +1 -1
  29. package/src/generated/schemas/functionOutputs.json +1 -1
  30. package/src/generated/schemas/functionTrigger.json +1 -1
  31. package/src/generated/schemas/leaseInfo.json +1 -1
  32. package/src/generated/schemas/leaseResponse.json +1 -1
  33. package/src/generated/schemas/managementConfig.json +1 -1
  34. package/src/generated/schemas/managementPermissions.json +1 -1
  35. package/src/generated/schemas/permissionsConfig.json +1 -1
  36. package/src/generated/schemas/remoteStackManagement.json +1 -1
  37. package/src/generated/schemas/remoteStackManagementOutputs.json +1 -1
  38. package/src/generated/schemas/resourceEntry.json +1 -1
  39. package/src/generated/schemas/resourceLifecycle.json +1 -1
  40. package/src/generated/schemas/stack.json +1 -1
  41. package/src/generated/schemas/stackResourceState.json +1 -1
  42. package/src/generated/schemas/stackSettings.json +1 -1
  43. package/src/generated/schemas/stackState.json +1 -1
  44. package/src/generated/schemas/updatesMode.json +1 -1
  45. package/src/generated/zod/agent-status-schema.ts +6 -5
  46. package/src/generated/zod/alien-error-schema.ts +5 -4
  47. package/src/generated/zod/alien-event-schema.ts +6 -6
  48. package/src/generated/zod/artifact-registry-outputs-schema.ts +3 -3
  49. package/src/generated/zod/artifact-registry-schema.ts +3 -2
  50. package/src/generated/zod/aws-custom-certificate-config-schema.ts +1 -1
  51. package/src/generated/zod/aws-management-config-schema.ts +1 -1
  52. package/src/generated/zod/aws-platform-permission-schema.ts +3 -3
  53. package/src/generated/zod/azure-custom-certificate-config-schema.ts +1 -1
  54. package/src/generated/zod/azure-management-config-schema.ts +5 -3
  55. package/src/generated/zod/azure-platform-permission-schema.ts +3 -3
  56. package/src/generated/zod/base-resource-outputs-schema.ts +2 -2
  57. package/src/generated/zod/base-resource-schema.ts +2 -2
  58. package/src/generated/zod/binding-configuration-aws-binding-spec-schema.ts +7 -7
  59. package/src/generated/zod/binding-configuration-azure-binding-spec-schema.ts +5 -5
  60. package/src/generated/zod/binding-configuration-gcp-binding-spec-schema.ts +7 -7
  61. package/src/generated/zod/body-spec-schema.ts +4 -4
  62. package/src/generated/zod/build-config-schema.ts +5 -5
  63. package/src/generated/zod/build-outputs-schema.ts +1 -1
  64. package/src/generated/zod/build-schema.ts +5 -5
  65. package/src/generated/zod/build-status-schema.ts +1 -1
  66. package/src/generated/zod/command-response-schema.ts +3 -3
  67. package/src/generated/zod/command-state-schema.ts +3 -3
  68. package/src/generated/zod/command-status-response-schema.ts +4 -4
  69. package/src/generated/zod/compute-type-schema.ts +1 -1
  70. package/src/generated/zod/container-autoscaling-schema.ts +5 -5
  71. package/src/generated/zod/container-code-schema.ts +2 -2
  72. package/src/generated/zod/container-gpu-spec-schema.ts +1 -1
  73. package/src/generated/zod/container-outputs-schema.ts +5 -5
  74. package/src/generated/zod/container-port-schema.ts +2 -2
  75. package/src/generated/zod/container-schema.ts +18 -18
  76. package/src/generated/zod/container-status-schema.ts +1 -1
  77. package/src/generated/zod/create-command-request-schema.ts +6 -6
  78. package/src/generated/zod/create-command-response-schema.ts +4 -4
  79. package/src/generated/zod/custom-certificate-config-schema.ts +4 -4
  80. package/src/generated/zod/custom-domain-config-schema.ts +2 -2
  81. package/src/generated/zod/deployment-model-schema.ts +1 -1
  82. package/src/generated/zod/deployment-status-schema.ts +2 -2
  83. package/src/generated/zod/dev-resource-info-schema.ts +2 -2
  84. package/src/generated/zod/dev-status-schema.ts +4 -4
  85. package/src/generated/zod/dev-status-state-schema.ts +1 -1
  86. package/src/generated/zod/domain-settings-schema.ts +2 -2
  87. package/src/generated/zod/envelope-schema.ts +6 -6
  88. package/src/generated/zod/event-change-schema.ts +9 -9
  89. package/src/generated/zod/event-state-schema.ts +2 -2
  90. package/src/generated/zod/expose-protocol-schema.ts +1 -1
  91. package/src/generated/zod/function-code-schema.ts +2 -2
  92. package/src/generated/zod/function-outputs-schema.ts +6 -5
  93. package/src/generated/zod/function-schema.ts +13 -13
  94. package/src/generated/zod/function-trigger-schema.ts +4 -4
  95. package/src/generated/zod/gcp-condition-schema.ts +1 -1
  96. package/src/generated/zod/gcp-custom-certificate-config-schema.ts +1 -1
  97. package/src/generated/zod/gcp-management-config-schema.ts +1 -1
  98. package/src/generated/zod/gcp-platform-permission-schema.ts +3 -3
  99. package/src/generated/zod/health-check-schema.ts +6 -6
  100. package/src/generated/zod/heartbeats-mode-schema.ts +1 -1
  101. package/src/generated/zod/http-method-schema.ts +1 -1
  102. package/src/generated/zod/index.ts +0 -2
  103. package/src/generated/zod/ingress-schema.ts +1 -1
  104. package/src/generated/zod/kv-outputs-schema.ts +3 -3
  105. package/src/generated/zod/kv-schema.ts +1 -1
  106. package/src/generated/zod/lease-info-schema.ts +4 -4
  107. package/src/generated/zod/lease-request-schema.ts +3 -3
  108. package/src/generated/zod/lease-response-schema.ts +2 -2
  109. package/src/generated/zod/lifecycle-rule-schema.ts +2 -2
  110. package/src/generated/zod/load-balancer-endpoint-schema.ts +2 -2
  111. package/src/generated/zod/local-operation-schema.ts +1 -1
  112. package/src/generated/zod/management-config-schema.ts +6 -6
  113. package/src/generated/zod/management-permissions-schema.ts +3 -3
  114. package/src/generated/zod/message-payload-schema.ts +1 -1
  115. package/src/generated/zod/monitoring-config-schema.ts +6 -6
  116. package/src/generated/zod/network-settings-schema.ts +4 -4
  117. package/src/generated/zod/permission-grant-schema.ts +4 -4
  118. package/src/generated/zod/permission-profile-schema.ts +2 -2
  119. package/src/generated/zod/permission-set-reference-schema.ts +2 -2
  120. package/src/generated/zod/permission-set-schema.ts +2 -2
  121. package/src/generated/zod/permissions-config-schema.ts +3 -3
  122. package/src/generated/zod/persistent-storage-schema.ts +4 -4
  123. package/src/generated/zod/platform-permissions-schema.ts +7 -7
  124. package/src/generated/zod/platform-schema.ts +1 -1
  125. package/src/generated/zod/presigned-operation-schema.ts +1 -1
  126. package/src/generated/zod/presigned-request-backend-schema.ts +2 -2
  127. package/src/generated/zod/presigned-request-schema.ts +4 -4
  128. package/src/generated/zod/push-progress-schema.ts +1 -1
  129. package/src/generated/zod/queue-message-schema.ts +6 -6
  130. package/src/generated/zod/queue-outputs-schema.ts +2 -2
  131. package/src/generated/zod/queue-schema.ts +1 -1
  132. package/src/generated/zod/readiness-probe-schema.ts +3 -3
  133. package/src/generated/zod/release-request-schema.ts +1 -1
  134. package/src/generated/zod/remote-stack-management-outputs-schema.ts +3 -3
  135. package/src/generated/zod/remote-stack-management-schema.ts +3 -3
  136. package/src/generated/zod/replica-status-schema.ts +4 -4
  137. package/src/generated/zod/resource-entry-schema.ts +5 -5
  138. package/src/generated/zod/resource-lifecycle-schema.ts +2 -2
  139. package/src/generated/zod/resource-ref-schema.ts +2 -2
  140. package/src/generated/zod/resource-spec-schema.ts +1 -1
  141. package/src/generated/zod/resource-status-schema.ts +1 -1
  142. package/src/generated/zod/resource-type-schema.ts +1 -1
  143. package/src/generated/zod/response-handling-schema.ts +2 -2
  144. package/src/generated/zod/scheduled-event-schema.ts +2 -2
  145. package/src/generated/zod/service-account-outputs-schema.ts +1 -1
  146. package/src/generated/zod/service-account-schema.ts +2 -2
  147. package/src/generated/zod/stack-ref-schema.ts +1 -1
  148. package/src/generated/zod/stack-resource-state-schema.ts +13 -13
  149. package/src/generated/zod/stack-schema.ts +3 -3
  150. package/src/generated/zod/stack-settings-schema.ts +13 -10
  151. package/src/generated/zod/stack-state-schema.ts +3 -3
  152. package/src/generated/zod/stack-status-schema.ts +1 -1
  153. package/src/generated/zod/storage-event-schema.ts +13 -13
  154. package/src/generated/zod/storage-event-type-schema.ts +1 -1
  155. package/src/generated/zod/storage-events-schema.ts +2 -2
  156. package/src/generated/zod/storage-outputs-schema.ts +1 -1
  157. package/src/generated/zod/storage-schema.ts +4 -4
  158. package/src/generated/zod/storage-upload-schema.ts +3 -3
  159. package/src/generated/zod/submit-response-request-schema.ts +2 -2
  160. package/src/generated/zod/telemetry-mode-schema.ts +1 -1
  161. package/src/generated/zod/toolchain-config-schema.ts +5 -5
  162. package/src/generated/zod/updates-mode-schema.ts +3 -3
  163. package/src/generated/zod/upload-complete-request-schema.ts +1 -1
  164. package/src/generated/zod/upload-complete-response-schema.ts +3 -3
  165. package/src/generated/zod/vault-outputs-schema.ts +1 -1
  166. package/src/generated/zod/vault-schema.ts +1 -1
  167. package/src/index.ts +2 -2
  168. package/src/generated/schemas/imagePullCredentials.json +0 -1
  169. package/src/generated/zod/image-pull-credentials-schema.ts +0 -16
package/dist/stack.js CHANGED
@@ -1,4 +1,4 @@
1
- import { z } from "zod/v4";
1
+ import * as z from "zod";
2
2
  //#region src/generated/zod/alien-error-schema.ts
3
3
  /**
4
4
  * Generated by Kubb (https://kubb.dev/).
@@ -9,12 +9,13 @@ import { z } from "zod/v4";
9
9
  */
10
10
  const AlienErrorSchema = z.object({
11
11
  "code": z.string().max(128).describe("A unique identifier for the type of error.\n\nThis should be a short, machine-readable string that can be used\nby clients to programmatically handle different error types.\nExamples: \"NOT_FOUND\", \"VALIDATION_ERROR\", \"TIMEOUT\""),
12
- "context": z.any().optional(),
13
- "httpStatusCode": z.int().min(100).max(599).describe("HTTP status code for this error.\n\nUsed when converting the error to an HTTP response. If None, falls back to\nthe error type's default status code or 500.").optional().nullable(),
12
+ "context": z.optional(z.any().describe("Additional diagnostic information about the error context.\n\nThis optional field can contain structured data providing more details\nabout the error, such as validation errors, request parameters that\ncaused the issue, or other relevant context information.")),
13
+ "hint": z.string().describe("Optional human-facing remediation hint.").nullish(),
14
+ "httpStatusCode": z.int().min(100).max(599).describe("HTTP status code for this error.\n\nUsed when converting the error to an HTTP response. If None, falls back to\nthe error type's default status code or 500.").nullish(),
14
15
  "internal": z.boolean().describe("Indicates if this is an internal error that should not be exposed to users.\n\nWhen `true`, this error contains sensitive information or implementation\ndetails that should not be shown to end-users. Such errors should be\nlogged for debugging but replaced with generic error messages in responses."),
15
16
  "message": z.string().max(16384).describe("Human-readable error message.\n\nThis message should be clear and actionable for developers or end-users,\nproviding context about what went wrong and potentially how to fix it."),
16
17
  "retryable": z.boolean().default(false).describe("Indicates whether the operation that caused the error should be retried.\n\nWhen `true`, the error is transient and the operation might succeed\nif attempted again. When `false`, retrying the same operation is\nunlikely to succeed without changes."),
17
- "source": z.any().optional()
18
+ "source": z.optional(z.any().describe("The underlying error that caused this error, creating an error chain.\n\nThis allows for proper error propagation and debugging by maintaining\nthe full context of how an error occurred through multiple layers\nof an application."))
18
19
  }).describe("Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems.");
19
20
  //#endregion
20
21
  //#region src/generated/zod/deployment-status-schema.ts
@@ -39,7 +40,8 @@ const DeploymentStatusSchema = z.enum([
39
40
  "delete-pending",
40
41
  "deleting",
41
42
  "delete-failed",
42
- "deleted"
43
+ "deleted",
44
+ "error"
43
45
  ]).describe("Deployment status in the deployment lifecycle");
44
46
  //#endregion
45
47
  //#region src/generated/zod/dev-resource-info-schema.ts
@@ -51,7 +53,7 @@ const DeploymentStatusSchema = z.enum([
51
53
  * @description Information about a deployed resource
52
54
  */
53
55
  const DevResourceInfoSchema = z.object({
54
- "resourceType": z.string().describe("Resource type (\"function\" | \"container\")").optional().nullable(),
56
+ "resourceType": z.string().describe("Resource type (\"function\" | \"container\")").nullish(),
55
57
  "url": z.string().describe("Resource URL (e.g., http://localhost:8080)")
56
58
  }).describe("Information about a deployed resource");
57
59
  //#endregion
@@ -64,14 +66,15 @@ const DevResourceInfoSchema = z.object({
64
66
  * @description Status of a single agent in the dev server
65
67
  */
66
68
  const AgentStatusSchema = z.object({
69
+ "commandsUrl": z.string().describe("Commands endpoint URL for the deployment").nullish(),
67
70
  "createdAt": z.string().describe("ISO 8601 timestamp when agent was created"),
68
- get error() {
71
+ get "error"() {
69
72
  return z.union([AlienErrorSchema, z.null()]).optional();
70
73
  },
71
74
  "id": z.string().describe("Agent ID (e.g., ag_xyz123)"),
72
75
  "name": z.string().describe("Agent name (from --agent-name flag)"),
73
- "resources": z.object({}).catchall(DevResourceInfoSchema.describe("Information about a deployed resource")).describe("Resources deployed by this agent (keyed by resource name)"),
74
- get status() {
76
+ "resources": z.object({}).catchall(z.lazy(() => DevResourceInfoSchema).describe("Information about a deployed resource")).describe("Resources deployed by this agent (keyed by resource name)"),
77
+ get "status"() {
75
78
  return DeploymentStatusSchema.describe("Deployment status in the deployment lifecycle");
76
79
  }
77
80
  }).describe("Status of a single agent in the dev server");
@@ -127,7 +130,7 @@ const ResourceTypeSchema = z.string().describe("Resource type identifier that de
127
130
  /**
128
131
  * @description Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common \'type\' field with additional type-specific output properties.
129
132
  */
130
- const BaseResourceOutputsSchema = z.object({ get type() {
133
+ const BaseResourceOutputsSchema = z.object({ get "type"() {
131
134
  return ResourceTypeSchema.describe("Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior.");
132
135
  } }).catchall(z.any()).describe("Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties.");
133
136
  //#endregion
@@ -141,7 +144,7 @@ const BaseResourceOutputsSchema = z.object({ get type() {
141
144
  */
142
145
  const BaseResourceSchema = z.object({
143
146
  "id": z.string().describe("The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters."),
144
- get type() {
147
+ get "type"() {
145
148
  return ResourceTypeSchema.describe("Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior.");
146
149
  }
147
150
  }).catchall(z.any()).describe("Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties.");
@@ -154,11 +157,7 @@ const BaseResourceSchema = z.object({
154
157
  /**
155
158
  * @description Describes the lifecycle of a resource within a stack, determining how it\'s managed and deployed.
156
159
  */
157
- const ResourceLifecycleSchema = z.enum([
158
- "frozen",
159
- "live",
160
- "live-on-setup"
161
- ]).describe("Describes the lifecycle of a resource within a stack, determining how it's managed and deployed.");
160
+ const ResourceLifecycleSchema = z.enum(["frozen", "live"]).describe("Describes the lifecycle of a resource within a stack, determining how it's managed and deployed.");
162
161
  //#endregion
163
162
  //#region src/generated/zod/resource-ref-schema.ts
164
163
  /**
@@ -170,7 +169,7 @@ const ResourceLifecycleSchema = z.enum([
170
169
  */
171
170
  const ResourceRefSchema = z.object({
172
171
  "id": z.string(),
173
- get type() {
172
+ get "type"() {
174
173
  return ResourceTypeSchema.describe("Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior.");
175
174
  }
176
175
  }).describe("New ResourceRef that works with any resource type.\nThis can eventually replace the enum-based ResourceRef for full extensibility.");
@@ -205,30 +204,30 @@ const ResourceStatusSchema = z.enum([
205
204
  * @description Represents the state of a single resource within the stack for a specific platform.
206
205
  */
207
206
  const StackResourceStateSchema = z.object({
208
- "_internal": z.any().optional(),
209
- get config() {
207
+ "_internal": z.optional(z.any().describe("The platform-specific resource controller that manages this resource's lifecycle.\nThis is None when the resource status is Pending.\nStored as JSON to make the struct serializable and movable to alien-core.")),
208
+ get "config"() {
210
209
  return BaseResourceSchema.describe("Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties.");
211
210
  },
212
- get dependencies() {
211
+ get "dependencies"() {
213
212
  return z.array(ResourceRefSchema.describe("New ResourceRef that works with any resource type.\nThis can eventually replace the enum-based ResourceRef for full extensibility.")).describe("Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition.").optional();
214
213
  },
215
- get error() {
214
+ get "error"() {
216
215
  return z.union([AlienErrorSchema, z.null()]).optional();
217
216
  },
218
- "isExternallyProvisioned": z.boolean().describe("True if the resource was provisioned by an external system (e.g., CloudFormation).\nDefaults to false, indicating dynamic provisioning by the executor.").optional(),
219
- "lastFailedState": z.any().optional(),
220
- get lifecycle() {
217
+ "isExternallyProvisioned": z.optional(z.boolean().describe("True if the resource was provisioned by an external system (e.g., CloudFormation).\nDefaults to false, indicating dynamic provisioning by the executor.")),
218
+ "lastFailedState": z.optional(z.any().describe("Stores the controller state that failed, used for manual retry operations.\nThis allows resuming from the exact point where the failure occurred.\nStored as JSON to make the struct serializable and movable to alien-core.")),
219
+ get "lifecycle"() {
221
220
  return z.union([ResourceLifecycleSchema, z.null()]).optional();
222
221
  },
223
- get outputs() {
222
+ get "outputs"() {
224
223
  return z.union([BaseResourceOutputsSchema, z.null()]).optional();
225
224
  },
226
- get previousConfig() {
225
+ get "previousConfig"() {
227
226
  return z.union([BaseResourceSchema, z.null()]).optional();
228
227
  },
229
- "remoteBindingParams": z.any().optional(),
230
- "retryAttempt": z.int().min(0).describe("Tracks consecutive retry attempts for the current state transition.").optional(),
231
- get status() {
228
+ "remoteBindingParams": z.optional(z.any().describe("Binding parameters for remote access.\nOnly populated when the resource has `remote_access: true` in its ResourceEntry.\nThis is the JSON serialization of the binding configuration (e.g., StorageBinding, VaultBinding).\nPopulated by controllers during provisioning using get_binding_params().")),
229
+ "retryAttempt": z.optional(z.int().min(0).describe("Tracks consecutive retry attempts for the current state transition.")),
230
+ get "status"() {
232
231
  return ResourceStatusSchema.describe("Represents the high-level status of a resource during its lifecycle.");
233
232
  },
234
233
  "type": z.string().describe("The high-level type of the resource (e.g., Function::RESOURCE_TYPE, Storage::RESOURCE_TYPE).")
@@ -243,11 +242,11 @@ const StackResourceStateSchema = z.object({
243
242
  * @description Represents the collective state of all resources in a stack, including platform and pending actions.
244
243
  */
245
244
  const StackStateSchema = z.object({
246
- get platform() {
245
+ get "platform"() {
247
246
  return PlatformSchema.describe("Represents the target cloud platform.");
248
247
  },
249
248
  "resourcePrefix": z.string().describe("A prefix used for resource naming to ensure uniqueness across deployments."),
250
- "resources": z.object({}).catchall(StackResourceStateSchema.describe("Represents the state of a single resource within the stack for a specific platform.")).describe("The state of individual resources, keyed by resource ID.")
249
+ "resources": z.object({}).catchall(z.lazy(() => StackResourceStateSchema).describe("Represents the state of a single resource within the stack for a specific platform.")).describe("The state of individual resources, keyed by resource ID.")
251
250
  }).describe("Represents the collective state of all resources in a stack, including platform and pending actions.");
252
251
  //#endregion
253
252
  //#region src/generated/zod/alien-event-schema.ts
@@ -276,7 +275,7 @@ const AlienEventSchema = z.union([
276
275
  "url": z.string().describe("URL being downloaded from")
277
276
  }),
278
277
  z.object({
279
- "relatedResources": z.array(z.string()).describe("All resource names sharing this build (for deduped container groups)").optional(),
278
+ "relatedResources": z.optional(z.array(z.string()).describe("All resource names sharing this build (for deduped container groups)")),
280
279
  "resourceName": z.string().describe("Name of the resource being built"),
281
280
  "resourceType": z.string().describe("Type of the resource: \"function\", \"container\", \"worker\""),
282
281
  "type": z.enum(["BuildingResource"])
@@ -287,7 +286,7 @@ const AlienEventSchema = z.union([
287
286
  }),
288
287
  z.object({
289
288
  "image": z.string().describe("Name of the image being pushed"),
290
- get progress() {
289
+ get "progress"() {
291
290
  return z.union([PushProgressSchema, z.null()]).optional();
292
291
  },
293
292
  "type": z.enum(["PushingImage"])
@@ -308,14 +307,14 @@ const AlienEventSchema = z.union([
308
307
  }),
309
308
  z.object({
310
309
  "language": z.string().describe("Language being compiled (rust, typescript, etc.)"),
311
- "progress": z.string().describe("Current progress/status line from the build output").optional().nullable(),
310
+ "progress": z.string().describe("Current progress/status line from the build output").nullish(),
312
311
  "type": z.enum(["CompilingCode"])
313
312
  }),
314
313
  z.object({
315
- get nextState() {
314
+ get "nextState"() {
316
315
  return StackStateSchema.describe("Represents the collective state of all resources in a stack, including platform and pending actions.");
317
316
  },
318
- "suggestedDelayMs": z.int().min(0).describe("An suggested duration to wait before executing the next step.").optional().nullable(),
317
+ "suggestedDelayMs": z.int().min(0).describe("An suggested duration to wait before executing the next step.").nullish(),
319
318
  "type": z.enum(["StackStep"])
320
319
  }),
321
320
  z.object({ "type": z.enum(["GeneratingCloudFormationTemplate"]) }),
@@ -406,8 +405,8 @@ const AlienEventSchema = z.union([
406
405
  * @description Outputs generated by a successfully provisioned ArtifactRegistry.
407
406
  */
408
407
  const ArtifactRegistryOutputsSchema = z.object({
409
- "pullRole": z.string().describe("Role/principal identifier for pull-only access.\n- AWS: IAM role ARN (e.g., \"arn:aws:iam::123456789012:role/my-stack-my-registry-pull\")\n- GCP: Service account email (e.g., \"my-stack-my-registry-pull@my-project.iam.gserviceaccount.com\")\n- Azure: Managed identity resource ID (e.g., \"/subscriptions/.../resourceGroups/.../providers/Microsoft.ManagedIdentity/userAssignedIdentities/my-registry-pull\")").optional().nullable(),
410
- "pushRole": z.string().describe("Role/principal identifier for push and pull access.\n- AWS: IAM role ARN (e.g., \"arn:aws:iam::123456789012:role/my-stack-my-registry-push\")\n- GCP: Service account email (e.g., \"my-stack-my-registry-push@my-project.iam.gserviceaccount.com\")\n- Azure: Managed identity resource ID (e.g., \"/subscriptions/.../resourceGroups/.../providers/Microsoft.ManagedIdentity/userAssignedIdentities/my-registry-push\")").optional().nullable(),
408
+ "pullRole": z.string().describe("Role/principal identifier for pull-only access.\n- AWS: IAM role ARN (e.g., \"arn:aws:iam::123456789012:role/my-stack-my-registry-pull\")\n- GCP: Service account email (e.g., \"my-stack-my-registry-pull@my-project.iam.gserviceaccount.com\")\n- Azure: Managed identity resource ID (e.g., \"/subscriptions/.../resourceGroups/.../providers/Microsoft.ManagedIdentity/userAssignedIdentities/my-registry-pull\")").nullish(),
409
+ "pushRole": z.string().describe("Role/principal identifier for push and pull access.\n- AWS: IAM role ARN (e.g., \"arn:aws:iam::123456789012:role/my-stack-my-registry-push\")\n- GCP: Service account email (e.g., \"my-stack-my-registry-push@my-project.iam.gserviceaccount.com\")\n- Azure: Managed identity resource ID (e.g., \"/subscriptions/.../resourceGroups/.../providers/Microsoft.ManagedIdentity/userAssignedIdentities/my-registry-push\")").nullish(),
411
410
  "registryEndpoint": z.string().describe("The registry endpoint for docker operations.\n- AWS: ECR registry URL (e.g., \"123456789012.dkr.ecr.us-west-2.amazonaws.com\")\n- GCP: Artifact Registry URL (e.g., \"us-central1-docker.pkg.dev/my-project\")\n- Azure: Container registry login server (e.g., \"myregistry.azurecr.io\")"),
412
411
  "registryId": z.string().describe("The platform-specific registry identifier.\n- AWS: Account and region (e.g., \"123456789012:us-west-2\")\n- GCP: Full registry name (e.g., \"projects/my-project/locations/us-central1\")\n- Azure: Registry resource ID (e.g., \"/subscriptions/.../resourceGroups/.../providers/Microsoft.ContainerRegistry/registries/myregistry\")")
413
412
  }).describe("Outputs generated by a successfully provisioned ArtifactRegistry.");
@@ -420,7 +419,10 @@ const ArtifactRegistryOutputsSchema = z.object({
420
419
  /**
421
420
  * @description Represents an artifact registry for storing container images and other build artifacts.\nThis is a high-level wrapper resource that provides a cloud-agnostic interface over\nAWS ECR, GCP Artifact Registry, and Azure Container Registry.\n\n# Platform Mapping\n- **AWS**: Implicitly exists as the AWS account and region\n- **GCP**: Explicitly configured per project and location (Artifact Registry API enabled)\n- **Azure**: Explicitly provisioned Azure Container Registry instance\n\nThe actual repository management and permissions are handled through the bindings API.
422
421
  */
423
- const ArtifactRegistrySchema = z.object({ "id": z.string().describe("Identifier for the artifact registry. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]).\nMaximum 64 characters.") }).describe("Represents an artifact registry for storing container images and other build artifacts.\nThis is a high-level wrapper resource that provides a cloud-agnostic interface over\nAWS ECR, GCP Artifact Registry, and Azure Container Registry.\n\n# Platform Mapping\n- **AWS**: Implicitly exists as the AWS account and region\n- **GCP**: Explicitly configured per project and location (Artifact Registry API enabled)\n- **Azure**: Explicitly provisioned Azure Container Registry instance\n\nThe actual repository management and permissions are handled through the bindings API.");
422
+ const ArtifactRegistrySchema = z.object({
423
+ "id": z.string().describe("Identifier for the artifact registry. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]).\nMaximum 64 characters."),
424
+ "replicationRegions": z.optional(z.array(z.string()).describe("AWS-only: regions to replicate container images to.\nECR private image replication ensures images pushed in the registry's home region\nare automatically available in these additional regions (required when Lambda or\nother compute runs in a different region from the registry)."))
425
+ }).describe("Represents an artifact registry for storing container images and other build artifacts.\nThis is a high-level wrapper resource that provides a cloud-agnostic interface over\nAWS ECR, GCP Artifact Registry, and Azure Container Registry.\n\n# Platform Mapping\n- **AWS**: Implicitly exists as the AWS account and region\n- **GCP**: Explicitly configured per project and location (Artifact Registry API enabled)\n- **Azure**: Explicitly provisioned Azure Container Registry instance\n\nThe actual repository management and permissions are handled through the bindings API.");
424
426
  //#endregion
425
427
  //#region src/generated/zod/aws-custom-certificate-config-schema.ts
426
428
  /**
@@ -448,14 +450,14 @@ const AwsManagementConfigSchema = z.object({ "managingRoleArn": z.string().descr
448
450
  * @description Generic binding configuration for permissions
449
451
  */
450
452
  const BindingConfigurationAwsBindingSpecSchema = z.object({
451
- "resource": z.object({
452
- "condition": z.object({}).catchall(z.object({}).catchall(z.string())).describe("Optional condition for additional filtering (rare)").optional().nullable(),
453
+ "resource": z.optional(z.object({
454
+ "condition": z.object({}).catchall(z.object({}).catchall(z.string())).describe("Optional condition for additional filtering (rare)").nullish(),
453
455
  "resources": z.array(z.string()).describe("Resource ARNs to bind to")
454
- }).describe("AWS-specific binding specification").optional(),
455
- "stack": z.object({
456
- "condition": z.object({}).catchall(z.object({}).catchall(z.string())).describe("Optional condition for additional filtering (rare)").optional().nullable(),
456
+ }).describe("AWS-specific binding specification")),
457
+ "stack": z.optional(z.object({
458
+ "condition": z.object({}).catchall(z.object({}).catchall(z.string())).describe("Optional condition for additional filtering (rare)").nullish(),
457
459
  "resources": z.array(z.string()).describe("Resource ARNs to bind to")
458
- }).describe("AWS-specific binding specification").optional()
460
+ }).describe("AWS-specific binding specification"))
459
461
  }).describe("Generic binding configuration for permissions");
460
462
  //#endregion
461
463
  //#region src/generated/zod/permission-grant-schema.ts
@@ -467,9 +469,9 @@ const BindingConfigurationAwsBindingSpecSchema = z.object({
467
469
  * @description Grant permissions for a specific cloud platform
468
470
  */
469
471
  const PermissionGrantSchema = z.object({
470
- "actions": z.array(z.string()).describe("AWS IAM actions (only for AWS)").optional().nullable(),
471
- "dataActions": z.array(z.string()).describe("Azure actions (only for Azure)").optional().nullable(),
472
- "permissions": z.array(z.string()).describe("GCP permissions (only for GCP)").optional().nullable()
472
+ "actions": z.array(z.string()).describe("AWS IAM actions (only for AWS)").nullish(),
473
+ "dataActions": z.array(z.string()).describe("Azure actions (only for Azure)").nullish(),
474
+ "permissions": z.array(z.string()).describe("GCP permissions (only for GCP)").nullish()
473
475
  }).describe("Grant permissions for a specific cloud platform");
474
476
  //#endregion
475
477
  //#region src/generated/zod/aws-platform-permission-schema.ts
@@ -481,10 +483,10 @@ const PermissionGrantSchema = z.object({
481
483
  * @description AWS-specific platform permission configuration
482
484
  */
483
485
  const AwsPlatformPermissionSchema = z.object({
484
- get binding() {
486
+ get "binding"() {
485
487
  return BindingConfigurationAwsBindingSpecSchema.describe("Generic binding configuration for permissions");
486
488
  },
487
- get grant() {
489
+ get "grant"() {
488
490
  return PermissionGrantSchema.describe("Grant permissions for a specific cloud platform");
489
491
  }
490
492
  }).describe("AWS-specific platform permission configuration");
@@ -505,8 +507,10 @@ const AzureCustomCertificateConfigSchema = z.object({ "keyVaultCertificateId": z
505
507
  * @description Azure management configuration extracted from stack settings
506
508
  */
507
509
  const AzureManagementConfigSchema = z.object({
508
- "managementPrincipalId": z.string().describe("The principal ID of the service principal in the management account"),
509
- "managingTenantId": z.string().describe("The managing Azure Tenant ID for cross-tenant access")
510
+ "managementPrincipalId": z.string().describe("Management service principal object ID for local development fallback").nullish(),
511
+ "managingTenantId": z.string().describe("The managing Azure Tenant ID for cross-tenant access"),
512
+ "oidcIssuer": z.string().describe("OIDC issuer URL for federated identity credential creation").nullish(),
513
+ "oidcSubject": z.string().describe("OIDC subject claim for federated identity credential creation").nullish()
510
514
  }).describe("Azure management configuration extracted from stack settings");
511
515
  //#endregion
512
516
  //#region src/generated/zod/binding-configuration-azure-binding-spec-schema.ts
@@ -518,8 +522,8 @@ const AzureManagementConfigSchema = z.object({
518
522
  * @description Generic binding configuration for permissions
519
523
  */
520
524
  const BindingConfigurationAzureBindingSpecSchema = z.object({
521
- "resource": z.object({ "scope": z.string().describe("Scope (subscription/resource group/resource level)") }).describe("Azure-specific binding specification").optional(),
522
- "stack": z.object({ "scope": z.string().describe("Scope (subscription/resource group/resource level)") }).describe("Azure-specific binding specification").optional()
525
+ "resource": z.optional(z.object({ "scope": z.string().describe("Scope (subscription/resource group/resource level)") }).describe("Azure-specific binding specification")),
526
+ "stack": z.optional(z.object({ "scope": z.string().describe("Scope (subscription/resource group/resource level)") }).describe("Azure-specific binding specification"))
523
527
  }).describe("Generic binding configuration for permissions");
524
528
  //#endregion
525
529
  //#region src/generated/zod/azure-platform-permission-schema.ts
@@ -531,10 +535,10 @@ const BindingConfigurationAzureBindingSpecSchema = z.object({
531
535
  * @description Azure-specific platform permission configuration
532
536
  */
533
537
  const AzurePlatformPermissionSchema = z.object({
534
- get binding() {
538
+ get "binding"() {
535
539
  return BindingConfigurationAzureBindingSpecSchema.describe("Generic binding configuration for permissions");
536
540
  },
537
- get grant() {
541
+ get "grant"() {
538
542
  return PermissionGrantSchema.describe("Grant permissions for a specific cloud platform");
539
543
  }
540
544
  }).describe("Azure-specific platform permission configuration");
@@ -561,18 +565,18 @@ const GcpConditionSchema = z.object({
561
565
  * @description Generic binding configuration for permissions
562
566
  */
563
567
  const BindingConfigurationGcpBindingSpecSchema = z.object({
564
- "resource": z.object({
565
- get condition() {
568
+ "resource": z.optional(z.object({
569
+ get "condition"() {
566
570
  return z.union([GcpConditionSchema, z.null()]).optional();
567
571
  },
568
572
  "scope": z.string().describe("Scope (project/resource level)")
569
- }).describe("GCP-specific binding specification").optional(),
570
- "stack": z.object({
571
- get condition() {
573
+ }).describe("GCP-specific binding specification")),
574
+ "stack": z.optional(z.object({
575
+ get "condition"() {
572
576
  return z.union([GcpConditionSchema, z.null()]).optional();
573
577
  },
574
578
  "scope": z.string().describe("Scope (project/resource level)")
575
- }).describe("GCP-specific binding specification").optional()
579
+ }).describe("GCP-specific binding specification"))
576
580
  }).describe("Generic binding configuration for permissions");
577
581
  //#endregion
578
582
  //#region src/generated/zod/presigned-operation-schema.ts
@@ -618,7 +622,7 @@ const PresignedRequestBackendSchema = z.union([z.object({
618
622
  "url": z.string()
619
623
  }), z.object({
620
624
  "filePath": z.string(),
621
- get operation() {
625
+ get "operation"() {
622
626
  return LocalOperationSchema.describe("Local filesystem operations");
623
627
  },
624
628
  "type": z.enum(["local"])
@@ -633,11 +637,11 @@ const PresignedRequestBackendSchema = z.union([z.object({
633
637
  * @description A presigned request that can be serialized, stored, and executed later.\nHides implementation details for different storage backends.
634
638
  */
635
639
  const PresignedRequestSchema = z.object({
636
- get backend() {
640
+ get "backend"() {
637
641
  return PresignedRequestBackendSchema.describe("Storage backend representation for different presigned request types");
638
642
  },
639
- "expiration": z.string().datetime().describe("When this presigned request expires"),
640
- get operation() {
643
+ "expiration": z.iso.datetime().describe("When this presigned request expires"),
644
+ get "operation"() {
641
645
  return PresignedOperationSchema.describe("The type of operation a presigned request performs");
642
646
  },
643
647
  "path": z.string().describe("The path this request operates on")
@@ -656,11 +660,11 @@ const BodySpecSchema = z.union([z.object({
656
660
  "mode": z.enum(["inline"])
657
661
  }), z.object({
658
662
  "mode": z.enum(["storage"]),
659
- "size": z.int().min(0).describe("Size of the body in bytes").optional().nullable(),
660
- get storageGetRequest() {
663
+ "size": z.int().min(0).describe("Size of the body in bytes").nullish(),
664
+ get "storageGetRequest"() {
661
665
  return z.union([PresignedRequestSchema, z.null()]).optional();
662
666
  },
663
- "storagePutUsed": z.boolean().describe("Indicates storage upload was used for response submission").optional().nullable()
667
+ "storagePutUsed": z.boolean().describe("Indicates storage upload was used for response submission").nullish()
664
668
  })]).describe("Body specification supporting inline and storage modes");
665
669
  //#endregion
666
670
  //#region src/generated/zod/compute-type-schema.ts
@@ -688,10 +692,10 @@ const ComputeTypeSchema = z.enum([
688
692
  */
689
693
  const MonitoringConfigSchema = z.object({
690
694
  "endpoint": z.string().describe("The monitoring endpoint URL (e.g., \"https://otel-collector.example.com:4318\")"),
691
- "headers": z.object({}).catchall(z.string()).describe("Optional HTTP headers to include in requests to the monitoring endpoint").optional(),
692
- "logsUri": z.string().describe("Optional URI path for logs (defaults to \"/v1/logs\")").optional(),
693
- "tlsEnabled": z.boolean().describe("Whether to enable TLS/HTTPS (defaults to true)").optional(),
694
- "tlsVerify": z.boolean().describe("Whether to verify TLS certificates (defaults to true)").optional()
695
+ "headers": z.optional(z.object({}).catchall(z.string()).describe("Optional HTTP headers to include in requests to the monitoring endpoint")),
696
+ "logsUri": z.optional(z.string().describe("Optional URI path for logs (defaults to \"/v1/logs\")")),
697
+ "tlsEnabled": z.optional(z.boolean().describe("Whether to enable TLS/HTTPS (defaults to true)")),
698
+ "tlsVerify": z.optional(z.boolean().describe("Whether to verify TLS certificates (defaults to true)"))
695
699
  }).describe("Configuration for monitoring and observability.");
696
700
  //#endregion
697
701
  //#region src/generated/zod/build-config-schema.ts
@@ -703,12 +707,12 @@ const MonitoringConfigSchema = z.object({
703
707
  * @description Configuration for starting a build.
704
708
  */
705
709
  const BuildConfigSchema = z.object({
706
- get computeType() {
710
+ get "computeType"() {
707
711
  return ComputeTypeSchema.describe("Compute type for build resources.").optional();
708
712
  },
709
- "environment": z.object({}).catchall(z.string()).describe("Key-value pairs to set as environment variables for the build.").optional(),
713
+ "environment": z.optional(z.object({}).catchall(z.string()).describe("Key-value pairs to set as environment variables for the build.")),
710
714
  "image": z.string().describe("Base container image to use for the build environment."),
711
- get monitoring() {
715
+ get "monitoring"() {
712
716
  return z.union([MonitoringConfigSchema, z.null()]).optional();
713
717
  },
714
718
  "script": z.string().describe("Bash script to execute for the build."),
@@ -734,12 +738,12 @@ const BuildOutputsSchema = z.object({ "identifier": z.string().describe("The pla
734
738
  * @description Represents a build resource that executes bash scripts to build code.\nBuilds are designed to be stateless and can be triggered on-demand to compile,\ntest, or package application code.
735
739
  */
736
740
  const BuildSchema = z.object({
737
- get computeType() {
741
+ get "computeType"() {
738
742
  return ComputeTypeSchema.describe("Compute type for build resources.").optional();
739
743
  },
740
- "environment": z.object({}).catchall(z.string()).describe("Key-value pairs to set as environment variables for the build.").optional(),
744
+ "environment": z.optional(z.object({}).catchall(z.string()).describe("Key-value pairs to set as environment variables for the build.")),
741
745
  "id": z.string().describe("Identifier for the build resource. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]).\nMaximum 64 characters."),
742
- get links() {
746
+ get "links"() {
743
747
  return z.array(ResourceRefSchema.describe("New ResourceRef that works with any resource type.\nThis can eventually replace the enum-based ResourceRef for full extensibility.")).describe("List of resource references this build depends on.");
744
748
  },
745
749
  "permissions": z.string().describe("Permission profile name that defines the permissions granted to this build.\nThis references a profile defined in the stack's permission definitions.")
@@ -771,13 +775,13 @@ const BuildStatusSchema = z.enum([
771
775
  * @description Command response from deployment
772
776
  */
773
777
  const CommandResponseSchema = z.union([z.object({
774
- get response() {
778
+ get "response"() {
775
779
  return BodySpecSchema.describe("Body specification supporting inline and storage modes");
776
780
  },
777
781
  "status": z.enum(["success"])
778
782
  }), z.object({
779
783
  "code": z.string().describe("Error code"),
780
- "details": z.string().describe("Optional additional details").optional().nullable(),
784
+ "details": z.string().describe("Optional additional details").nullish(),
781
785
  "message": z.string().describe("Error message"),
782
786
  "status": z.enum(["error"])
783
787
  })]).describe("Command response from deployment");
@@ -788,7 +792,7 @@ const CommandResponseSchema = z.union([z.object({
788
792
  * Do not edit manually.
789
793
  */
790
794
  /**
791
- * @description Command states in the ARC protocol lifecycle
795
+ * @description Command states in the Commands protocol lifecycle
792
796
  */
793
797
  const CommandStateSchema = z.enum([
794
798
  "PENDING_UPLOAD",
@@ -797,7 +801,7 @@ const CommandStateSchema = z.enum([
797
801
  "SUCCEEDED",
798
802
  "FAILED",
799
803
  "EXPIRED"
800
- ]).describe("Command states in the ARC protocol lifecycle");
804
+ ]).describe("Command states in the Commands protocol lifecycle");
801
805
  //#endregion
802
806
  //#region src/generated/zod/command-status-response-schema.ts
803
807
  /**
@@ -810,11 +814,11 @@ const CommandStateSchema = z.enum([
810
814
  const CommandStatusResponseSchema = z.object({
811
815
  "attempt": z.int().min(0).describe("Current attempt number"),
812
816
  "commandId": z.string().describe("Command identifier"),
813
- get response() {
817
+ get "response"() {
814
818
  return z.union([CommandResponseSchema, z.null()]).optional();
815
819
  },
816
- get state() {
817
- return CommandStateSchema.describe("Command states in the ARC protocol lifecycle");
820
+ get "state"() {
821
+ return CommandStateSchema.describe("Command states in the Commands protocol lifecycle");
818
822
  }
819
823
  }).describe("Response to status queries");
820
824
  //#endregion
@@ -829,11 +833,11 @@ const CommandStatusResponseSchema = z.object({
829
833
  const ContainerAutoscalingSchema = z.object({
830
834
  "desired": z.int().min(0).describe("Initial desired replicas at container creation"),
831
835
  "max": z.int().min(0).describe("Maximum replicas under load"),
832
- "maxHttpP95LatencyMs": z.number().describe("Maximum acceptable p95 HTTP latency in milliseconds").optional().nullable(),
836
+ "maxHttpP95LatencyMs": z.number().describe("Maximum acceptable p95 HTTP latency in milliseconds").nullish(),
833
837
  "min": z.int().min(0).describe("Minimum replicas (always running)"),
834
- "targetCpuPercent": z.number().describe("Target CPU utilization percentage for scaling (default: 70%)").optional().nullable(),
835
- "targetHttpInFlightPerReplica": z.int().min(0).describe("Target in-flight HTTP requests per replica").optional().nullable(),
836
- "targetMemoryPercent": z.number().describe("Target memory utilization percentage for scaling (default: 80%)").optional().nullable()
838
+ "targetCpuPercent": z.number().describe("Target CPU utilization percentage for scaling (default: 70%)").nullish(),
839
+ "targetHttpInFlightPerReplica": z.int().min(0).describe("Target in-flight HTTP requests per replica").nullish(),
840
+ "targetMemoryPercent": z.number().describe("Target memory utilization percentage for scaling (default: 80%)").nullish()
837
841
  }).describe("Autoscaling configuration for stateless containers.");
838
842
  //#endregion
839
843
  //#region src/generated/zod/toolchain-config-schema.ts
@@ -850,13 +854,13 @@ const ToolchainConfigSchema = z.union([
850
854
  "type": z.enum(["rust"])
851
855
  }),
852
856
  z.object({
853
- "binaryName": z.string().describe("Name of the compiled binary (defaults to package.json name if not specified)").optional().nullable(),
857
+ "binaryName": z.string().describe("Name of the compiled binary (defaults to package.json name if not specified)").nullish(),
854
858
  "type": z.enum(["typescript"])
855
859
  }),
856
860
  z.object({
857
- "buildArgs": z.object({}).catchall(z.string()).describe("Build arguments for docker build").optional().nullable(),
858
- "dockerfile": z.string().describe("Dockerfile path relative to src (default: \"Dockerfile\")").optional().nullable(),
859
- "target": z.string().describe("Multi-stage build target").optional().nullable(),
861
+ "buildArgs": z.object({}).catchall(z.string()).describe("Build arguments for docker build").nullish(),
862
+ "dockerfile": z.string().describe("Dockerfile path relative to src (default: \"Dockerfile\")").nullish(),
863
+ "target": z.string().describe("Multi-stage build target").nullish(),
860
864
  "type": z.enum(["docker"])
861
865
  })
862
866
  ]).describe("Configuration for different programming language toolchains.\nEach toolchain provides type-safe build configuration and auto-detection capabilities.");
@@ -874,7 +878,7 @@ const ContainerCodeSchema = z.union([z.object({
874
878
  "type": z.enum(["image"])
875
879
  }), z.object({
876
880
  "src": z.string().describe("The source directory to build from"),
877
- get toolchain() {
881
+ get "toolchain"() {
878
882
  return ToolchainConfigSchema.describe("Configuration for different programming language toolchains.\nEach toolchain provides type-safe build configuration and auto-detection capabilities.");
879
883
  },
880
884
  "type": z.enum(["source"])
@@ -918,7 +922,7 @@ const ContainerStatusSchema = z.enum([
918
922
  */
919
923
  const LoadBalancerEndpointSchema = z.object({
920
924
  "dnsName": z.string().describe("The DNS name of the load balancer endpoint (e.g., ALB DNS, API Gateway domain)."),
921
- "hostedZoneId": z.string().describe("AWS Route53 hosted zone ID (for ALIAS records). Only set on AWS.").optional().nullable()
925
+ "hostedZoneId": z.string().describe("AWS Route53 hosted zone ID (for ALIAS records). Only set on AWS.").nullish()
922
926
  }).describe("Load balancer endpoint information for DNS management.\nThis is optional metadata used by the DNS controller to create domain mappings.");
923
927
  //#endregion
924
928
  //#region src/generated/zod/replica-status-schema.ts
@@ -930,10 +934,10 @@ const LoadBalancerEndpointSchema = z.object({
930
934
  * @description Status of a single container replica.
931
935
  */
932
936
  const ReplicaStatusSchema = z.object({
933
- "containerIp": z.string().describe("Container IP address (for service discovery)").optional().nullable(),
937
+ "containerIp": z.string().describe("Container IP address (for service discovery)").nullish(),
934
938
  "healthy": z.boolean().describe("Whether the replica is healthy"),
935
- "machineId": z.string().describe("Machine ID the replica is running on").optional().nullable(),
936
- "ordinal": z.int().min(0).describe("Ordinal (for stateful containers)").optional().nullable(),
939
+ "machineId": z.string().describe("Machine ID the replica is running on").nullish(),
940
+ "ordinal": z.int().min(0).describe("Ordinal (for stateful containers)").nullish(),
937
941
  "replicaId": z.string().describe("Replica ID (e.g., \"api-0\", \"api-1\")")
938
942
  }).describe("Status of a single container replica.");
939
943
  //#endregion
@@ -949,17 +953,17 @@ const ContainerOutputsSchema = z.object({
949
953
  "currentReplicas": z.int().min(0).describe("Number of current replicas"),
950
954
  "desiredReplicas": z.int().min(0).describe("Desired number of replicas"),
951
955
  "internalDns": z.string().describe("Internal DNS name (e.g., \"api.svc\")"),
952
- get loadBalancerEndpoint() {
956
+ get "loadBalancerEndpoint"() {
953
957
  return z.union([LoadBalancerEndpointSchema, z.null()]).optional();
954
958
  },
955
959
  "name": z.string().describe("Container name in Horizon"),
956
- get replicas() {
960
+ get "replicas"() {
957
961
  return z.array(ReplicaStatusSchema.describe("Status of a single container replica.")).describe("Status of each replica");
958
962
  },
959
- get status() {
963
+ get "status"() {
960
964
  return ContainerStatusSchema.describe("Container status in Horizon.");
961
965
  },
962
- "url": z.string().describe("Public URL (if exposed publicly)").optional().nullable()
966
+ "url": z.string().describe("Public URL (if exposed publicly)").nullish()
963
967
  }).describe("Outputs generated by a successfully provisioned Container.");
964
968
  //#endregion
965
969
  //#region src/generated/zod/expose-protocol-schema.ts
@@ -981,7 +985,7 @@ const ExposeProtocolSchema = z.enum(["http", "tcp"]).describe("Protocol for expo
981
985
  * @description Container port configuration.
982
986
  */
983
987
  const ContainerPortSchema = z.object({
984
- get expose() {
988
+ get "expose"() {
985
989
  return z.union([ExposeProtocolSchema, z.null()]).optional();
986
990
  },
987
991
  "port": z.int().min(0).describe("Port number")
@@ -996,11 +1000,11 @@ const ContainerPortSchema = z.object({
996
1000
  * @description HTTP health check configuration.
997
1001
  */
998
1002
  const HealthCheckSchema = z.object({
999
- "failureThreshold": z.int().min(0).describe("Number of consecutive failures before marking replica unhealthy").optional(),
1000
- "method": z.string().describe("HTTP method to use for health check").optional(),
1001
- "path": z.string().describe("HTTP endpoint path to check (e.g., \"/health\", \"/ready\")").optional(),
1002
- "port": z.int().min(0).describe("Port to check (defaults to container port if not specified)").optional().nullable(),
1003
- "timeoutSeconds": z.int().min(0).describe("Request timeout in seconds (1-5)").optional()
1003
+ "failureThreshold": z.optional(z.int().min(0).describe("Number of consecutive failures before marking replica unhealthy")),
1004
+ "method": z.optional(z.string().describe("HTTP method to use for health check")),
1005
+ "path": z.optional(z.string().describe("HTTP endpoint path to check (e.g., \"/health\", \"/ready\")")),
1006
+ "port": z.int().min(0).describe("Port to check (defaults to container port if not specified)").nullish(),
1007
+ "timeoutSeconds": z.optional(z.int().min(0).describe("Request timeout in seconds (1-5)"))
1004
1008
  }).describe("HTTP health check configuration.");
1005
1009
  //#endregion
1006
1010
  //#region src/generated/zod/persistent-storage-schema.ts
@@ -1012,11 +1016,11 @@ const HealthCheckSchema = z.object({
1012
1016
  * @description Persistent storage configuration for stateful containers.
1013
1017
  */
1014
1018
  const PersistentStorageSchema = z.object({
1015
- "iops": z.int().min(0).describe("IOPS (for storage types that support it)").optional().nullable(),
1019
+ "iops": z.int().min(0).describe("IOPS (for storage types that support it)").nullish(),
1016
1020
  "mountPath": z.string().describe("Mount path inside the container"),
1017
1021
  "size": z.string().describe("Storage size (e.g., \"100Gi\", \"500Gi\")"),
1018
- "storageType": z.string().describe("Storage type (e.g., \"gp3\", \"io2\" for AWS, \"pd-ssd\" for GCP)").optional().nullable(),
1019
- "throughput": z.int().min(0).describe("Throughput in MiB/s (for storage types that support it)").optional().nullable()
1022
+ "storageType": z.string().describe("Storage type (e.g., \"gp3\", \"io2\" for AWS, \"pd-ssd\" for GCP)").nullish(),
1023
+ "throughput": z.int().min(0).describe("Throughput in MiB/s (for storage types that support it)").nullish()
1020
1024
  }).describe("Persistent storage configuration for stateful containers.");
1021
1025
  //#endregion
1022
1026
  //#region src/generated/zod/resource-spec-schema.ts
@@ -1041,42 +1045,42 @@ const ResourceSpecSchema = z.object({
1041
1045
  * @description Container resource for running long-running container workloads.\n\nA Container defines a deployable unit that runs on a ContainerCluster.\nHorizon handles scheduling replicas across machines, autoscaling based on\nvarious metrics, and service discovery.\n\n## Example\n\n```rust\nuse alien_core::{Container, ContainerCode, ResourceSpec, ContainerAutoscaling, ContainerPort, ExposeProtocol};\n\nlet container = Container::new(\"api\".to_string())\n .cluster(\"compute\".to_string())\n .code(ContainerCode::Image {\n image: \"myapp:latest\".to_string(),\n })\n .cpu(ResourceSpec { min: \"0.5\".to_string(), desired: \"1\".to_string() })\n .memory(ResourceSpec { min: \"512Mi\".to_string(), desired: \"1Gi\".to_string() })\n .port(8080)\n .expose_port(8080, ExposeProtocol::Http)\n .autoscaling(ContainerAutoscaling {\n min: 2,\n desired: 3,\n max: 10,\n target_cpu_percent: Some(70.0),\n target_memory_percent: None,\n target_http_in_flight_per_replica: Some(100),\n max_http_p95_latency_ms: None,\n })\n .permissions(\"container-execution\".to_string())\n .build();\n```
1042
1046
  */
1043
1047
  const ContainerSchema = z.object({
1044
- get autoscaling() {
1048
+ get "autoscaling"() {
1045
1049
  return z.union([ContainerAutoscalingSchema, z.null()]).optional();
1046
1050
  },
1047
- "cluster": z.string().describe("ContainerCluster resource ID that this container runs on.\nIf None, will be auto-assigned by ContainerClusterMutation at deployment time.").optional().nullable(),
1048
- get code() {
1051
+ "cluster": z.string().describe("ContainerCluster resource ID that this container runs on.\nIf None, will be auto-assigned by ContainerClusterMutation at deployment time.").nullish(),
1052
+ get "code"() {
1049
1053
  return ContainerCodeSchema.describe("Specifies the source of the container's executable code.");
1050
1054
  },
1051
- "command": z.array(z.string()).describe("Command to override image default").optional().nullable(),
1052
- get cpu() {
1055
+ "command": z.array(z.string()).describe("Command to override image default").nullish(),
1056
+ get "cpu"() {
1053
1057
  return ResourceSpecSchema.describe("Resource specification with min/desired values.");
1054
1058
  },
1055
- "environment": z.object({}).catchall(z.string()).describe("Environment variables").optional(),
1056
- "ephemeralStorage": z.string().describe("Ephemeral storage requirement (e.g., \"10Gi\")").optional().nullable(),
1057
- get gpu() {
1059
+ "environment": z.optional(z.object({}).catchall(z.string()).describe("Environment variables")),
1060
+ "ephemeralStorage": z.string().describe("Ephemeral storage requirement (e.g., \"10Gi\")").nullish(),
1061
+ get "gpu"() {
1058
1062
  return z.union([ContainerGpuSpecSchema, z.null()]).optional();
1059
1063
  },
1060
- get healthCheck() {
1064
+ get "healthCheck"() {
1061
1065
  return z.union([HealthCheckSchema, z.null()]).optional();
1062
1066
  },
1063
1067
  "id": z.string().describe("Unique identifier for the container.\nMust be DNS-compatible: lowercase alphanumeric with hyphens."),
1064
- get links() {
1068
+ get "links"() {
1065
1069
  return z.array(ResourceRefSchema.describe("New ResourceRef that works with any resource type.\nThis can eventually replace the enum-based ResourceRef for full extensibility.")).describe("Resource links (dependencies)");
1066
1070
  },
1067
- get memory() {
1071
+ get "memory"() {
1068
1072
  return ResourceSpecSchema.describe("Resource specification with min/desired values.");
1069
1073
  },
1070
1074
  "permissions": z.string().describe("Permission profile name"),
1071
- get persistentStorage() {
1075
+ get "persistentStorage"() {
1072
1076
  return z.union([PersistentStorageSchema, z.null()]).optional();
1073
1077
  },
1074
- "pool": z.string().describe("Capacity group to run on (must exist in the cluster)\nIf not specified, containers are scheduled to any available group.").optional().nullable(),
1075
- get ports() {
1078
+ "pool": z.string().describe("Capacity group to run on (must exist in the cluster)\nIf not specified, containers are scheduled to any available group.").nullish(),
1079
+ get "ports"() {
1076
1080
  return z.array(ContainerPortSchema.describe("Container port configuration.")).describe("Container ports to expose (at least one required)");
1077
1081
  },
1078
- "replicas": z.int().min(0).describe("Fixed replica count (for stateful containers or stateless without autoscaling)").optional().nullable(),
1079
- "stateful": z.boolean().describe("Whether container is stateful (gets stable ordinals, optional persistent volumes)").optional()
1082
+ "replicas": z.int().min(0).describe("Fixed replica count (for stateful containers or stateless without autoscaling)").nullish(),
1083
+ "stateful": z.optional(z.boolean().describe("Whether container is stateful (gets stable ordinals, optional persistent volumes)"))
1080
1084
  }).describe("Container resource for running long-running container workloads.\n\nA Container defines a deployable unit that runs on a ContainerCluster.\nHorizon handles scheduling replicas across machines, autoscaling based on\nvarious metrics, and service discovery.\n\n## Example\n\n```rust\nuse alien_core::{Container, ContainerCode, ResourceSpec, ContainerAutoscaling, ContainerPort, ExposeProtocol};\n\nlet container = Container::new(\"api\".to_string())\n .cluster(\"compute\".to_string())\n .code(ContainerCode::Image {\n image: \"myapp:latest\".to_string(),\n })\n .cpu(ResourceSpec { min: \"0.5\".to_string(), desired: \"1\".to_string() })\n .memory(ResourceSpec { min: \"512Mi\".to_string(), desired: \"1Gi\".to_string() })\n .port(8080)\n .expose_port(8080, ExposeProtocol::Http)\n .autoscaling(ContainerAutoscaling {\n min: 2,\n desired: 3,\n max: 10,\n target_cpu_percent: Some(70.0),\n target_memory_percent: None,\n target_http_in_flight_per_replica: Some(100),\n max_http_p95_latency_ms: None,\n })\n .permissions(\"container-execution\".to_string())\n .build();\n```");
1081
1085
  //#endregion
1082
1086
  //#region src/generated/zod/create-command-request-schema.ts
@@ -1085,17 +1089,17 @@ const ContainerSchema = z.object({
1085
1089
  * Do not edit manually.
1086
1090
  */
1087
1091
  /**
1088
- * @description Request to create a new ARC command
1092
+ * @description Request to create a new command
1089
1093
  */
1090
1094
  const CreateCommandRequestSchema = z.object({
1091
1095
  "command": z.string().describe("Command name (e.g., \"generate-report\", \"sync-data\")"),
1092
- "deadline": z.string().datetime().describe("Optional deadline for command completion").optional().nullable(),
1096
+ "deadline": z.iso.datetime().describe("Optional deadline for command completion").nullish(),
1093
1097
  "deploymentId": z.string().describe("Target deployment identifier"),
1094
- "idempotencyKey": z.string().describe("Optional idempotency key").optional().nullable(),
1095
- get params() {
1098
+ "idempotencyKey": z.string().describe("Optional idempotency key").nullish(),
1099
+ get "params"() {
1096
1100
  return BodySpecSchema.describe("Body specification supporting inline and storage modes");
1097
1101
  }
1098
- }).describe("Request to create a new ARC command");
1102
+ }).describe("Request to create a new command");
1099
1103
  //#endregion
1100
1104
  //#region src/generated/zod/storage-upload-schema.ts
1101
1105
  /**
@@ -1106,8 +1110,8 @@ const CreateCommandRequestSchema = z.object({
1106
1110
  * @description Storage upload information
1107
1111
  */
1108
1112
  const StorageUploadSchema = z.object({
1109
- "expiresAt": z.string().datetime().describe("Expiration time for upload URL"),
1110
- get putRequest() {
1113
+ "expiresAt": z.iso.datetime().describe("Expiration time for upload URL"),
1114
+ get "putRequest"() {
1111
1115
  return PresignedRequestSchema.describe("A presigned request that can be serialized, stored, and executed later.\nHides implementation details for different storage backends.");
1112
1116
  }
1113
1117
  }).describe("Storage upload information");
@@ -1124,10 +1128,10 @@ const CreateCommandResponseSchema = z.object({
1124
1128
  "commandId": z.string().describe("Unique command identifier"),
1125
1129
  "inlineAllowedUpTo": z.int().min(0).describe("Maximum inline body size allowed"),
1126
1130
  "next": z.string().describe("Next action for client: \"upload\" | \"poll\""),
1127
- get state() {
1128
- return CommandStateSchema.describe("Command states in the ARC protocol lifecycle");
1131
+ get "state"() {
1132
+ return CommandStateSchema.describe("Command states in the Commands protocol lifecycle");
1129
1133
  },
1130
- get storageUpload() {
1134
+ get "storageUpload"() {
1131
1135
  return z.union([StorageUploadSchema, z.null()]).optional();
1132
1136
  }
1133
1137
  }).describe("Response to command creation");
@@ -1148,13 +1152,13 @@ const GcpCustomCertificateConfigSchema = z.object({ "certificateName": z.string(
1148
1152
  * @description Platform-specific certificate references for custom domains.
1149
1153
  */
1150
1154
  const CustomCertificateConfigSchema = z.object({
1151
- get aws() {
1155
+ get "aws"() {
1152
1156
  return z.union([AwsCustomCertificateConfigSchema, z.null()]).optional();
1153
1157
  },
1154
- get azure() {
1158
+ get "azure"() {
1155
1159
  return z.union([AzureCustomCertificateConfigSchema, z.null()]).optional();
1156
1160
  },
1157
- get gcp() {
1161
+ get "gcp"() {
1158
1162
  return z.union([GcpCustomCertificateConfigSchema, z.null()]).optional();
1159
1163
  }
1160
1164
  }).describe("Platform-specific certificate references for custom domains.");
@@ -1168,7 +1172,7 @@ const CustomCertificateConfigSchema = z.object({
1168
1172
  * @description Custom domain configuration for a single resource.
1169
1173
  */
1170
1174
  const CustomDomainConfigSchema = z.object({
1171
- get certificate() {
1175
+ get "certificate"() {
1172
1176
  return CustomCertificateConfigSchema.describe("Platform-specific certificate references for custom domains.");
1173
1177
  },
1174
1178
  "domain": z.string().describe("Fully qualified domain name to use.")
@@ -1208,9 +1212,9 @@ const DevStatusStateSchema = z.enum([
1208
1212
  * @description Overall status of the dev server
1209
1213
  */
1210
1214
  const DevStatusSchema = z.object({
1211
- "agents": z.object({}).catchall(AgentStatusSchema.describe("Status of a single agent in the dev server")).describe("Agents being managed by this dev server (keyed by agent name)"),
1215
+ "agents": z.object({}).catchall(z.lazy(() => AgentStatusSchema).describe("Status of a single agent in the dev server")).describe("Agents being managed by this dev server (keyed by agent name)"),
1212
1216
  "apiUrl": z.string().describe("Dev server API URL (e.g., http://localhost:9090)"),
1213
- get error() {
1217
+ get "error"() {
1214
1218
  return z.union([AlienErrorSchema, z.null()]).optional();
1215
1219
  },
1216
1220
  "lastUpdated": z.string().describe("ISO 8601 timestamp of last status update"),
@@ -1219,7 +1223,7 @@ const DevStatusSchema = z.object({
1219
1223
  "stackId": z.string().describe("Stack ID (always \"dev\" for dev server)"),
1220
1224
  "startedAt": z.string().describe("ISO 8601 timestamp when dev server started"),
1221
1225
  "stateDir": z.string().describe("Path to state directory"),
1222
- get status() {
1226
+ get "status"() {
1223
1227
  return DevStatusStateSchema.describe("Overall dev server status");
1224
1228
  }
1225
1229
  }).describe("Overall status of the dev server");
@@ -1232,7 +1236,7 @@ const DevStatusSchema = z.object({
1232
1236
  /**
1233
1237
  * @description Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains.
1234
1238
  */
1235
- const DomainSettingsSchema = z.object({ "customDomains": z.object({}).catchall(CustomDomainConfigSchema.describe("Custom domain configuration for a single resource.")).describe("Custom domain configuration per resource ID.").optional().nullable() }).describe("Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains.");
1239
+ const DomainSettingsSchema = z.object({ "customDomains": z.object({}).catchall(z.lazy(() => CustomDomainConfigSchema).describe("Custom domain configuration for a single resource.")).describe("Custom domain configuration per resource ID.").nullish() }).describe("Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains.");
1236
1240
  //#endregion
1237
1241
  //#region src/generated/zod/response-handling-schema.ts
1238
1242
  /**
@@ -1244,7 +1248,7 @@ const DomainSettingsSchema = z.object({ "customDomains": z.object({}).catchall(C
1244
1248
  */
1245
1249
  const ResponseHandlingSchema = z.object({
1246
1250
  "maxInlineBytes": z.int().min(0).describe("Maximum response body size that can be submitted inline"),
1247
- get storageUploadRequest() {
1251
+ get "storageUploadRequest"() {
1248
1252
  return PresignedRequestSchema.describe("A presigned request that can be serialized, stored, and executed later.\nHides implementation details for different storage backends.");
1249
1253
  },
1250
1254
  "submitResponseUrl": z.string().describe("URL where deployments submit responses")
@@ -1256,22 +1260,22 @@ const ResponseHandlingSchema = z.object({
1256
1260
  * Do not edit manually.
1257
1261
  */
1258
1262
  /**
1259
- * @description ARC envelope sent to deployments
1263
+ * @description Commands envelope sent to deployments
1260
1264
  */
1261
1265
  const EnvelopeSchema = z.object({
1262
1266
  "attempt": z.int().min(0).describe("Attempt number (starts at 1)"),
1263
1267
  "command": z.string().describe("Command name (e.g., \"generate-report\", \"sync-data\")"),
1264
1268
  "commandId": z.string().describe("Unique command identifier"),
1265
- "deadline": z.string().datetime().describe("Command deadline").optional().nullable(),
1269
+ "deadline": z.iso.datetime().describe("Command deadline").nullish(),
1266
1270
  "deploymentId": z.string().describe("Target deployment identifier"),
1267
- get params() {
1271
+ get "params"() {
1268
1272
  return BodySpecSchema.describe("Body specification supporting inline and storage modes");
1269
1273
  },
1270
1274
  "protocol": z.string().describe("Protocol version identifier"),
1271
- get responseHandling() {
1275
+ get "responseHandling"() {
1272
1276
  return ResponseHandlingSchema.describe("Response handling configuration for deployments");
1273
1277
  }
1274
- }).describe("ARC envelope sent to deployments");
1278
+ }).describe("Commands envelope sent to deployments");
1275
1279
  //#endregion
1276
1280
  //#region src/generated/zod/event-state-schema.ts
1277
1281
  /**
@@ -1282,7 +1286,7 @@ const EnvelopeSchema = z.object({
1282
1286
  * @description Represents the state of an event
1283
1287
  */
1284
1288
  const EventStateSchema = z.union([
1285
- z.object({ "failed": z.object({ get error() {
1289
+ z.object({ "failed": z.object({ get "error"() {
1286
1290
  return z.union([AlienErrorSchema, z.null()]).optional();
1287
1291
  } }).describe("Event failed with an error") }),
1288
1292
  z.enum(["none"]),
@@ -1300,32 +1304,32 @@ const EventStateSchema = z.union([
1300
1304
  */
1301
1305
  const EventChangeSchema = z.union([
1302
1306
  z.object({
1303
- "createdAt": z.string().datetime().describe("Timestamp when the event was created"),
1304
- get event() {
1307
+ "createdAt": z.iso.datetime().describe("Timestamp when the event was created"),
1308
+ get "event"() {
1305
1309
  return AlienEventSchema.describe("Represents all possible events in the Alien system");
1306
1310
  },
1307
1311
  "id": z.string().describe("Unique identifier for the event"),
1308
- "parentId": z.string().describe("Parent event ID if this is a child event").optional().nullable(),
1309
- get state() {
1312
+ "parentId": z.string().describe("Parent event ID if this is a child event").nullish(),
1313
+ get "state"() {
1310
1314
  return EventStateSchema.describe("Represents the state of an event");
1311
1315
  },
1312
1316
  "type": z.enum(["created"])
1313
1317
  }),
1314
1318
  z.object({
1315
- get event() {
1319
+ get "event"() {
1316
1320
  return AlienEventSchema.describe("Represents all possible events in the Alien system");
1317
1321
  },
1318
1322
  "id": z.string().describe("Unique identifier for the event"),
1319
1323
  "type": z.enum(["updated"]),
1320
- "updatedAt": z.string().datetime().describe("Timestamp when the event was updated")
1324
+ "updatedAt": z.iso.datetime().describe("Timestamp when the event was updated")
1321
1325
  }),
1322
1326
  z.object({
1323
1327
  "id": z.string().describe("Unique identifier for the event"),
1324
- get newState() {
1328
+ get "newState"() {
1325
1329
  return EventStateSchema.describe("Represents the state of an event");
1326
1330
  },
1327
1331
  "type": z.enum(["stateChanged"]),
1328
- "updatedAt": z.string().datetime().describe("Timestamp when the state changed")
1332
+ "updatedAt": z.iso.datetime().describe("Timestamp when the state changed")
1329
1333
  })
1330
1334
  ]).describe("Represents a change to an event");
1331
1335
  //#endregion
@@ -1342,7 +1346,7 @@ const FunctionCodeSchema = z.union([z.object({
1342
1346
  "type": z.enum(["image"])
1343
1347
  }), z.object({
1344
1348
  "src": z.string().describe("The source directory to build from"),
1345
- get toolchain() {
1349
+ get "toolchain"() {
1346
1350
  return ToolchainConfigSchema.describe("Configuration for different programming language toolchains.\nEach toolchain provides type-safe build configuration and auto-detection capabilities.");
1347
1351
  },
1348
1352
  "type": z.enum(["source"])
@@ -1357,12 +1361,13 @@ const FunctionCodeSchema = z.union([z.object({
1357
1361
  * @description Outputs generated by a successfully provisioned Function.
1358
1362
  */
1359
1363
  const FunctionOutputsSchema = z.object({
1364
+ "commandsPushTarget": z.string().describe("Push target for commands delivery. Platform-specific:\n- AWS: Lambda function name or ARN\n- GCP: Full Pub/Sub topic path (projects/{project}/topics/{topic})\n- Azure: Service Bus \"{namespace}/{queue}\"").nullish(),
1360
1365
  "functionName": z.string().describe("The name of the function."),
1361
- "identifier": z.string().describe("The ARN or platform-specific identifier.").optional().nullable(),
1362
- get loadBalancerEndpoint() {
1366
+ "identifier": z.string().describe("The ARN or platform-specific identifier.").nullish(),
1367
+ get "loadBalancerEndpoint"() {
1363
1368
  return z.union([LoadBalancerEndpointSchema, z.null()]).optional();
1364
1369
  },
1365
- "url": z.string().describe("The invocation URL (if applicable, e.g., for public ingress or specific platforms).").optional().nullable()
1370
+ "url": z.string().describe("The invocation URL (if applicable, e.g., for public ingress or specific platforms).").nullish()
1366
1371
  }).describe("Outputs generated by a successfully provisioned Function.");
1367
1372
  //#endregion
1368
1373
  //#region src/generated/zod/function-trigger-schema.ts
@@ -1375,20 +1380,20 @@ const FunctionOutputsSchema = z.object({
1375
1380
  */
1376
1381
  const FunctionTriggerSchema = z.union([
1377
1382
  z.object({
1378
- get queue() {
1383
+ get "queue"() {
1379
1384
  return ResourceRefSchema.describe("New ResourceRef that works with any resource type.\nThis can eventually replace the enum-based ResourceRef for full extensibility.");
1380
1385
  },
1381
1386
  "type": z.enum(["queue"])
1382
1387
  }),
1383
1388
  z.object({
1384
1389
  "events": z.array(z.string()).describe("Events to trigger on (e.g., [\"created\", \"deleted\"])"),
1385
- get storage() {
1390
+ get "storage"() {
1386
1391
  return ResourceRefSchema.describe("New ResourceRef that works with any resource type.\nThis can eventually replace the enum-based ResourceRef for full extensibility.");
1387
1392
  },
1388
1393
  "type": z.enum(["storage"])
1389
1394
  }),
1390
1395
  z.object({
1391
- "cron": z.string().describe("Cron expression for scheduling"),
1396
+ "cron": z.string().describe("Cron expression for scheduling (standard 5-field unix cron)"),
1392
1397
  "type": z.enum(["schedule"])
1393
1398
  })
1394
1399
  ]).describe("Defines what triggers a function execution");
@@ -1430,10 +1435,10 @@ const HttpMethodSchema = z.enum([
1430
1435
  * @description Configuration for HTTP-based readiness probe.\nThis probe is executed after function provisioning/update to verify the function is ready to serve traffic.\nOnly works with functions that have Public ingress.
1431
1436
  */
1432
1437
  const ReadinessProbeSchema = z.object({
1433
- get method() {
1438
+ get "method"() {
1434
1439
  return HttpMethodSchema.describe("HTTP method for readiness probe requests.").optional();
1435
1440
  },
1436
- "path": z.string().describe("Path to request for the probe (e.g., \"/health\", \"/ready\").\nDefault: \"/\"").optional()
1441
+ "path": z.optional(z.string().describe("Path to request for the probe (e.g., \"/health\", \"/ready\").\nDefault: \"/\""))
1437
1442
  }).describe("Configuration for HTTP-based readiness probe.\nThis probe is executed after function provisioning/update to verify the function is ready to serve traffic.\nOnly works with functions that have Public ingress.");
1438
1443
  //#endregion
1439
1444
  //#region src/generated/zod/function-schema.ts
@@ -1445,26 +1450,26 @@ const ReadinessProbeSchema = z.object({
1445
1450
  * @description Represents a serverless function that executes code in response to triggers or direct invocations.\nFunctions are the primary compute resource in serverless applications, designed to be stateless and ephemeral.
1446
1451
  */
1447
1452
  const FunctionSchema = z.object({
1448
- "arcEnabled": z.boolean().default(false).describe("Whether the function can be invoked via ARC (Alien Remote Call) protocol from the control plane.\nWhen enabled, the necessary queue infrastructure is automatically created for the target platform."),
1449
- get code() {
1453
+ get "code"() {
1450
1454
  return FunctionCodeSchema.describe("Specifies the source of the function's executable code.\nThis can be a pre-built container image or source code that the system will build.");
1451
1455
  },
1452
- "concurrencyLimit": z.int().min(0).describe("Maximum number of concurrent executions allowed for the function.\nNone means platform default applies.").optional().nullable(),
1453
- "environment": z.object({}).catchall(z.string()).describe("Key-value pairs to set as environment variables for the function.").optional(),
1456
+ "commandsEnabled": z.optional(z.boolean().default(false).describe("Whether the function can receive remote commands via the Commands protocol.\nWhen enabled, the runtime polls the manager for pending commands and executes registered handlers.")),
1457
+ "concurrencyLimit": z.int().min(0).describe("Maximum number of concurrent executions allowed for the function.\nNone means platform default applies.").nullish(),
1458
+ "environment": z.optional(z.object({}).catchall(z.string()).describe("Key-value pairs to set as environment variables for the function.")),
1454
1459
  "id": z.string().describe("Identifier for the function. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]).\nMaximum 64 characters."),
1455
- get ingress() {
1456
- return IngressSchema.default("private");
1460
+ get "ingress"() {
1461
+ return IngressSchema.default("private").optional();
1457
1462
  },
1458
- get links() {
1463
+ get "links"() {
1459
1464
  return z.array(ResourceRefSchema.describe("New ResourceRef that works with any resource type.\nThis can eventually replace the enum-based ResourceRef for full extensibility.")).describe("List of resource references this function depends on.");
1460
1465
  },
1461
- "memoryMb": z.int().min(0).default(256).describe("Memory allocated to the function in megabytes (MB).\nConstraints: 128‑32768 MB (platform-specific limits may apply)\nDefault: 256"),
1466
+ "memoryMb": z.optional(z.int().min(0).default(256).describe("Memory allocated to the function in megabytes (MB).\nConstraints: 128‑32768 MB (platform-specific limits may apply)\nDefault: 256")),
1462
1467
  "permissions": z.string().describe("Permission profile name that defines the permissions granted to this function.\nThis references a profile defined in the stack's permission definitions."),
1463
- get readinessProbe() {
1468
+ get "readinessProbe"() {
1464
1469
  return z.union([ReadinessProbeSchema, z.null()]).optional();
1465
1470
  },
1466
- "timeoutSeconds": z.int().min(0).default(180).describe("Maximum execution time for the function in seconds.\nConstraints: 1‑3600 seconds (platform-specific limits may apply)\nDefault: 30"),
1467
- get triggers() {
1471
+ "timeoutSeconds": z.optional(z.int().min(0).default(180).describe("Maximum execution time for the function in seconds.\nConstraints: 1‑3600 seconds (platform-specific limits may apply)\nDefault: 30")),
1472
+ get "triggers"() {
1468
1473
  return z.array(FunctionTriggerSchema.describe("Defines what triggers a function execution")).describe("List of triggers that define what events automatically invoke this function.\nIf empty, the function is only invokable directly via HTTP calls or platform-specific invocation APIs.\nWhen configured, the function will be automatically invoked when any of the specified trigger conditions are met.");
1469
1474
  }
1470
1475
  }).describe("Represents a serverless function that executes code in response to triggers or direct invocations.\nFunctions are the primary compute resource in serverless applications, designed to be stateless and ephemeral.");
@@ -1488,10 +1493,10 @@ const GcpManagementConfigSchema = z.object({ "serviceAccountEmail": z.string().d
1488
1493
  * @description GCP-specific platform permission configuration
1489
1494
  */
1490
1495
  const GcpPlatformPermissionSchema = z.object({
1491
- get binding() {
1496
+ get "binding"() {
1492
1497
  return BindingConfigurationGcpBindingSpecSchema.describe("Generic binding configuration for permissions");
1493
1498
  },
1494
- get grant() {
1499
+ get "grant"() {
1495
1500
  return PermissionGrantSchema.describe("Grant permissions for a specific cloud platform");
1496
1501
  }
1497
1502
  }).describe("GCP-specific platform permission configuration");
@@ -1505,10 +1510,6 @@ const GcpPlatformPermissionSchema = z.object({
1505
1510
  * @description How heartbeat health checks are handled.
1506
1511
  */
1507
1512
  const HeartbeatsModeSchema = z.enum(["off", "on"]).describe("How heartbeat health checks are handled.");
1508
- z.object({
1509
- "password": z.string().describe("Password for the container registry"),
1510
- "username": z.string().describe("Username for the container registry")
1511
- }).describe("Image pull credentials for container registries");
1512
1513
  //#endregion
1513
1514
  //#region src/generated/zod/kv-outputs-schema.ts
1514
1515
  /**
@@ -1519,8 +1520,8 @@ z.object({
1519
1520
  * @description Outputs generated by a successfully provisioned KV store.
1520
1521
  */
1521
1522
  const KvOutputsSchema = z.object({
1522
- "endpoint": z.string().describe("Platform-specific endpoint URL for direct access (if applicable).").optional().nullable(),
1523
- "identifier": z.string().describe("Platform-specific identifier (e.g., DynamoDB table ARN, Redis endpoint).").optional().nullable(),
1523
+ "endpoint": z.string().describe("Platform-specific endpoint URL for direct access (if applicable).").nullish(),
1524
+ "identifier": z.string().describe("Platform-specific identifier (e.g., DynamoDB table ARN, Redis endpoint).").nullish(),
1524
1525
  "storeName": z.string().describe("The name of the KV store (may be platform-specific).")
1525
1526
  }).describe("Outputs generated by a successfully provisioned KV store.");
1526
1527
  //#endregion
@@ -1545,10 +1546,10 @@ const KvSchema = z.object({ "id": z.string().describe("Identifier for the KV sto
1545
1546
  const LeaseInfoSchema = z.object({
1546
1547
  "attempt": z.int().min(0).describe("Attempt number"),
1547
1548
  "commandId": z.string().describe("Command identifier"),
1548
- get envelope() {
1549
- return EnvelopeSchema.describe("ARC envelope sent to deployments");
1549
+ get "envelope"() {
1550
+ return EnvelopeSchema.describe("Commands envelope sent to deployments");
1550
1551
  },
1551
- "leaseExpiresAt": z.string().datetime().describe("When lease expires"),
1552
+ "leaseExpiresAt": z.iso.datetime().describe("When lease expires"),
1552
1553
  "leaseId": z.string().describe("Unique lease identifier")
1553
1554
  }).describe("Lease information");
1554
1555
  //#endregion
@@ -1562,8 +1563,8 @@ const LeaseInfoSchema = z.object({
1562
1563
  */
1563
1564
  const LeaseRequestSchema = z.object({
1564
1565
  "deploymentId": z.string().describe("Deployment identifier"),
1565
- "leaseSeconds": z.int().min(0).describe("Lease duration in seconds").optional(),
1566
- "maxLeases": z.int().min(0).describe("Maximum number of leases to acquire").optional()
1566
+ "leaseSeconds": z.optional(z.int().min(0).describe("Lease duration in seconds")),
1567
+ "maxLeases": z.optional(z.int().min(0).describe("Maximum number of leases to acquire"))
1567
1568
  }).describe("Request for acquiring leases");
1568
1569
  //#endregion
1569
1570
  //#region src/generated/zod/lease-response-schema.ts
@@ -1574,7 +1575,7 @@ const LeaseRequestSchema = z.object({
1574
1575
  /**
1575
1576
  * @description Response to lease acquisition
1576
1577
  */
1577
- const LeaseResponseSchema = z.object({ get leases() {
1578
+ const LeaseResponseSchema = z.object({ get "leases"() {
1578
1579
  return z.array(LeaseInfoSchema.describe("Lease information")).describe("Acquired leases (empty array if none available)");
1579
1580
  } }).describe("Response to lease acquisition");
1580
1581
  //#endregion
@@ -1588,14 +1589,14 @@ const LeaseResponseSchema = z.object({ get leases() {
1588
1589
  */
1589
1590
  const LifecycleRuleSchema = z.object({
1590
1591
  "days": z.int().min(0).describe("Number of days after which objects matching the rule expire."),
1591
- "prefix": z.string().describe("Optional prefix to filter objects the rule applies to. If None, applies to all objects.").optional().nullable()
1592
+ "prefix": z.string().describe("Optional prefix to filter objects the rule applies to. If None, applies to all objects.").nullish()
1592
1593
  }).describe("Defines a rule for managing the lifecycle of objects within a storage bucket.");
1593
1594
  z.union([
1594
- AwsManagementConfigSchema.and(z.object({ "platform": z.enum(["aws"]) })),
1595
- GcpManagementConfigSchema.and(z.object({ "platform": z.enum(["gcp"]) })),
1596
- AzureManagementConfigSchema.and(z.object({ "platform": z.enum(["azure"]) })),
1595
+ z.lazy(() => AwsManagementConfigSchema).and(z.object({ "platform": z.enum(["aws"]) })),
1596
+ z.lazy(() => GcpManagementConfigSchema).and(z.object({ "platform": z.enum(["gcp"]) })),
1597
+ z.lazy(() => AzureManagementConfigSchema).and(z.object({ "platform": z.enum(["azure"]) })),
1597
1598
  z.object({ "platform": z.enum(["kubernetes"]) })
1598
- ]).describe("Management configuration for different cloud platforms.\n\nPlatform-derived configuration for cross-account/cross-tenant access.\nThis is NOT user-specified - it's derived from the Agent Manager's ServiceAccount.");
1599
+ ]).describe("Management configuration for different cloud platforms.\n\nPlatform-derived configuration for cross-account/cross-tenant access.\nThis is NOT user-specified - it's derived from the Manager's ServiceAccount.");
1599
1600
  //#endregion
1600
1601
  //#region src/generated/zod/platform-permissions-schema.ts
1601
1602
  /**
@@ -1606,14 +1607,14 @@ z.union([
1606
1607
  * @description Platform-specific permission configurations
1607
1608
  */
1608
1609
  const PlatformPermissionsSchema = z.object({
1609
- get aws() {
1610
- return z.array(AwsPlatformPermissionSchema.describe("AWS-specific platform permission configuration")).describe("AWS permission configurations").optional().nullable();
1610
+ get "aws"() {
1611
+ return z.array(AwsPlatformPermissionSchema.describe("AWS-specific platform permission configuration")).describe("AWS permission configurations").nullish();
1611
1612
  },
1612
- get azure() {
1613
- return z.array(AzurePlatformPermissionSchema.describe("Azure-specific platform permission configuration")).describe("Azure permission configurations").optional().nullable();
1613
+ get "azure"() {
1614
+ return z.array(AzurePlatformPermissionSchema.describe("Azure-specific platform permission configuration")).describe("Azure permission configurations").nullish();
1614
1615
  },
1615
- get gcp() {
1616
- return z.array(GcpPlatformPermissionSchema.describe("GCP-specific platform permission configuration")).describe("GCP permission configurations").optional().nullable();
1616
+ get "gcp"() {
1617
+ return z.array(GcpPlatformPermissionSchema.describe("GCP-specific platform permission configuration")).describe("GCP permission configurations").nullish();
1617
1618
  }
1618
1619
  }).describe("Platform-specific permission configurations");
1619
1620
  //#endregion
@@ -1628,7 +1629,7 @@ const PlatformPermissionsSchema = z.object({
1628
1629
  const PermissionSetSchema = z.object({
1629
1630
  "description": z.string().describe("Human-readable description of what this permission set allows"),
1630
1631
  "id": z.string().describe("Unique identifier for the permission set (e.g., \"storage/data-read\")"),
1631
- get platforms() {
1632
+ get "platforms"() {
1632
1633
  return PlatformPermissionsSchema.describe("Platform-specific permission configurations");
1633
1634
  }
1634
1635
  }).describe("A permission set that can be applied across different cloud platforms");
@@ -1641,7 +1642,7 @@ const PermissionSetSchema = z.object({
1641
1642
  /**
1642
1643
  * @description Reference to a permission set - either by name or inline definition
1643
1644
  */
1644
- const PermissionSetReferenceSchema = z.union([PermissionSetSchema, z.string()]).describe("Reference to a permission set - either by name or inline definition");
1645
+ const PermissionSetReferenceSchema = z.union([z.lazy(() => PermissionSetSchema), z.string()]).describe("Reference to a permission set - either by name or inline definition");
1645
1646
  //#endregion
1646
1647
  //#region src/generated/zod/permission-profile-schema.ts
1647
1648
  /**
@@ -1651,7 +1652,7 @@ const PermissionSetReferenceSchema = z.union([PermissionSetSchema, z.string()]).
1651
1652
  /**
1652
1653
  * @description Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource
1653
1654
  */
1654
- const PermissionProfileSchema = z.object({}).catchall(z.array(PermissionSetReferenceSchema.describe("Reference to a permission set - either by name or inline definition"))).describe("Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource");
1655
+ const PermissionProfileSchema = z.object({}).catchall(z.array(z.lazy(() => PermissionSetReferenceSchema).describe("Reference to a permission set - either by name or inline definition"))).describe("Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource");
1655
1656
  //#endregion
1656
1657
  //#region src/generated/zod/management-permissions-schema.ts
1657
1658
  /**
@@ -1662,10 +1663,10 @@ const PermissionProfileSchema = z.object({}).catchall(z.array(PermissionSetRefer
1662
1663
  * @description Management permissions configuration for stack management access
1663
1664
  */
1664
1665
  const ManagementPermissionsSchema = z.union([
1665
- z.object({ get extend() {
1666
+ z.object({ get "extend"() {
1666
1667
  return PermissionProfileSchema.describe("Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource");
1667
1668
  } }),
1668
- z.object({ get override() {
1669
+ z.object({ get "override"() {
1669
1670
  return PermissionProfileSchema.describe("Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource");
1670
1671
  } }),
1671
1672
  z.enum(["auto"])
@@ -1692,14 +1693,14 @@ const MessagePayloadSchema = z.union([z.object({ "type": z.enum(["json"]) }), z.
1692
1693
  const NetworkSettingsSchema = z.union([
1693
1694
  z.object({ "type": z.enum(["use-default"]) }),
1694
1695
  z.object({
1695
- "availability_zones": z.int().min(0).describe("Number of availability zones (default: 2).").optional(),
1696
- "cidr": z.string().describe("VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\").").optional().nullable(),
1696
+ "availability_zones": z.optional(z.int().min(0).describe("Number of availability zones (default: 2).")),
1697
+ "cidr": z.string().describe("VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\").").nullish(),
1697
1698
  "type": z.enum(["create"])
1698
1699
  }),
1699
1700
  z.object({
1700
1701
  "private_subnet_ids": z.array(z.string()).describe("IDs of private subnets"),
1701
1702
  "public_subnet_ids": z.array(z.string()).describe("IDs of public subnets (required for public ingress)"),
1702
- "security_group_ids": z.array(z.string()).describe("Optional security group IDs to use").optional(),
1703
+ "security_group_ids": z.optional(z.array(z.string()).describe("Optional security group IDs to use")),
1703
1704
  "type": z.enum(["byo-vpc-aws"]),
1704
1705
  "vpc_id": z.string().describe("The ID of the existing VPC")
1705
1706
  }),
@@ -1726,10 +1727,10 @@ const NetworkSettingsSchema = z.union([
1726
1727
  * @description Combined permissions configuration that contains both profiles and management
1727
1728
  */
1728
1729
  const PermissionsConfigSchema = z.object({
1729
- get management() {
1730
+ get "management"() {
1730
1731
  return ManagementPermissionsSchema.describe("Management permissions configuration for stack management access").optional();
1731
1732
  },
1732
- "profiles": z.object({}).catchall(PermissionProfileSchema.describe("Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource")).describe("Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration")
1733
+ "profiles": z.object({}).catchall(z.lazy(() => PermissionProfileSchema).describe("Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource")).describe("Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration")
1733
1734
  }).describe("Combined permissions configuration that contains both profiles and management");
1734
1735
  //#endregion
1735
1736
  //#region src/generated/zod/queue-message-schema.ts
@@ -1741,15 +1742,15 @@ const PermissionsConfigSchema = z.object({
1741
1742
  * @description Standardized queue message structure used by alien-runtime\n\nThis structure contains commonly available metadata across all platforms\nand a JSON-first payload that handles both structured data and plain text.
1742
1743
  */
1743
1744
  const QueueMessageSchema = z.object({
1744
- "attemptCount": z.int().min(0).describe("Delivery attempt count (from ApproximateReceiveCount/deliveryCount, if available)").optional().nullable(),
1745
- "attributes": z.object({}).catchall(z.string()).describe("Message attributes/properties (flattened from messageAttributes/attributes/properties)").optional(),
1745
+ "attemptCount": z.int().min(0).describe("Delivery attempt count (from ApproximateReceiveCount/deliveryCount, if available)").nullish(),
1746
+ "attributes": z.optional(z.object({}).catchall(z.string()).describe("Message attributes/properties (flattened from messageAttributes/attributes/properties)")),
1746
1747
  "id": z.string().describe("Unique message identifier (from messageId/ce-id)"),
1747
- get payload() {
1748
+ get "payload"() {
1748
1749
  return MessagePayloadSchema.describe("JSON-first message payload that supports both structured JSON and UTF-8 text");
1749
1750
  },
1750
1751
  "receiptHandle": z.string().describe("Platform-specific receipt handle for acknowledgment"),
1751
1752
  "source": z.string().describe("Source queue/topic name (derived from ARN/source/topic)"),
1752
- "timestamp": z.string().datetime().describe("Message timestamp (from SentTimestamp/ce-time/enqueuedTimeUtc)")
1753
+ "timestamp": z.iso.datetime().describe("Message timestamp (from SentTimestamp/ce-time/enqueuedTimeUtc)")
1753
1754
  }).describe("Standardized queue message structure used by alien-runtime\n\nThis structure contains commonly available metadata across all platforms\nand a JSON-first payload that handles both structured data and plain text.");
1754
1755
  //#endregion
1755
1756
  //#region src/generated/zod/queue-outputs-schema.ts
@@ -1761,7 +1762,7 @@ const QueueMessageSchema = z.object({
1761
1762
  * @description Outputs generated by a successfully provisioned Queue.
1762
1763
  */
1763
1764
  const QueueOutputsSchema = z.object({
1764
- "identifier": z.string().describe("Platform-specific identifier or URL (e.g., SQS URL, Pub/Sub topic/subscription).").optional().nullable(),
1765
+ "identifier": z.string().describe("Platform-specific identifier or URL (e.g., SQS URL, Pub/Sub topic/subscription).").nullish(),
1765
1766
  "queueName": z.string().describe("The name of the queue (platform-specific physical name).")
1766
1767
  }).describe("Outputs generated by a successfully provisioned Queue.");
1767
1768
  //#endregion
@@ -1794,8 +1795,8 @@ const ReleaseRequestSchema = z.object({ "leaseId": z.string().describe("Lease id
1794
1795
  * @description Resource outputs for RemoteStackManagement.\nDifferent platforms will provide different outputs based on their implementation.
1795
1796
  */
1796
1797
  const RemoteStackManagementOutputsSchema = z.object({
1797
- "accessConfiguration": z.string().describe("Platform-specific access configuration\nFor AWS: The role ARN to assume\nFor GCP: The service account email to impersonate\nFor Azure: The lighthouse registration assignment ID"),
1798
- "managementResourceId": z.string().describe("Platform-specific management resource identifier\nFor AWS: The ARN of the created cross-account role\nFor GCP: The email of the created service account\nFor Azure: The resource ID of the lighthouse registration")
1798
+ "accessConfiguration": z.string().describe("Platform-specific access configuration\nFor AWS: The role ARN to assume\nFor GCP: The service account email to impersonate\nFor Azure: JSON containing the target managed identity client ID and tenant ID"),
1799
+ "managementResourceId": z.string().describe("Platform-specific management resource identifier\nFor AWS: The ARN of the created cross-account role\nFor GCP: The email of the created service account\nFor Azure: The resource ID of the target user-assigned managed identity")
1799
1800
  }).describe("Resource outputs for RemoteStackManagement.\nDifferent platforms will provide different outputs based on their implementation.");
1800
1801
  //#endregion
1801
1802
  //#region src/generated/zod/remote-stack-management-schema.ts
@@ -1804,9 +1805,9 @@ const RemoteStackManagementOutputsSchema = z.object({
1804
1805
  * Do not edit manually.
1805
1806
  */
1806
1807
  /**
1807
- * @description Represents cross-account management access configuration for a stack deployed\non AWS, GCP, or Azure platforms. This resource sets up the necessary IAM/RBAC\nconfiguration to allow another cloud account to manage the stack.\n\nMaps to:\n- AWS: Cross-account IAM role with management permissions\n- GCP: Service account with management permissions and impersonation rights\n- Azure: Lighthouse registration definition and assignment\n\nThis resource is automatically created for AWS, GCP, and Azure platforms\nwhen the stack needs to be managed by another account. The management account\nand identity information comes from the platform configuration.
1808
+ * @description Represents cross-account management access configuration for a stack deployed\non AWS, GCP, or Azure platforms. This resource sets up the necessary IAM/RBAC\nconfiguration to allow another cloud account to manage the stack.\n\nMaps to:\n- AWS: Cross-account IAM role with management permissions\n- GCP: Service account with management permissions and impersonation rights\n- Azure: User-assigned managed identity with federated credential and custom RBAC\n\nThis resource is automatically created for AWS, GCP, and Azure platforms\nwhen the stack needs to be managed by another account. The management account\nand identity information comes from the platform configuration.
1808
1809
  */
1809
- const RemoteStackManagementSchema = z.object({ "id": z.string().describe("Identifier for the remote stack management. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]).\nMaximum 64 characters.") }).describe("Represents cross-account management access configuration for a stack deployed\non AWS, GCP, or Azure platforms. This resource sets up the necessary IAM/RBAC\nconfiguration to allow another cloud account to manage the stack.\n\nMaps to:\n- AWS: Cross-account IAM role with management permissions\n- GCP: Service account with management permissions and impersonation rights\n- Azure: Lighthouse registration definition and assignment\n\nThis resource is automatically created for AWS, GCP, and Azure platforms\nwhen the stack needs to be managed by another account. The management account\nand identity information comes from the platform configuration.");
1810
+ const RemoteStackManagementSchema = z.object({ "id": z.string().describe("Identifier for the remote stack management. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]).\nMaximum 64 characters.") }).describe("Represents cross-account management access configuration for a stack deployed\non AWS, GCP, or Azure platforms. This resource sets up the necessary IAM/RBAC\nconfiguration to allow another cloud account to manage the stack.\n\nMaps to:\n- AWS: Cross-account IAM role with management permissions\n- GCP: Service account with management permissions and impersonation rights\n- Azure: User-assigned managed identity with federated credential and custom RBAC\n\nThis resource is automatically created for AWS, GCP, and Azure platforms\nwhen the stack needs to be managed by another account. The management account\nand identity information comes from the platform configuration.");
1810
1811
  //#endregion
1811
1812
  //#region src/generated/zod/resource-entry-schema.ts
1812
1813
  /**
@@ -1814,16 +1815,16 @@ const RemoteStackManagementSchema = z.object({ "id": z.string().describe("Identi
1814
1815
  * Do not edit manually.
1815
1816
  */
1816
1817
  const ResourceEntrySchema = z.object({
1817
- get config() {
1818
+ get "config"() {
1818
1819
  return BaseResourceSchema.describe("Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties.");
1819
1820
  },
1820
- get dependencies() {
1821
+ get "dependencies"() {
1821
1822
  return z.array(ResourceRefSchema.describe("New ResourceRef that works with any resource type.\nThis can eventually replace the enum-based ResourceRef for full extensibility.")).describe("Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list");
1822
1823
  },
1823
- get lifecycle() {
1824
+ get "lifecycle"() {
1824
1825
  return ResourceLifecycleSchema.describe("Describes the lifecycle of a resource within a stack, determining how it's managed and deployed.");
1825
1826
  },
1826
- "remoteAccess": z.boolean().describe("Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state).").optional()
1827
+ "remoteAccess": z.optional(z.boolean().describe("Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."))
1827
1828
  });
1828
1829
  //#endregion
1829
1830
  //#region src/generated/zod/scheduled-event-schema.ts
@@ -1834,7 +1835,7 @@ const ResourceEntrySchema = z.object({
1834
1835
  /**
1835
1836
  * @description Represents a scheduled event trigger, typically from a cron job or timer.\n\nThis struct aims to provide a common representation for scheduled events\nacross different providers like AWS CloudWatch Events, Google Cloud Scheduler,\nand Azure Timer Triggers.
1836
1837
  */
1837
- const ScheduledEventSchema = z.object({ "timestamp": z.string().datetime().describe("The timestamp when the event was scheduled or triggered.") }).describe("Represents a scheduled event trigger, typically from a cron job or timer.\n\nThis struct aims to provide a common representation for scheduled events\nacross different providers like AWS CloudWatch Events, Google Cloud Scheduler,\nand Azure Timer Triggers.");
1838
+ const ScheduledEventSchema = z.object({ "timestamp": z.iso.datetime().describe("The timestamp when the event was scheduled or triggered.") }).describe("Represents a scheduled event trigger, typically from a cron job or timer.\n\nThis struct aims to provide a common representation for scheduled events\nacross different providers like AWS CloudWatch Events, Google Cloud Scheduler,\nand Azure Timer Triggers.");
1838
1839
  //#endregion
1839
1840
  //#region src/generated/zod/service-account-outputs-schema.ts
1840
1841
  /**
@@ -1859,7 +1860,7 @@ const ServiceAccountOutputsSchema = z.object({
1859
1860
  */
1860
1861
  const ServiceAccountSchema = z.object({
1861
1862
  "id": z.string().describe("Identifier for the service account. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]).\nMaximum 64 characters."),
1862
- get stackPermissionSets() {
1863
+ get "stackPermissionSets"() {
1863
1864
  return z.array(PermissionSetSchema.describe("A permission set that can be applied across different cloud platforms")).describe("Stack-level permission sets that apply to all resources in the stack.\nThese are derived from the \"*\" scope in the permission profile.\nResource-scoped permissions are handled by individual resource controllers.");
1864
1865
  }
1865
1866
  }).describe("Represents a non-human identity that can be assumed by compute services\nsuch as Lambda, Cloud Run, ECS, Container Apps, etc.\n\nMaps to:\n- AWS: IAM Role\n- GCP: Service Account\n- Azure: User-assigned Managed Identity\n\nThe ServiceAccount is automatically created from permission profiles in the stack\nand contains the resolved permission sets for both stack-level and resource-scoped access.");
@@ -1875,10 +1876,10 @@ z.union([z.object({ "external": z.string().describe("Reference to another stack
1875
1876
  */
1876
1877
  const StackSchema = z.object({
1877
1878
  "id": z.string().describe("Unique identifier for the stack"),
1878
- get permissions() {
1879
+ get "permissions"() {
1879
1880
  return PermissionsConfigSchema.describe("Combined permissions configuration that contains both profiles and management").optional();
1880
1881
  },
1881
- "resources": z.object({}).catchall(ResourceEntrySchema).describe("Map of resource IDs to their configurations and lifecycle settings")
1882
+ "resources": z.object({}).catchall(z.lazy(() => ResourceEntrySchema)).describe("Map of resource IDs to their configurations and lifecycle settings")
1882
1883
  }).describe("A bag of resources, unaware of any cloud.");
1883
1884
  //#endregion
1884
1885
  //#region src/generated/zod/telemetry-mode-schema.ts
@@ -1901,9 +1902,9 @@ const TelemetryModeSchema = z.enum([
1901
1902
  * Do not edit manually.
1902
1903
  */
1903
1904
  /**
1904
- * @description How updates are delivered to the agent.
1905
+ * @description How updates are delivered to the deployment.
1905
1906
  */
1906
- const UpdatesModeSchema = z.enum(["auto", "approval-required"]).describe("How updates are delivered to the agent.");
1907
+ const UpdatesModeSchema = z.enum(["auto", "approval-required"]).describe("How updates are delivered to the deployment.");
1907
1908
  //#endregion
1908
1909
  //#region src/generated/zod/stack-settings-schema.ts
1909
1910
  /**
@@ -1911,28 +1912,29 @@ const UpdatesModeSchema = z.enum(["auto", "approval-required"]).describe("How up
1911
1912
  * Do not edit manually.
1912
1913
  */
1913
1914
  /**
1914
- * @description User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\nagent is deployed and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Agent Manager\'s ServiceAccount).
1915
+ * @description User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager\'s ServiceAccount).
1915
1916
  */
1916
1917
  const StackSettingsSchema = z.object({
1917
- get deploymentModel() {
1918
+ get "deploymentModel"() {
1918
1919
  return DeploymentModelSchema.describe("Deployment model: how updates are delivered to the remote environment.").optional();
1919
1920
  },
1920
- get domains() {
1921
+ get "domains"() {
1921
1922
  return z.union([DomainSettingsSchema, z.null()]).optional();
1922
1923
  },
1923
- get heartbeats() {
1924
+ "externalBindings": z.object({}).describe("External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms.").nullish(),
1925
+ get "heartbeats"() {
1924
1926
  return HeartbeatsModeSchema.describe("How heartbeat health checks are handled.").optional();
1925
1927
  },
1926
- get network() {
1928
+ get "network"() {
1927
1929
  return z.union([NetworkSettingsSchema, z.null()]).optional();
1928
1930
  },
1929
- get telemetry() {
1931
+ get "telemetry"() {
1930
1932
  return TelemetryModeSchema.describe("How telemetry (logs, metrics, traces) is handled.").optional();
1931
1933
  },
1932
- get updates() {
1933
- return UpdatesModeSchema.describe("How updates are delivered to the agent.").optional();
1934
+ get "updates"() {
1935
+ return UpdatesModeSchema.describe("How updates are delivered to the deployment.").optional();
1934
1936
  }
1935
- }).describe("User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\nagent is deployed and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Agent Manager's ServiceAccount).");
1937
+ }).describe("User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount).");
1936
1938
  //#endregion
1937
1939
  //#region src/generated/zod/stack-status-schema.ts
1938
1940
  /**
@@ -1978,20 +1980,20 @@ const StorageEventTypeSchema = z.enum([
1978
1980
  */
1979
1981
  const StorageEventSchema = z.object({
1980
1982
  "bucketName": z.string().describe("The name of the bucket or container where the event occurred."),
1981
- "contentType": z.string().describe("Optional content type (MIME type) of the object.").optional().nullable(),
1982
- "copySource": z.string().describe("Optional information about the source object for copy events.").optional().nullable(),
1983
- "currentTier": z.string().describe("Optional current storage tier for TierChanged or Restored events.").optional().nullable(),
1984
- "etag": z.string().describe("Optional ETag or hash of the object content.").optional().nullable(),
1985
- get eventType() {
1983
+ "contentType": z.string().describe("Optional content type (MIME type) of the object.").nullish(),
1984
+ "copySource": z.string().describe("Optional information about the source object for copy events.").nullish(),
1985
+ "currentTier": z.string().describe("Optional current storage tier for TierChanged or Restored events.").nullish(),
1986
+ "etag": z.string().describe("Optional ETag or hash of the object content.").nullish(),
1987
+ get "eventType"() {
1986
1988
  return StorageEventTypeSchema.describe("Represents the type of storage event that occurred.");
1987
1989
  },
1988
- "metadata": z.object({}).catchall(z.string()).describe("Optional metadata associated with the object.").optional(),
1990
+ "metadata": z.optional(z.object({}).catchall(z.string()).describe("Optional metadata associated with the object.")),
1989
1991
  "objectKey": z.string().describe("The key or path of the object involved in the event."),
1990
- "previousTier": z.string().describe("Optional previous storage tier for TierChanged or Restored events.").optional().nullable(),
1991
- "region": z.string().describe("Optional region where the event originated.").optional().nullable(),
1992
- "size": z.int().min(0).describe("Optional size of the object in bytes.").optional().nullable(),
1993
- "timestamp": z.string().datetime().describe("The timestamp when the event occurred."),
1994
- "versionId": z.string().describe("Optional version or sequencer identifier for the event or object state.").optional().nullable()
1992
+ "previousTier": z.string().describe("Optional previous storage tier for TierChanged or Restored events.").nullish(),
1993
+ "region": z.string().describe("Optional region where the event originated.").nullish(),
1994
+ "size": z.int().min(0).describe("Optional size of the object in bytes.").nullish(),
1995
+ "timestamp": z.iso.datetime().describe("The timestamp when the event occurred."),
1996
+ "versionId": z.string().describe("Optional version or sequencer identifier for the event or object state.").nullish()
1995
1997
  }).describe("Represents an event triggered by an action in an object storage service.\n\nThis struct provides a generic representation for events from services like\nAWS S3, Google Cloud Storage (GCS), and Azure Blob Storage.");
1996
1998
  //#endregion
1997
1999
  //#region src/generated/zod/storage-events-schema.ts
@@ -2002,7 +2004,7 @@ const StorageEventSchema = z.object({
2002
2004
  /**
2003
2005
  * @description A wrapper type for a list of storage events.
2004
2006
  */
2005
- const StorageEventsSchema = z.array(StorageEventSchema.describe("Represents an event triggered by an action in an object storage service.\n\nThis struct provides a generic representation for events from services like\nAWS S3, Google Cloud Storage (GCS), and Azure Blob Storage.")).describe("A wrapper type for a list of storage events.");
2007
+ const StorageEventsSchema = z.array(z.lazy(() => StorageEventSchema).describe("Represents an event triggered by an action in an object storage service.\n\nThis struct provides a generic representation for events from services like\nAWS S3, Google Cloud Storage (GCS), and Azure Blob Storage.")).describe("A wrapper type for a list of storage events.");
2006
2008
  //#endregion
2007
2009
  //#region src/generated/zod/storage-outputs-schema.ts
2008
2010
  /**
@@ -2024,11 +2026,11 @@ const StorageOutputsSchema = z.object({ "bucketName": z.string().describe("The g
2024
2026
  */
2025
2027
  const StorageSchema = z.object({
2026
2028
  "id": z.string().describe("Name of the the storage bucket.\nFor names with dots, each dot-separated label must be ≤ 63 characters."),
2027
- get lifecycleRules() {
2029
+ get "lifecycleRules"() {
2028
2030
  return z.array(LifecycleRuleSchema.describe("Defines a rule for managing the lifecycle of objects within a storage bucket.")).describe("List of rules for automatic object management (e.g., expiration).\nDefault: `[]` (empty list)").optional();
2029
2031
  },
2030
- "publicRead": z.boolean().describe("Allows public read access to objects without authentication.\nDefault: `false`").optional(),
2031
- "versioning": z.boolean().describe("Enables object versioning.\nDefault: `false`").optional()
2032
+ "publicRead": z.optional(z.boolean().describe("Allows public read access to objects without authentication.\nDefault: `false`")),
2033
+ "versioning": z.optional(z.boolean().describe("Enables object versioning.\nDefault: `false`"))
2032
2034
  }).describe("Represents an object storage bucket.");
2033
2035
  //#endregion
2034
2036
  //#region src/generated/zod/submit-response-request-schema.ts
@@ -2039,7 +2041,7 @@ const StorageSchema = z.object({
2039
2041
  /**
2040
2042
  * @description Request to submit a command response (from deployment)
2041
2043
  */
2042
- const SubmitResponseRequestSchema = CommandResponseSchema.describe("Request to submit a command response (from deployment)");
2044
+ const SubmitResponseRequestSchema = z.lazy(() => CommandResponseSchema).describe("Request to submit a command response (from deployment)");
2043
2045
  //#endregion
2044
2046
  //#region src/generated/zod/upload-complete-request-schema.ts
2045
2047
  /**
@@ -2061,8 +2063,8 @@ const UploadCompleteRequestSchema = z.object({ "size": z.int().min(0).describe("
2061
2063
  */
2062
2064
  const UploadCompleteResponseSchema = z.object({
2063
2065
  "commandId": z.string().describe("Command identifier"),
2064
- get state() {
2065
- return CommandStateSchema.describe("Command states in the ARC protocol lifecycle");
2066
+ get "state"() {
2067
+ return CommandStateSchema.describe("Command states in the Commands protocol lifecycle");
2066
2068
  }
2067
2069
  }).describe("Response to upload completion");
2068
2070
  //#endregion