@alienplatform/core 1.7.1 → 1.9.0

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 (88) hide show
  1. package/.turbo/turbo-build.log +12 -11
  2. package/dist/index.d.ts +783 -100
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +199 -33
  5. package/dist/index.js.map +1 -1
  6. package/dist/stack.js +579 -44
  7. package/dist/stack.js.map +1 -1
  8. package/dist/tests/index.js +1 -1
  9. package/package.json +1 -1
  10. package/src/__tests__/__snapshots__/stack.test.ts.snap +10 -4
  11. package/src/__tests__/error.test.ts +1 -1
  12. package/src/__tests__/stack.test.ts +184 -2
  13. package/src/compute-cluster.ts +211 -0
  14. package/src/container.ts +38 -26
  15. package/src/daemon.ts +79 -0
  16. package/src/generated/index.ts +42 -2
  17. package/src/generated/schemas/architecture.json +1 -0
  18. package/src/generated/schemas/capacityGroup.json +1 -0
  19. package/src/generated/schemas/capacityGroupScalePolicy.json +1 -0
  20. package/src/generated/schemas/computeChoiceRange.json +1 -0
  21. package/src/generated/schemas/computeCluster.json +1 -0
  22. package/src/generated/schemas/computePoolSelection.json +1 -0
  23. package/src/generated/schemas/computeSettings.json +1 -0
  24. package/src/generated/schemas/container.json +1 -1
  25. package/src/generated/schemas/containerOutputs.json +1 -1
  26. package/src/generated/schemas/containerPort.json +1 -1
  27. package/src/generated/schemas/daemon.json +1 -1
  28. package/src/generated/schemas/daemonOutputs.json +1 -1
  29. package/src/generated/schemas/daemonRuntime.json +1 -0
  30. package/src/generated/schemas/daemonRuntimeMount.json +1 -0
  31. package/src/generated/schemas/exposeProtocol.json +1 -1
  32. package/src/generated/schemas/gpuSpec.json +1 -0
  33. package/src/generated/schemas/machineProfile.json +1 -0
  34. package/src/generated/schemas/publicEndpoint.json +1 -0
  35. package/src/generated/schemas/publicEndpointOutput.json +1 -0
  36. package/src/generated/schemas/stack.json +1 -1
  37. package/src/generated/schemas/stackImportRequest.json +1 -1
  38. package/src/generated/schemas/stackImportResponse.json +1 -1
  39. package/src/generated/schemas/stackInputDefaultValue.json +1 -0
  40. package/src/generated/schemas/stackInputDefinition.json +1 -0
  41. package/src/generated/schemas/stackInputEnvironmentMapping.json +1 -0
  42. package/src/generated/schemas/stackInputEnvironmentVariableType.json +1 -0
  43. package/src/generated/schemas/stackInputKind.json +1 -0
  44. package/src/generated/schemas/stackInputProvider.json +1 -0
  45. package/src/generated/schemas/stackInputValidation.json +1 -0
  46. package/src/generated/schemas/stackSettings.json +1 -1
  47. package/src/generated/schemas/worker.json +1 -1
  48. package/src/generated/schemas/workerOutputs.json +1 -1
  49. package/src/generated/schemas/workerPublicEndpoint.json +1 -0
  50. package/src/generated/zod/architecture-schema.ts +13 -0
  51. package/src/generated/zod/capacity-group-scale-policy-schema.ts +27 -0
  52. package/src/generated/zod/capacity-group-schema.ts +27 -0
  53. package/src/generated/zod/compute-choice-range-schema.ts +17 -0
  54. package/src/generated/zod/compute-cluster-schema.ts +20 -0
  55. package/src/generated/zod/compute-pool-selection-schema.ts +22 -0
  56. package/src/generated/zod/compute-settings-schema.ts +18 -0
  57. package/src/generated/zod/container-outputs-schema.ts +5 -6
  58. package/src/generated/zod/container-port-schema.ts +1 -5
  59. package/src/generated/zod/container-schema.ts +7 -3
  60. package/src/generated/zod/daemon-outputs-schema.ts +4 -0
  61. package/src/generated/zod/daemon-runtime-mount-schema.ts +14 -0
  62. package/src/generated/zod/daemon-runtime-schema.ts +19 -0
  63. package/src/generated/zod/daemon-schema.ts +14 -2
  64. package/src/generated/zod/expose-protocol-schema.ts +2 -2
  65. package/src/generated/zod/gpu-spec-schema.ts +16 -0
  66. package/src/generated/zod/index.ts +42 -2
  67. package/src/generated/zod/machine-profile-schema.ts +25 -0
  68. package/src/generated/zod/public-endpoint-output-schema.ts +21 -0
  69. package/src/generated/zod/public-endpoint-schema.ts +22 -0
  70. package/src/generated/zod/stack-import-request-schema.ts +3 -0
  71. package/src/generated/zod/stack-input-default-value-schema.ts +25 -0
  72. package/src/generated/zod/stack-input-definition-schema.ts +43 -0
  73. package/src/generated/zod/stack-input-environment-mapping-schema.ts +20 -0
  74. package/src/generated/zod/stack-input-environment-variable-type-schema.ts +13 -0
  75. package/src/generated/zod/stack-input-kind-schema.ts +13 -0
  76. package/src/generated/zod/stack-input-provider-schema.ts +13 -0
  77. package/src/generated/zod/stack-input-validation-schema.ts +23 -0
  78. package/src/generated/zod/stack-schema.ts +4 -0
  79. package/src/generated/zod/stack-settings-schema.ts +5 -1
  80. package/src/generated/zod/worker-outputs-schema.ts +4 -5
  81. package/src/generated/zod/worker-public-endpoint-schema.ts +17 -0
  82. package/src/generated/zod/worker-schema.ts +4 -4
  83. package/src/index.ts +9 -0
  84. package/src/input.ts +380 -0
  85. package/src/stack.ts +19 -0
  86. package/src/worker.ts +24 -14
  87. package/src/generated/schemas/ingress.json +0 -1
  88. package/src/generated/zod/ingress-schema.ts +0 -13
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Generated by Kubb (https://kubb.dev/).
3
+ * Do not edit manually.
4
+ */
5
+
6
+ import * as z from "zod";
7
+ import { CapacityGroupScalePolicySchema } from "./capacity-group-scale-policy-schema.js";
8
+ import { MachineProfileSchema } from "./machine-profile-schema.js";
9
+
10
+ /**
11
+ * @description Capacity group definition.\n\nA capacity group represents machines with identical hardware profiles.\nEach group becomes a separate Auto Scaling Group (AWS), Managed Instance Group (GCP),\nor VM Scale Set (Azure).
12
+ */
13
+ export const CapacityGroupSchema = z.object({
14
+ "groupId": z.string().describe("Unique identifier for this capacity group (must be lowercase alphanumeric with hyphens)"),
15
+ "instanceType": z.string().describe("Provider machine selected at deployment time.\n`alien.ts` should declare portable requirements; preflight materialization\nfills this field from `StackSettings.compute`.").nullish(),
16
+ "maxSize": z.int().min(0).describe("Maximum number of machines (must be ≤ 10)"),
17
+ "minSize": z.int().min(0).describe("Minimum number of machines (can be 0 for scale-to-zero)"),
18
+ "nestedVirtualization": z.boolean().describe("Require instance types that expose nested virtualization (VT-x/EPT)\nto guest VMs. This is needed by workloads that boot nested VMs inside\ncontainers.\nWhen true, the controller's instance-type selector is constrained\nto a vetted nested-virt-capable allowlist.").nullish(),
19
+ get "profile"(){
20
+ return z.union([MachineProfileSchema, z.null()]).optional()
21
+ },
22
+ get "scalePolicy"(){
23
+ return z.union([CapacityGroupScalePolicySchema, z.null()]).optional()
24
+ }
25
+ }).describe("Capacity group definition.\n\nA capacity group represents machines with identical hardware profiles.\nEach group becomes a separate Auto Scaling Group (AWS), Managed Instance Group (GCP),\nor VM Scale Set (Azure).")
26
+
27
+ export type CapacityGroup = z.infer<typeof CapacityGroupSchema>
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Generated by Kubb (https://kubb.dev/).
3
+ * Do not edit manually.
4
+ */
5
+
6
+ import * as z from "zod";
7
+
8
+ /**
9
+ * @description Allowed range and default for a count selected by the installer.
10
+ */
11
+ export const ComputeChoiceRangeSchema = z.object({
12
+ "default": z.int().min(0).describe("Default value recommended when no installer override is supplied."),
13
+ "max": z.int().min(0).describe("Highest allowed value."),
14
+ "min": z.int().min(0).describe("Lowest allowed value.")
15
+ }).describe("Allowed range and default for a count selected by the installer.")
16
+
17
+ export type ComputeChoiceRange = z.infer<typeof ComputeChoiceRangeSchema>
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Generated by Kubb (https://kubb.dev/).
3
+ * Do not edit manually.
4
+ */
5
+
6
+ import * as z from "zod";
7
+ import { CapacityGroupSchema } from "./capacity-group-schema.js";
8
+
9
+ /**
10
+ * @description ComputeCluster resource for running long-running container workloads.\n\nA ComputeCluster provides the setup-owned machine boundary for containers.\nAlien may manage the worker fleet inside that boundary when setup grants\n`compute-cluster/management`.\n\n## Architecture\n\n- **Setup** creates cloud resources: ASGs/MIGs/VMSSs, IAM roles, security groups\n- **Alien** manages allowed fleet operations: machine count and runtime\n machine image rollout\n- A node agent runs on each machine from the selected runtime image channel\n\n## Example\n\n```rust\nuse alien_core::{CapacityGroup, ComputeCluster, MachineProfile};\n\nlet cluster = ComputeCluster::new(\"compute\".to_string())\n .capacity_group(CapacityGroup {\n group_id: \"general\".to_string(),\n instance_type: None,\n profile: Some(MachineProfile {\n cpu: \"4.0\".to_string(),\n memory_bytes: 16 * 1024 * 1024 * 1024,\n ephemeral_storage_bytes: 20 * 1024 * 1024 * 1024,\n architecture: None,\n gpu: None,\n }),\n min_size: 1,\n max_size: 5,\n scale_policy: None,\n nested_virtualization: None,\n })\n .build();\n```
11
+ */
12
+ export const ComputeClusterSchema = z.object({
13
+ get "capacityGroups"(){
14
+ return z.array(CapacityGroupSchema.describe("Capacity group definition.\n\nA capacity group represents machines with identical hardware profiles.\nEach group becomes a separate Auto Scaling Group (AWS), Managed Instance Group (GCP),\nor VM Scale Set (Azure).")).describe("Capacity groups defining the machine pools for this cluster.\nEach group becomes a separate ASG/MIG/VMSS.")
15
+ },
16
+ "containerCidr": z.string().describe("Container CIDR block for internal container networking.\nAuto-generated as \"10.244.0.0/16\" if not specified.\nEach machine gets a /24 subnet from this range.").nullish(),
17
+ "id": z.string().describe("Unique identifier for the container cluster.\nMust contain only alphanumeric characters, hyphens, and underscores.")
18
+ }).describe("ComputeCluster resource for running long-running container workloads.\n\nA ComputeCluster provides the setup-owned machine boundary for containers.\nAlien may manage the worker fleet inside that boundary when setup grants\n`compute-cluster/management`.\n\n## Architecture\n\n- **Setup** creates cloud resources: ASGs/MIGs/VMSSs, IAM roles, security groups\n- **Alien** manages allowed fleet operations: machine count and runtime\n machine image rollout\n- A node agent runs on each machine from the selected runtime image channel\n\n## Example\n\n```rust\nuse alien_core::{CapacityGroup, ComputeCluster, MachineProfile};\n\nlet cluster = ComputeCluster::new(\"compute\".to_string())\n .capacity_group(CapacityGroup {\n group_id: \"general\".to_string(),\n instance_type: None,\n profile: Some(MachineProfile {\n cpu: \"4.0\".to_string(),\n memory_bytes: 16 * 1024 * 1024 * 1024,\n ephemeral_storage_bytes: 20 * 1024 * 1024 * 1024,\n architecture: None,\n gpu: None,\n }),\n min_size: 1,\n max_size: 5,\n scale_policy: None,\n nested_virtualization: None,\n })\n .build();\n```")
19
+
20
+ export type ComputeCluster = z.infer<typeof ComputeClusterSchema>
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Generated by Kubb (https://kubb.dev/).
3
+ * Do not edit manually.
4
+ */
5
+
6
+ import * as z from "zod";
7
+
8
+ /**
9
+ * @description User-selected deployment settings for one compute pool.
10
+ */
11
+ export const ComputePoolSelectionSchema = z.union([z.object({
12
+ "machine": z.string().describe("Provider machine type selected for this deployment.").nullish(),
13
+ "machines": z.int().min(0).describe("Number of machines to run."),
14
+ "mode": z.enum(["fixed"])
15
+ }), z.object({
16
+ "machine": z.string().describe("Provider machine type selected for this deployment.").nullish(),
17
+ "max": z.int().min(0).describe("Maximum machine count."),
18
+ "min": z.int().min(0).describe("Minimum machine count."),
19
+ "mode": z.enum(["autoscale"])
20
+ })]).describe("User-selected deployment settings for one compute pool.")
21
+
22
+ export type ComputePoolSelection = z.infer<typeof ComputePoolSelectionSchema>
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Generated by Kubb (https://kubb.dev/).
3
+ * Do not edit manually.
4
+ */
5
+
6
+ import * as z from "zod";
7
+ import { ComputePoolSelectionSchema } from "./compute-pool-selection-schema.js";
8
+
9
+ /**
10
+ * @description Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts.
11
+ */
12
+ export const ComputeSettingsSchema = z.object({
13
+ "pools": z.optional(z.object({
14
+
15
+ }).catchall(z.lazy(() => ComputePoolSelectionSchema).describe("User-selected deployment settings for one compute pool.")).describe("Selected compute choices keyed by pool ID."))
16
+ }).describe("Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts.")
17
+
18
+ export type ComputeSettings = z.infer<typeof ComputeSettingsSchema>
@@ -5,7 +5,7 @@
5
5
 
6
6
  import * as z from "zod";
7
7
  import { ContainerStatusSchema } from "./container-status-schema.js";
8
- import { LoadBalancerEndpointSchema } from "./load-balancer-endpoint-schema.js";
8
+ import { PublicEndpointOutputSchema } from "./public-endpoint-output-schema.js";
9
9
  import { ReplicaStatusSchema } from "./replica-status-schema.js";
10
10
 
11
11
  /**
@@ -15,17 +15,16 @@ export const ContainerOutputsSchema = z.object({
15
15
  "currentReplicas": z.int().min(0).describe("Number of current replicas"),
16
16
  "desiredReplicas": z.int().min(0).describe("Desired number of replicas"),
17
17
  "internalDns": z.string().describe("Internal DNS name (e.g., \"api.svc\")"),
18
- get "loadBalancerEndpoint"(){
19
- return z.union([LoadBalancerEndpointSchema, z.null()]).optional()
20
- },
21
18
  "name": z.string().describe("Container name in the managed container backend"),
19
+ "publicEndpoints": z.optional(z.object({
20
+
21
+ }).catchall(z.lazy(() => PublicEndpointOutputSchema).describe("Runtime-resolved public endpoint metadata.")).describe("Public endpoints resolved for this container.")),
22
22
  get "replicas"(){
23
23
  return z.array(ReplicaStatusSchema.describe("Status of a single container replica.")).describe("Status of each replica")
24
24
  },
25
25
  get "status"(){
26
26
  return ContainerStatusSchema.describe("Container status in the managed container backend.")
27
- },
28
- "url": z.string().describe("Public URL (if exposed publicly)").nullish()
27
+ }
29
28
  }).describe("Outputs generated by a successfully provisioned Container.")
30
29
 
31
30
  export type ContainerOutputs = z.infer<typeof ContainerOutputsSchema>
@@ -4,16 +4,12 @@
4
4
  */
5
5
 
6
6
  import * as z from "zod";
7
- import { ExposeProtocolSchema } from "./expose-protocol-schema.js";
8
7
 
9
8
  /**
10
9
  * @description Container port configuration.
11
10
  */
12
11
  export const ContainerPortSchema = z.object({
13
- get "expose"(){
14
- return z.union([ExposeProtocolSchema, z.null()]).optional()
15
- },
16
- "port": z.int().min(0).describe("Port number")
12
+ "port": z.int().min(0).describe("Port number")
17
13
  }).describe("Container port configuration.")
18
14
 
19
15
  export type ContainerPort = z.infer<typeof ContainerPortSchema>
@@ -10,11 +10,12 @@ import { ContainerGpuSpecSchema } from "./container-gpu-spec-schema.js";
10
10
  import { ContainerPortSchema } from "./container-port-schema.js";
11
11
  import { HealthCheckSchema } from "./health-check-schema.js";
12
12
  import { PersistentStorageSchema } from "./persistent-storage-schema.js";
13
+ import { PublicEndpointSchema } from "./public-endpoint-schema.js";
13
14
  import { ResourceRefSchema } from "./resource-ref-schema.js";
14
15
  import { ResourceSpecSchema } from "./resource-spec-schema.js";
15
16
 
16
17
  /**
17
- * @description Container resource for running long-running container workloads.\n\nA Container defines a deployable unit that runs on a ComputeCluster.\nThe managed container backend handles scheduling replicas across machines,\nautoscaling based on various 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```
18
+ * @description Container resource for running long-running container workloads.\n\nA Container defines a deployable unit that runs on a ComputeCluster.\nThe managed container backend handles scheduling replicas across machines,\nautoscaling based on various metrics, and service discovery.\n\n## Example\n\n```rust\nuse alien_core::{Container, ContainerCode, ResourceSpec, ContainerAutoscaling, PublicEndpoint, 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 .public_endpoint(PublicEndpoint {\n name: \"api\".to_string(),\n port: 8080,\n protocol: ExposeProtocol::Http,\n host_label: None,\n wildcard_subdomains: false,\n })\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```
18
19
  */
19
20
  export const ContainerSchema = z.object({
20
21
  get "autoscaling"(){
@@ -51,10 +52,13 @@ get "persistentStorage"(){
51
52
  },
52
53
  "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(),
53
54
  get "ports"(){
54
- return z.array(ContainerPortSchema.describe("Container port configuration.")).describe("Container ports to expose (at least one required)")
55
+ return z.array(ContainerPortSchema.describe("Container port configuration.")).describe("Internal container ports (at least one required).")
56
+ },
57
+ get "publicEndpoints"(){
58
+ return z.array(PublicEndpointSchema.describe("Public endpoint configuration for port-backed workload resources.")).describe("Public endpoints exposed by the container.")
55
59
  },
56
60
  "replicas": z.int().min(0).describe("Fixed replica count (for stateful containers or stateless without autoscaling)").nullish(),
57
61
  "stateful": z.optional(z.boolean().describe("Whether container is stateful (gets stable ordinals, optional persistent volumes)"))
58
- }).describe("Container resource for running long-running container workloads.\n\nA Container defines a deployable unit that runs on a ComputeCluster.\nThe managed container backend handles scheduling replicas across machines,\nautoscaling based on various 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```")
62
+ }).describe("Container resource for running long-running container workloads.\n\nA Container defines a deployable unit that runs on a ComputeCluster.\nThe managed container backend handles scheduling replicas across machines,\nautoscaling based on various metrics, and service discovery.\n\n## Example\n\n```rust\nuse alien_core::{Container, ContainerCode, ResourceSpec, ContainerAutoscaling, PublicEndpoint, 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 .public_endpoint(PublicEndpoint {\n name: \"api\".to_string(),\n port: 8080,\n protocol: ExposeProtocol::Http,\n host_label: None,\n wildcard_subdomains: false,\n })\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```")
59
63
 
60
64
  export type Container = z.infer<typeof ContainerSchema>
@@ -4,9 +4,13 @@
4
4
  */
5
5
 
6
6
  import * as z from "zod";
7
+ import { PublicEndpointOutputSchema } from "./public-endpoint-output-schema.js";
7
8
 
8
9
  export const DaemonOutputsSchema = z.object({
9
10
  "daemonName": z.string(),
11
+ "publicEndpoints": z.optional(z.object({
12
+
13
+ }).catchall(z.lazy(() => PublicEndpointOutputSchema).describe("Runtime-resolved public endpoint metadata."))),
10
14
  "running": z.boolean()
11
15
  })
12
16
 
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Generated by Kubb (https://kubb.dev/).
3
+ * Do not edit manually.
4
+ */
5
+
6
+ import * as z from "zod";
7
+
8
+ export const DaemonRuntimeMountSchema = z.object({
9
+ "options": z.string().describe("Optional mount options understood by the backend runtime.").nullish(),
10
+ "source": z.string().describe("Absolute host path to mount into the daemon container."),
11
+ "target": z.string().describe("Absolute container path where the source is mounted.")
12
+ })
13
+
14
+ export type DaemonRuntimeMount = z.infer<typeof DaemonRuntimeMountSchema>
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Generated by Kubb (https://kubb.dev/).
3
+ * Do not edit manually.
4
+ */
5
+
6
+ import * as z from "zod";
7
+ import { DaemonRuntimeMountSchema } from "./daemon-runtime-mount-schema.js";
8
+
9
+ export const DaemonRuntimeSchema = z.object({
10
+ get "mounts"(){
11
+ return z.array(DaemonRuntimeMountSchema).describe("Host mounts exposed to the daemon container.").optional()
12
+ },
13
+ "networkMode": z.string().describe("Network mode. Supported values are `host` and `appnet`.").nullish(),
14
+ "pidNamespace": z.string().describe("Process namespace mode. Supported values are `host` and `private`.").nullish(),
15
+ "privileged": z.boolean().describe("Run the daemon container with elevated host capabilities.").nullish(),
16
+ "user": z.string().describe("Runtime user, as a numeric uid or uid:gid string.").nullish()
17
+ })
18
+
19
+ export type DaemonRuntime = z.infer<typeof DaemonRuntimeSchema>
@@ -5,11 +5,14 @@
5
5
 
6
6
  import * as z from "zod";
7
7
  import { DaemonCodeSchema } from "./daemon-code-schema.js";
8
+ import { DaemonRuntimeSchema } from "./daemon-runtime-schema.js";
9
+ import { HealthCheckSchema } from "./health-check-schema.js";
10
+ import { PublicEndpointSchema } from "./public-endpoint-schema.js";
8
11
  import { ResourceRefSchema } from "./resource-ref-schema.js";
9
12
  import { ResourceSpecSchema } from "./resource-spec-schema.js";
10
13
 
11
14
  export const DaemonSchema = z.object({
12
- "cluster": z.string().describe("ComputeCluster resource ID that this daemon runs on for Horizon-backed\ncloud platforms. Kubernetes and Local runtimes ignore this field.").nullish(),
15
+ "cluster": z.string().describe("ComputeCluster resource ID that this daemon runs on for managed cloud\ncompute backends. Kubernetes and Local runtimes ignore this field.").nullish(),
13
16
  get "code"(){
14
17
  return DaemonCodeSchema
15
18
  },
@@ -21,6 +24,9 @@ get "cpu"(){
21
24
  "environment": z.optional(z.object({
22
25
 
23
26
  }).catchall(z.string())),
27
+ get "healthCheck"(){
28
+ return z.union([HealthCheckSchema, z.null()]).optional()
29
+ },
24
30
  "id": z.string(),
25
31
  get "links"(){
26
32
  return z.array(ResourceRefSchema.describe("New ResourceRef that works with any resource type.\nThis can eventually replace the enum-based ResourceRef for full extensibility."))
@@ -29,7 +35,13 @@ get "memory"(){
29
35
  return ResourceSpecSchema.describe("Resource specification with min/desired values.").optional()
30
36
  },
31
37
  "permissions": z.string(),
32
- "pool": z.string().describe("Capacity group/pool to run on for backends that expose machine pools.").nullish()
38
+ "pool": z.string().describe("Capacity group/pool to run on for backends that expose machine pools.").nullish(),
39
+ get "publicEndpoints"(){
40
+ return z.array(PublicEndpointSchema.describe("Public endpoint configuration for port-backed workload resources.")).describe("Public endpoints exposed by the daemon.")
41
+ },
42
+ get "runtime"(){
43
+ return z.union([DaemonRuntimeSchema, z.null()]).optional()
44
+ }
33
45
  })
34
46
 
35
47
  export type Daemon = z.infer<typeof DaemonSchema>
@@ -6,8 +6,8 @@
6
6
  import * as z from "zod";
7
7
 
8
8
  /**
9
- * @description Protocol for exposed ports.
9
+ * @description Protocol for public workload endpoints.
10
10
  */
11
- export const ExposeProtocolSchema = z.enum(["http", "tcp"]).describe("Protocol for exposed ports.")
11
+ export const ExposeProtocolSchema = z.enum(["http", "tcp"]).describe("Protocol for public workload endpoints.")
12
12
 
13
13
  export type ExposeProtocol = z.infer<typeof ExposeProtocolSchema>
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Generated by Kubb (https://kubb.dev/).
3
+ * Do not edit manually.
4
+ */
5
+
6
+ import * as z from "zod";
7
+
8
+ /**
9
+ * @description GPU specification for a capacity group.
10
+ */
11
+ export const GpuSpecSchema = z.object({
12
+ "count": z.int().min(0).describe("Number of GPUs per machine"),
13
+ "type": z.string().describe("GPU type identifier (e.g., \"nvidia-a100\", \"nvidia-t4\")")
14
+ }).describe("GPU specification for a capacity group.")
15
+
16
+ export type GpuSpec = z.infer<typeof GpuSpecSchema>
@@ -1,6 +1,7 @@
1
1
  export type { AgentStatus } from "./agent-status-schema.js";
2
2
  export type { AlienError } from "./alien-error-schema.js";
3
3
  export type { AlienEvent } from "./alien-event-schema.js";
4
+ export type { Architecture } from "./architecture-schema.js";
4
5
  export type { ArtifactRegistryHeartbeatData } from "./artifact-registry-heartbeat-data-schema.js";
5
6
  export type { ArtifactRegistryHeartbeatStatus } from "./artifact-registry-heartbeat-status-schema.js";
6
7
  export type { ArtifactRegistryOutputs } from "./artifact-registry-outputs-schema.js";
@@ -86,6 +87,8 @@ export type { BuildHeartbeatStatus } from "./build-heartbeat-status-schema.js";
86
87
  export type { BuildOutputs } from "./build-outputs-schema.js";
87
88
  export type { Build } from "./build-schema.js";
88
89
  export type { BuildStatus } from "./build-status-schema.js";
90
+ export type { CapacityGroupScalePolicy } from "./capacity-group-scale-policy-schema.js";
91
+ export type { CapacityGroup } from "./capacity-group-schema.js";
89
92
  export type { CommandResponse } from "./command-response-schema.js";
90
93
  export type { CommandState } from "./command-state-schema.js";
91
94
  export type { CommandStatusResponse } from "./command-status-response-schema.js";
@@ -93,8 +96,12 @@ export type { ComputeCapacityBlockerCategory } from "./compute-capacity-blocker-
93
96
  export type { ComputeCapacityBlocker } from "./compute-capacity-blocker-schema.js";
94
97
  export type { ComputeCapacityGroupStatus } from "./compute-capacity-group-status-schema.js";
95
98
  export type { ComputeCapacityRecommendation } from "./compute-capacity-recommendation-schema.js";
99
+ export type { ComputeChoiceRange } from "./compute-choice-range-schema.js";
96
100
  export type { ComputeClusterHeartbeatData } from "./compute-cluster-heartbeat-data-schema.js";
97
101
  export type { ComputeClusterHeartbeatStatus } from "./compute-cluster-heartbeat-status-schema.js";
102
+ export type { ComputeCluster } from "./compute-cluster-schema.js";
103
+ export type { ComputePoolSelection } from "./compute-pool-selection-schema.js";
104
+ export type { ComputeSettings } from "./compute-settings-schema.js";
98
105
  export type { ComputeType } from "./compute-type-schema.js";
99
106
  export type { ContainerAutoscaling } from "./container-autoscaling-schema.js";
100
107
  export type { ContainerCode } from "./container-code-schema.js";
@@ -111,6 +118,8 @@ export type { CustomDomainConfig } from "./custom-domain-config-schema.js";
111
118
  export type { DaemonCode } from "./daemon-code-schema.js";
112
119
  export type { DaemonHeartbeatData } from "./daemon-heartbeat-data-schema.js";
113
120
  export type { DaemonOutputs } from "./daemon-outputs-schema.js";
121
+ export type { DaemonRuntimeMount } from "./daemon-runtime-mount-schema.js";
122
+ export type { DaemonRuntime } from "./daemon-runtime-schema.js";
114
123
  export type { Daemon } from "./daemon-schema.js";
115
124
  export type { DeploymentModel } from "./deployment-model-schema.js";
116
125
  export type { DeploymentStatus } from "./deployment-status-schema.js";
@@ -151,6 +160,7 @@ export type { GcpStorageImportData } from "./gcp-storage-import-data-schema.js";
151
160
  export type { GcpVaultImportData } from "./gcp-vault-import-data-schema.js";
152
161
  export type { GcpVpcNetworkHeartbeatData } from "./gcp-vpc-network-heartbeat-data-schema.js";
153
162
  export type { GcpWorkerImportData } from "./gcp-worker-import-data-schema.js";
163
+ export type { GpuSpec } from "./gpu-spec-schema.js";
154
164
  export type { HealthCheck } from "./health-check-schema.js";
155
165
  export type { HeartbeatBackend } from "./heartbeat-backend-schema.js";
156
166
  export type { HeartbeatCollectionIssueReason } from "./heartbeat-collection-issue-reason-schema.js";
@@ -162,7 +172,6 @@ export type { HorizonWorkloadSchedulingMode } from "./horizon-workload-schedulin
162
172
  export type { HttpMethod } from "./http-method-schema.js";
163
173
  export type { ImportSourceKind } from "./import-source-kind-schema.js";
164
174
  export type { ImportedResource } from "./imported-resource-schema.js";
165
- export type { Ingress } from "./ingress-schema.js";
166
175
  export type { KubernetesBuildHeartbeatData } from "./kubernetes-build-heartbeat-data-schema.js";
167
176
  export type { KubernetesCertificateMode } from "./kubernetes-certificate-mode-schema.js";
168
177
  export type { KubernetesCloudReference } from "./kubernetes-cloud-reference-schema.js";
@@ -217,6 +226,7 @@ export type { LocalServiceAccountHeartbeatData } from "./local-service-account-h
217
226
  export type { LocalStorageHeartbeatData } from "./local-storage-heartbeat-data-schema.js";
218
227
  export type { LocalVaultHeartbeatData } from "./local-vault-heartbeat-data-schema.js";
219
228
  export type { LocalWorkerHeartbeatData } from "./local-worker-heartbeat-data-schema.js";
229
+ export type { MachineProfile } from "./machine-profile-schema.js";
220
230
  export type { ManagedRuntimeEventInvolvedObject } from "./managed-runtime-event-involved-object-schema.js";
221
231
  export type { ManagedRuntimeEventSnapshot } from "./managed-runtime-event-snapshot-schema.js";
222
232
  export type { ManagedRuntimeEventSource } from "./managed-runtime-event-source-schema.js";
@@ -245,6 +255,8 @@ export type { PresignedRequestBackend } from "./presigned-request-backend-schema
245
255
  export type { PresignedRequest } from "./presigned-request-schema.js";
246
256
  export type { ProviderFleetStatus } from "./provider-fleet-status-schema.js";
247
257
  export type { ProviderLifecycleState } from "./provider-lifecycle-state-schema.js";
258
+ export type { PublicEndpointOutput } from "./public-endpoint-output-schema.js";
259
+ export type { PublicEndpoint } from "./public-endpoint-schema.js";
248
260
  export type { PushProgress } from "./push-progress-schema.js";
249
261
  export type { QueueHeartbeatData } from "./queue-heartbeat-data-schema.js";
250
262
  export type { QueueHeartbeatStatus } from "./queue-heartbeat-status-schema.js";
@@ -278,6 +290,13 @@ export type { ServiceActivationHeartbeatData } from "./service-activation-heartb
278
290
  export type { ServiceActivationHeartbeatStatus } from "./service-activation-heartbeat-status-schema.js";
279
291
  export type { StackImportRequest } from "./stack-import-request-schema.js";
280
292
  export type { StackImportResponse } from "./stack-import-response-schema.js";
293
+ export type { StackInputDefaultValue } from "./stack-input-default-value-schema.js";
294
+ export type { StackInputDefinition } from "./stack-input-definition-schema.js";
295
+ export type { StackInputEnvironmentMapping } from "./stack-input-environment-mapping-schema.js";
296
+ export type { StackInputEnvironmentVariableType } from "./stack-input-environment-variable-type-schema.js";
297
+ export type { StackInputKind } from "./stack-input-kind-schema.js";
298
+ export type { StackInputProvider } from "./stack-input-provider-schema.js";
299
+ export type { StackInputValidation } from "./stack-input-validation-schema.js";
281
300
  export type { StackRef } from "./stack-ref-schema.js";
282
301
  export type { StackResourceState } from "./stack-resource-state-schema.js";
283
302
  export type { Stack } from "./stack-schema.js";
@@ -306,6 +325,7 @@ export type { Vault } from "./vault-schema.js";
306
325
  export type { WorkerCode } from "./worker-code-schema.js";
307
326
  export type { WorkerHeartbeatData } from "./worker-heartbeat-data-schema.js";
308
327
  export type { WorkerOutputs } from "./worker-outputs-schema.js";
328
+ export type { WorkerPublicEndpoint } from "./worker-public-endpoint-schema.js";
309
329
  export type { Worker } from "./worker-schema.js";
310
330
  export type { WorkerTrigger } from "./worker-trigger-schema.js";
311
331
  export type { WorkloadHeartbeatStatus } from "./workload-heartbeat-status-schema.js";
@@ -313,6 +333,7 @@ export type { WorkloadReplicaStatus } from "./workload-replica-status-schema.js"
313
333
  export { AgentStatusSchema } from "./agent-status-schema.js";
314
334
  export { AlienErrorSchema } from "./alien-error-schema.js";
315
335
  export { AlienEventSchema } from "./alien-event-schema.js";
336
+ export { ArchitectureSchema } from "./architecture-schema.js";
316
337
  export { ArtifactRegistryHeartbeatDataSchema } from "./artifact-registry-heartbeat-data-schema.js";
317
338
  export { ArtifactRegistryHeartbeatStatusSchema } from "./artifact-registry-heartbeat-status-schema.js";
318
339
  export { ArtifactRegistryOutputsSchema } from "./artifact-registry-outputs-schema.js";
@@ -398,6 +419,8 @@ export { BuildHeartbeatStatusSchema } from "./build-heartbeat-status-schema.js";
398
419
  export { BuildOutputsSchema } from "./build-outputs-schema.js";
399
420
  export { BuildSchema } from "./build-schema.js";
400
421
  export { BuildStatusSchema } from "./build-status-schema.js";
422
+ export { CapacityGroupScalePolicySchema } from "./capacity-group-scale-policy-schema.js";
423
+ export { CapacityGroupSchema } from "./capacity-group-schema.js";
401
424
  export { CommandResponseSchema } from "./command-response-schema.js";
402
425
  export { CommandStateSchema } from "./command-state-schema.js";
403
426
  export { CommandStatusResponseSchema } from "./command-status-response-schema.js";
@@ -405,8 +428,12 @@ export { ComputeCapacityBlockerCategorySchema } from "./compute-capacity-blocker
405
428
  export { ComputeCapacityBlockerSchema } from "./compute-capacity-blocker-schema.js";
406
429
  export { ComputeCapacityGroupStatusSchema } from "./compute-capacity-group-status-schema.js";
407
430
  export { ComputeCapacityRecommendationSchema } from "./compute-capacity-recommendation-schema.js";
431
+ export { ComputeChoiceRangeSchema } from "./compute-choice-range-schema.js";
408
432
  export { ComputeClusterHeartbeatDataSchema } from "./compute-cluster-heartbeat-data-schema.js";
409
433
  export { ComputeClusterHeartbeatStatusSchema } from "./compute-cluster-heartbeat-status-schema.js";
434
+ export { ComputeClusterSchema } from "./compute-cluster-schema.js";
435
+ export { ComputePoolSelectionSchema } from "./compute-pool-selection-schema.js";
436
+ export { ComputeSettingsSchema } from "./compute-settings-schema.js";
410
437
  export { ComputeTypeSchema } from "./compute-type-schema.js";
411
438
  export { ContainerAutoscalingSchema } from "./container-autoscaling-schema.js";
412
439
  export { ContainerCodeSchema } from "./container-code-schema.js";
@@ -423,6 +450,8 @@ export { CustomDomainConfigSchema } from "./custom-domain-config-schema.js";
423
450
  export { DaemonCodeSchema } from "./daemon-code-schema.js";
424
451
  export { DaemonHeartbeatDataSchema } from "./daemon-heartbeat-data-schema.js";
425
452
  export { DaemonOutputsSchema } from "./daemon-outputs-schema.js";
453
+ export { DaemonRuntimeMountSchema } from "./daemon-runtime-mount-schema.js";
454
+ export { DaemonRuntimeSchema } from "./daemon-runtime-schema.js";
426
455
  export { DaemonSchema } from "./daemon-schema.js";
427
456
  export { DeploymentModelSchema } from "./deployment-model-schema.js";
428
457
  export { DeploymentStatusSchema } from "./deployment-status-schema.js";
@@ -463,6 +492,7 @@ export { GcpStorageImportDataSchema } from "./gcp-storage-import-data-schema.js"
463
492
  export { GcpVaultImportDataSchema } from "./gcp-vault-import-data-schema.js";
464
493
  export { GcpVpcNetworkHeartbeatDataSchema } from "./gcp-vpc-network-heartbeat-data-schema.js";
465
494
  export { GcpWorkerImportDataSchema } from "./gcp-worker-import-data-schema.js";
495
+ export { GpuSpecSchema } from "./gpu-spec-schema.js";
466
496
  export { HealthCheckSchema } from "./health-check-schema.js";
467
497
  export { HeartbeatBackendSchema } from "./heartbeat-backend-schema.js";
468
498
  export { HeartbeatCollectionIssueReasonSchema } from "./heartbeat-collection-issue-reason-schema.js";
@@ -474,7 +504,6 @@ export { HorizonWorkloadSchedulingModeSchema } from "./horizon-workload-scheduli
474
504
  export { HttpMethodSchema } from "./http-method-schema.js";
475
505
  export { ImportSourceKindSchema } from "./import-source-kind-schema.js";
476
506
  export { ImportedResourceSchema } from "./imported-resource-schema.js";
477
- export { IngressSchema } from "./ingress-schema.js";
478
507
  export { KubernetesBuildHeartbeatDataSchema } from "./kubernetes-build-heartbeat-data-schema.js";
479
508
  export { KubernetesCertificateModeSchema } from "./kubernetes-certificate-mode-schema.js";
480
509
  export { KubernetesCloudReferenceSchema } from "./kubernetes-cloud-reference-schema.js";
@@ -529,6 +558,7 @@ export { LocalServiceAccountHeartbeatDataSchema } from "./local-service-account-
529
558
  export { LocalStorageHeartbeatDataSchema } from "./local-storage-heartbeat-data-schema.js";
530
559
  export { LocalVaultHeartbeatDataSchema } from "./local-vault-heartbeat-data-schema.js";
531
560
  export { LocalWorkerHeartbeatDataSchema } from "./local-worker-heartbeat-data-schema.js";
561
+ export { MachineProfileSchema } from "./machine-profile-schema.js";
532
562
  export { ManagedRuntimeEventInvolvedObjectSchema } from "./managed-runtime-event-involved-object-schema.js";
533
563
  export { ManagedRuntimeEventSnapshotSchema } from "./managed-runtime-event-snapshot-schema.js";
534
564
  export { ManagedRuntimeEventSourceSchema } from "./managed-runtime-event-source-schema.js";
@@ -557,6 +587,8 @@ export { PresignedRequestBackendSchema } from "./presigned-request-backend-schem
557
587
  export { PresignedRequestSchema } from "./presigned-request-schema.js";
558
588
  export { ProviderFleetStatusSchema } from "./provider-fleet-status-schema.js";
559
589
  export { ProviderLifecycleStateSchema } from "./provider-lifecycle-state-schema.js";
590
+ export { PublicEndpointOutputSchema } from "./public-endpoint-output-schema.js";
591
+ export { PublicEndpointSchema } from "./public-endpoint-schema.js";
560
592
  export { PushProgressSchema } from "./push-progress-schema.js";
561
593
  export { QueueHeartbeatDataSchema } from "./queue-heartbeat-data-schema.js";
562
594
  export { QueueHeartbeatStatusSchema } from "./queue-heartbeat-status-schema.js";
@@ -590,6 +622,13 @@ export { ServiceActivationHeartbeatDataSchema } from "./service-activation-heart
590
622
  export { ServiceActivationHeartbeatStatusSchema } from "./service-activation-heartbeat-status-schema.js";
591
623
  export { StackImportRequestSchema } from "./stack-import-request-schema.js";
592
624
  export { StackImportResponseSchema } from "./stack-import-response-schema.js";
625
+ export { StackInputDefaultValueSchema } from "./stack-input-default-value-schema.js";
626
+ export { StackInputDefinitionSchema } from "./stack-input-definition-schema.js";
627
+ export { StackInputEnvironmentMappingSchema } from "./stack-input-environment-mapping-schema.js";
628
+ export { StackInputEnvironmentVariableTypeSchema } from "./stack-input-environment-variable-type-schema.js";
629
+ export { StackInputKindSchema } from "./stack-input-kind-schema.js";
630
+ export { StackInputProviderSchema } from "./stack-input-provider-schema.js";
631
+ export { StackInputValidationSchema } from "./stack-input-validation-schema.js";
593
632
  export { StackRefSchema } from "./stack-ref-schema.js";
594
633
  export { StackResourceStateSchema } from "./stack-resource-state-schema.js";
595
634
  export { StackSchema } from "./stack-schema.js";
@@ -618,6 +657,7 @@ export { VaultSchema } from "./vault-schema.js";
618
657
  export { WorkerCodeSchema } from "./worker-code-schema.js";
619
658
  export { WorkerHeartbeatDataSchema } from "./worker-heartbeat-data-schema.js";
620
659
  export { WorkerOutputsSchema } from "./worker-outputs-schema.js";
660
+ export { WorkerPublicEndpointSchema } from "./worker-public-endpoint-schema.js";
621
661
  export { WorkerSchema } from "./worker-schema.js";
622
662
  export { WorkerTriggerSchema } from "./worker-trigger-schema.js";
623
663
  export { WorkloadHeartbeatStatusSchema } from "./workload-heartbeat-status-schema.js";
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Generated by Kubb (https://kubb.dev/).
3
+ * Do not edit manually.
4
+ */
5
+
6
+ import * as z from "zod";
7
+ import { ArchitectureSchema } from "./architecture-schema.js";
8
+ import { GpuSpecSchema } from "./gpu-spec-schema.js";
9
+
10
+ /**
11
+ * @description Machine resource profile for a capacity group.\n\nRepresents the hardware specifications for machines in a capacity group.\nThese are hardware totals (what the instance type advertises), not allocatable\ncapacity. The managed container scheduler internally subtracts system reserves for planning.
12
+ */
13
+ export const MachineProfileSchema = z.object({
14
+ get "architecture"(){
15
+ return z.union([ArchitectureSchema, z.null()]).optional()
16
+ },
17
+ "cpu": z.string().describe("CPU cores per machine (hardware total) - stored as string to preserve precision\n(e.g., \"8.0\", \"4.5\")"),
18
+ "ephemeralStorageBytes": z.int().min(0).describe("Ephemeral storage in bytes (hardware total)"),
19
+ get "gpu"(){
20
+ return z.union([GpuSpecSchema, z.null()]).optional()
21
+ },
22
+ "memoryBytes": z.int().min(0).describe("Memory in bytes (hardware total)")
23
+ }).describe("Machine resource profile for a capacity group.\n\nRepresents the hardware specifications for machines in a capacity group.\nThese are hardware totals (what the instance type advertises), not allocatable\ncapacity. The managed container scheduler internally subtracts system reserves for planning.")
24
+
25
+ export type MachineProfile = z.infer<typeof MachineProfileSchema>
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Generated by Kubb (https://kubb.dev/).
3
+ * Do not edit manually.
4
+ */
5
+
6
+ import * as z from "zod";
7
+ import { LoadBalancerEndpointSchema } from "./load-balancer-endpoint-schema.js";
8
+
9
+ /**
10
+ * @description Runtime-resolved public endpoint metadata.
11
+ */
12
+ export const PublicEndpointOutputSchema = z.object({
13
+ "host": z.string().describe("Hostname for this endpoint."),
14
+ get "loadBalancerEndpoint"(){
15
+ return z.union([LoadBalancerEndpointSchema, z.null()]).optional()
16
+ },
17
+ "url": z.string().describe("Base URL for this endpoint."),
18
+ "wildcardHost": z.string().describe("Wildcard hostname routed to this endpoint, when configured.").nullish()
19
+ }).describe("Runtime-resolved public endpoint metadata.")
20
+
21
+ export type PublicEndpointOutput = z.infer<typeof PublicEndpointOutputSchema>
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Generated by Kubb (https://kubb.dev/).
3
+ * Do not edit manually.
4
+ */
5
+
6
+ import * as z from "zod";
7
+ import { ExposeProtocolSchema } from "./expose-protocol-schema.js";
8
+
9
+ /**
10
+ * @description Public endpoint configuration for port-backed workload resources.
11
+ */
12
+ export const PublicEndpointSchema = z.object({
13
+ "hostLabel": z.string().describe("Optional DNS label override for generated endpoint hostnames.").nullish(),
14
+ "name": z.string().describe("Endpoint name within the resource."),
15
+ "port": z.int().min(0).describe("Workload port served by the public endpoint."),
16
+ get "protocol"(){
17
+ return ExposeProtocolSchema.describe("Protocol for public workload endpoints.")
18
+ },
19
+ "wildcardSubdomains": z.optional(z.boolean().describe("Whether to route wildcard subdomains to this endpoint."))
20
+ }).describe("Public endpoint configuration for port-backed workload resources.")
21
+
22
+ export type PublicEndpoint = z.infer<typeof PublicEndpointSchema>
@@ -19,6 +19,9 @@ export const StackImportRequestSchema = z.object({
19
19
  },
20
20
  "deploymentGroupToken": z.string().describe("Deployment-group token authorizing the import."),
21
21
  "deploymentName": z.string().describe("User-chosen deployment name. Must be unique within the deployment\ngroup; the manager returns 409 on collision rather than silently\nresolving to an existing deployment. Each setup adapter picks\nthe natural source: CloudFormation defaults to the CFN stack name,\nHelm to `{namespace}/{release}`, Terraform requires an explicit\n`name` attribute on the `alien_deployment` resource."),
22
+ "inputValues": z.optional(z.object({
23
+
24
+ }).catchall(z.any()).describe("Deployer-provided stack input values collected by generated setup\nsurfaces. Platform-backed managers resolve these into runtime\nenvironment variables before deployment creation; standalone managers\naccept the field for setup package compatibility.")),
22
25
  get "managementConfig"(){
23
26
  return z.union([ManagementConfigSchema, z.null()]).optional()
24
27
  },
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Generated by Kubb (https://kubb.dev/).
3
+ * Do not edit manually.
4
+ */
5
+
6
+ import * as z from "zod";
7
+
8
+ /**
9
+ * @description Stack input default value.
10
+ */
11
+ export const StackInputDefaultValueSchema = z.union([z.object({
12
+ "type": z.enum(["string"]),
13
+ "value": z.string().describe("String default.")
14
+ }), z.object({
15
+ "type": z.enum(["number"]),
16
+ "value": z.string().describe("Number default.")
17
+ }), z.object({
18
+ "type": z.enum(["boolean"]),
19
+ "value": z.boolean().describe("Boolean default.")
20
+ }), z.object({
21
+ "type": z.enum(["stringList"]),
22
+ "value": z.array(z.string()).describe("String list default.")
23
+ })]).describe("Stack input default value.")
24
+
25
+ export type StackInputDefaultValue = z.infer<typeof StackInputDefaultValueSchema>