@alienplatform/core 1.8.0 → 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.
- package/.turbo/turbo-build.log +12 -12
- package/dist/index.d.ts +755 -72
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +199 -33
- package/dist/index.js.map +1 -1
- package/dist/stack.js +579 -44
- package/dist/stack.js.map +1 -1
- package/dist/tests/index.js +1 -1
- package/package.json +1 -1
- package/src/__tests__/__snapshots__/stack.test.ts.snap +10 -4
- package/src/__tests__/stack.test.ts +184 -2
- package/src/compute-cluster.ts +211 -0
- package/src/container.ts +38 -26
- package/src/daemon.ts +79 -0
- package/src/generated/index.ts +42 -2
- package/src/generated/schemas/architecture.json +1 -0
- package/src/generated/schemas/capacityGroup.json +1 -0
- package/src/generated/schemas/capacityGroupScalePolicy.json +1 -0
- package/src/generated/schemas/computeChoiceRange.json +1 -0
- package/src/generated/schemas/computeCluster.json +1 -0
- package/src/generated/schemas/computePoolSelection.json +1 -0
- package/src/generated/schemas/computeSettings.json +1 -0
- package/src/generated/schemas/container.json +1 -1
- package/src/generated/schemas/containerOutputs.json +1 -1
- package/src/generated/schemas/containerPort.json +1 -1
- package/src/generated/schemas/daemon.json +1 -1
- package/src/generated/schemas/daemonOutputs.json +1 -1
- package/src/generated/schemas/daemonRuntime.json +1 -0
- package/src/generated/schemas/daemonRuntimeMount.json +1 -0
- package/src/generated/schemas/exposeProtocol.json +1 -1
- package/src/generated/schemas/gpuSpec.json +1 -0
- package/src/generated/schemas/machineProfile.json +1 -0
- package/src/generated/schemas/publicEndpoint.json +1 -0
- package/src/generated/schemas/publicEndpointOutput.json +1 -0
- package/src/generated/schemas/stack.json +1 -1
- package/src/generated/schemas/stackImportRequest.json +1 -1
- package/src/generated/schemas/stackImportResponse.json +1 -1
- package/src/generated/schemas/stackInputDefaultValue.json +1 -0
- package/src/generated/schemas/stackInputDefinition.json +1 -0
- package/src/generated/schemas/stackInputEnvironmentMapping.json +1 -0
- package/src/generated/schemas/stackInputEnvironmentVariableType.json +1 -0
- package/src/generated/schemas/stackInputKind.json +1 -0
- package/src/generated/schemas/stackInputProvider.json +1 -0
- package/src/generated/schemas/stackInputValidation.json +1 -0
- package/src/generated/schemas/stackSettings.json +1 -1
- package/src/generated/schemas/worker.json +1 -1
- package/src/generated/schemas/workerOutputs.json +1 -1
- package/src/generated/schemas/workerPublicEndpoint.json +1 -0
- package/src/generated/zod/architecture-schema.ts +13 -0
- package/src/generated/zod/capacity-group-scale-policy-schema.ts +27 -0
- package/src/generated/zod/capacity-group-schema.ts +27 -0
- package/src/generated/zod/compute-choice-range-schema.ts +17 -0
- package/src/generated/zod/compute-cluster-schema.ts +20 -0
- package/src/generated/zod/compute-pool-selection-schema.ts +22 -0
- package/src/generated/zod/compute-settings-schema.ts +18 -0
- package/src/generated/zod/container-outputs-schema.ts +5 -6
- package/src/generated/zod/container-port-schema.ts +1 -5
- package/src/generated/zod/container-schema.ts +7 -3
- package/src/generated/zod/daemon-outputs-schema.ts +4 -0
- package/src/generated/zod/daemon-runtime-mount-schema.ts +14 -0
- package/src/generated/zod/daemon-runtime-schema.ts +19 -0
- package/src/generated/zod/daemon-schema.ts +14 -2
- package/src/generated/zod/expose-protocol-schema.ts +2 -2
- package/src/generated/zod/gpu-spec-schema.ts +16 -0
- package/src/generated/zod/index.ts +42 -2
- package/src/generated/zod/machine-profile-schema.ts +25 -0
- package/src/generated/zod/public-endpoint-output-schema.ts +21 -0
- package/src/generated/zod/public-endpoint-schema.ts +22 -0
- package/src/generated/zod/stack-import-request-schema.ts +3 -0
- package/src/generated/zod/stack-input-default-value-schema.ts +25 -0
- package/src/generated/zod/stack-input-definition-schema.ts +43 -0
- package/src/generated/zod/stack-input-environment-mapping-schema.ts +20 -0
- package/src/generated/zod/stack-input-environment-variable-type-schema.ts +13 -0
- package/src/generated/zod/stack-input-kind-schema.ts +13 -0
- package/src/generated/zod/stack-input-provider-schema.ts +13 -0
- package/src/generated/zod/stack-input-validation-schema.ts +23 -0
- package/src/generated/zod/stack-schema.ts +4 -0
- package/src/generated/zod/stack-settings-schema.ts +5 -1
- package/src/generated/zod/worker-outputs-schema.ts +4 -5
- package/src/generated/zod/worker-public-endpoint-schema.ts +17 -0
- package/src/generated/zod/worker-schema.ts +4 -4
- package/src/index.ts +9 -0
- package/src/input.ts +380 -0
- package/src/stack.ts +19 -0
- package/src/worker.ts +24 -14
- package/src/generated/schemas/ingress.json +0 -1
- package/src/generated/zod/ingress-schema.ts +0 -13
package/src/daemon.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
type DaemonCode,
|
|
3
3
|
type Daemon as DaemonConfig,
|
|
4
|
+
type DaemonRuntime,
|
|
4
5
|
DaemonSchema,
|
|
6
|
+
type ExposeProtocol,
|
|
7
|
+
type HealthCheck,
|
|
8
|
+
type PublicEndpoint,
|
|
5
9
|
type ResourceSpec,
|
|
6
10
|
type ResourceType,
|
|
7
11
|
} from "./generated/index.js"
|
|
@@ -11,14 +15,27 @@ export type {
|
|
|
11
15
|
Daemon as DaemonConfig,
|
|
12
16
|
DaemonCode,
|
|
13
17
|
DaemonOutputs,
|
|
18
|
+
DaemonRuntime,
|
|
19
|
+
ExposeProtocol,
|
|
20
|
+
HealthCheck,
|
|
21
|
+
PublicEndpoint,
|
|
14
22
|
ResourceSpec,
|
|
15
23
|
} from "./generated/index.js"
|
|
16
24
|
export {
|
|
17
25
|
DaemonCodeSchema,
|
|
18
26
|
DaemonSchema as DaemonConfigSchema,
|
|
19
27
|
DaemonOutputsSchema,
|
|
28
|
+
PublicEndpointSchema,
|
|
20
29
|
} from "./generated/index.js"
|
|
21
30
|
|
|
31
|
+
export type DaemonPublicEndpointOptions =
|
|
32
|
+
| ExposeProtocol
|
|
33
|
+
| {
|
|
34
|
+
protocol: ExposeProtocol
|
|
35
|
+
hostLabel?: string
|
|
36
|
+
wildcardSubdomains?: boolean
|
|
37
|
+
}
|
|
38
|
+
|
|
22
39
|
/**
|
|
23
40
|
* Represents a resident process that runs once per eligible machine or node.
|
|
24
41
|
*
|
|
@@ -28,6 +45,7 @@ export {
|
|
|
28
45
|
export class Daemon {
|
|
29
46
|
private _config: Partial<DaemonConfig> = {
|
|
30
47
|
links: [],
|
|
48
|
+
publicEndpoints: [],
|
|
31
49
|
environment: {},
|
|
32
50
|
cpu: { min: "0.1", desired: "0.1" },
|
|
33
51
|
memory: { min: "128Mi", desired: "128Mi" },
|
|
@@ -105,6 +123,67 @@ export class Daemon {
|
|
|
105
123
|
return this
|
|
106
124
|
}
|
|
107
125
|
|
|
126
|
+
/**
|
|
127
|
+
* Sets backend runtime options for trusted daemon infrastructure.
|
|
128
|
+
*
|
|
129
|
+
* Use this only for daemons that intentionally need host-level access, such
|
|
130
|
+
* as a privileged loader that installs or supervises a native host process.
|
|
131
|
+
*/
|
|
132
|
+
public runtime(runtime: DaemonRuntime): this {
|
|
133
|
+
this._config.runtime = runtime
|
|
134
|
+
return this
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Exposes a named public endpoint for a daemon port.
|
|
139
|
+
*/
|
|
140
|
+
public publicEndpoint(
|
|
141
|
+
name: string,
|
|
142
|
+
port: number,
|
|
143
|
+
options: DaemonPublicEndpointOptions = "http",
|
|
144
|
+
): this {
|
|
145
|
+
if (!this._config.publicEndpoints) {
|
|
146
|
+
this._config.publicEndpoints = []
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
const endpoint =
|
|
150
|
+
typeof options === "string"
|
|
151
|
+
? { protocol: options, hostLabel: undefined, wildcardSubdomains: false }
|
|
152
|
+
: options
|
|
153
|
+
|
|
154
|
+
const publicEndpoint: PublicEndpoint = {
|
|
155
|
+
name,
|
|
156
|
+
port,
|
|
157
|
+
protocol: endpoint.protocol,
|
|
158
|
+
hostLabel: endpoint.hostLabel,
|
|
159
|
+
wildcardSubdomains: endpoint.wildcardSubdomains ?? false,
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
this._config.publicEndpoints.push(publicEndpoint)
|
|
163
|
+
return this
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Configures the HTTP health check used by public daemon endpoint load balancers.
|
|
168
|
+
*/
|
|
169
|
+
public healthCheck(config: HealthCheck): this {
|
|
170
|
+
this._config.healthCheck = config
|
|
171
|
+
return this
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Configures readiness probe (alias for healthCheck).
|
|
176
|
+
*/
|
|
177
|
+
public readinessProbe(config: { method: string; path: string }): this {
|
|
178
|
+
this._config.healthCheck = {
|
|
179
|
+
path: config.path,
|
|
180
|
+
method: config.method,
|
|
181
|
+
timeoutSeconds: 1,
|
|
182
|
+
failureThreshold: 3,
|
|
183
|
+
}
|
|
184
|
+
return this
|
|
185
|
+
}
|
|
186
|
+
|
|
108
187
|
/**
|
|
109
188
|
* Sets key-value pairs as environment variables for the daemon.
|
|
110
189
|
* @param env A map of environment variable names to their values.
|
package/src/generated/index.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export type { AgentStatus } from "./zod/agent-status-schema.js";
|
|
2
2
|
export type { AlienError } from "./zod/alien-error-schema.js";
|
|
3
3
|
export type { AlienEvent } from "./zod/alien-event-schema.js";
|
|
4
|
+
export type { Architecture } from "./zod/architecture-schema.js";
|
|
4
5
|
export type { ArtifactRegistryHeartbeatData } from "./zod/artifact-registry-heartbeat-data-schema.js";
|
|
5
6
|
export type { ArtifactRegistryHeartbeatStatus } from "./zod/artifact-registry-heartbeat-status-schema.js";
|
|
6
7
|
export type { ArtifactRegistryOutputs } from "./zod/artifact-registry-outputs-schema.js";
|
|
@@ -86,6 +87,8 @@ export type { BuildHeartbeatStatus } from "./zod/build-heartbeat-status-schema.j
|
|
|
86
87
|
export type { BuildOutputs } from "./zod/build-outputs-schema.js";
|
|
87
88
|
export type { Build } from "./zod/build-schema.js";
|
|
88
89
|
export type { BuildStatus } from "./zod/build-status-schema.js";
|
|
90
|
+
export type { CapacityGroupScalePolicy } from "./zod/capacity-group-scale-policy-schema.js";
|
|
91
|
+
export type { CapacityGroup } from "./zod/capacity-group-schema.js";
|
|
89
92
|
export type { CommandResponse } from "./zod/command-response-schema.js";
|
|
90
93
|
export type { CommandState } from "./zod/command-state-schema.js";
|
|
91
94
|
export type { CommandStatusResponse } from "./zod/command-status-response-schema.js";
|
|
@@ -93,8 +96,12 @@ export type { ComputeCapacityBlockerCategory } from "./zod/compute-capacity-bloc
|
|
|
93
96
|
export type { ComputeCapacityBlocker } from "./zod/compute-capacity-blocker-schema.js";
|
|
94
97
|
export type { ComputeCapacityGroupStatus } from "./zod/compute-capacity-group-status-schema.js";
|
|
95
98
|
export type { ComputeCapacityRecommendation } from "./zod/compute-capacity-recommendation-schema.js";
|
|
99
|
+
export type { ComputeChoiceRange } from "./zod/compute-choice-range-schema.js";
|
|
96
100
|
export type { ComputeClusterHeartbeatData } from "./zod/compute-cluster-heartbeat-data-schema.js";
|
|
97
101
|
export type { ComputeClusterHeartbeatStatus } from "./zod/compute-cluster-heartbeat-status-schema.js";
|
|
102
|
+
export type { ComputeCluster } from "./zod/compute-cluster-schema.js";
|
|
103
|
+
export type { ComputePoolSelection } from "./zod/compute-pool-selection-schema.js";
|
|
104
|
+
export type { ComputeSettings } from "./zod/compute-settings-schema.js";
|
|
98
105
|
export type { ComputeType } from "./zod/compute-type-schema.js";
|
|
99
106
|
export type { ContainerAutoscaling } from "./zod/container-autoscaling-schema.js";
|
|
100
107
|
export type { ContainerCode } from "./zod/container-code-schema.js";
|
|
@@ -111,6 +118,8 @@ export type { CustomDomainConfig } from "./zod/custom-domain-config-schema.js";
|
|
|
111
118
|
export type { DaemonCode } from "./zod/daemon-code-schema.js";
|
|
112
119
|
export type { DaemonHeartbeatData } from "./zod/daemon-heartbeat-data-schema.js";
|
|
113
120
|
export type { DaemonOutputs } from "./zod/daemon-outputs-schema.js";
|
|
121
|
+
export type { DaemonRuntimeMount } from "./zod/daemon-runtime-mount-schema.js";
|
|
122
|
+
export type { DaemonRuntime } from "./zod/daemon-runtime-schema.js";
|
|
114
123
|
export type { Daemon } from "./zod/daemon-schema.js";
|
|
115
124
|
export type { DeploymentModel } from "./zod/deployment-model-schema.js";
|
|
116
125
|
export type { DeploymentStatus } from "./zod/deployment-status-schema.js";
|
|
@@ -151,6 +160,7 @@ export type { GcpStorageImportData } from "./zod/gcp-storage-import-data-schema.
|
|
|
151
160
|
export type { GcpVaultImportData } from "./zod/gcp-vault-import-data-schema.js";
|
|
152
161
|
export type { GcpVpcNetworkHeartbeatData } from "./zod/gcp-vpc-network-heartbeat-data-schema.js";
|
|
153
162
|
export type { GcpWorkerImportData } from "./zod/gcp-worker-import-data-schema.js";
|
|
163
|
+
export type { GpuSpec } from "./zod/gpu-spec-schema.js";
|
|
154
164
|
export type { HealthCheck } from "./zod/health-check-schema.js";
|
|
155
165
|
export type { HeartbeatBackend } from "./zod/heartbeat-backend-schema.js";
|
|
156
166
|
export type { HeartbeatCollectionIssueReason } from "./zod/heartbeat-collection-issue-reason-schema.js";
|
|
@@ -162,7 +172,6 @@ export type { HorizonWorkloadSchedulingMode } from "./zod/horizon-workload-sched
|
|
|
162
172
|
export type { HttpMethod } from "./zod/http-method-schema.js";
|
|
163
173
|
export type { ImportSourceKind } from "./zod/import-source-kind-schema.js";
|
|
164
174
|
export type { ImportedResource } from "./zod/imported-resource-schema.js";
|
|
165
|
-
export type { Ingress } from "./zod/ingress-schema.js";
|
|
166
175
|
export type { KubernetesBuildHeartbeatData } from "./zod/kubernetes-build-heartbeat-data-schema.js";
|
|
167
176
|
export type { KubernetesCertificateMode } from "./zod/kubernetes-certificate-mode-schema.js";
|
|
168
177
|
export type { KubernetesCloudReference } from "./zod/kubernetes-cloud-reference-schema.js";
|
|
@@ -217,6 +226,7 @@ export type { LocalServiceAccountHeartbeatData } from "./zod/local-service-accou
|
|
|
217
226
|
export type { LocalStorageHeartbeatData } from "./zod/local-storage-heartbeat-data-schema.js";
|
|
218
227
|
export type { LocalVaultHeartbeatData } from "./zod/local-vault-heartbeat-data-schema.js";
|
|
219
228
|
export type { LocalWorkerHeartbeatData } from "./zod/local-worker-heartbeat-data-schema.js";
|
|
229
|
+
export type { MachineProfile } from "./zod/machine-profile-schema.js";
|
|
220
230
|
export type { ManagedRuntimeEventInvolvedObject } from "./zod/managed-runtime-event-involved-object-schema.js";
|
|
221
231
|
export type { ManagedRuntimeEventSnapshot } from "./zod/managed-runtime-event-snapshot-schema.js";
|
|
222
232
|
export type { ManagedRuntimeEventSource } from "./zod/managed-runtime-event-source-schema.js";
|
|
@@ -245,6 +255,8 @@ export type { PresignedRequestBackend } from "./zod/presigned-request-backend-sc
|
|
|
245
255
|
export type { PresignedRequest } from "./zod/presigned-request-schema.js";
|
|
246
256
|
export type { ProviderFleetStatus } from "./zod/provider-fleet-status-schema.js";
|
|
247
257
|
export type { ProviderLifecycleState } from "./zod/provider-lifecycle-state-schema.js";
|
|
258
|
+
export type { PublicEndpointOutput } from "./zod/public-endpoint-output-schema.js";
|
|
259
|
+
export type { PublicEndpoint } from "./zod/public-endpoint-schema.js";
|
|
248
260
|
export type { PushProgress } from "./zod/push-progress-schema.js";
|
|
249
261
|
export type { QueueHeartbeatData } from "./zod/queue-heartbeat-data-schema.js";
|
|
250
262
|
export type { QueueHeartbeatStatus } from "./zod/queue-heartbeat-status-schema.js";
|
|
@@ -278,6 +290,13 @@ export type { ServiceActivationHeartbeatData } from "./zod/service-activation-he
|
|
|
278
290
|
export type { ServiceActivationHeartbeatStatus } from "./zod/service-activation-heartbeat-status-schema.js";
|
|
279
291
|
export type { StackImportRequest } from "./zod/stack-import-request-schema.js";
|
|
280
292
|
export type { StackImportResponse } from "./zod/stack-import-response-schema.js";
|
|
293
|
+
export type { StackInputDefaultValue } from "./zod/stack-input-default-value-schema.js";
|
|
294
|
+
export type { StackInputDefinition } from "./zod/stack-input-definition-schema.js";
|
|
295
|
+
export type { StackInputEnvironmentMapping } from "./zod/stack-input-environment-mapping-schema.js";
|
|
296
|
+
export type { StackInputEnvironmentVariableType } from "./zod/stack-input-environment-variable-type-schema.js";
|
|
297
|
+
export type { StackInputKind } from "./zod/stack-input-kind-schema.js";
|
|
298
|
+
export type { StackInputProvider } from "./zod/stack-input-provider-schema.js";
|
|
299
|
+
export type { StackInputValidation } from "./zod/stack-input-validation-schema.js";
|
|
281
300
|
export type { StackRef } from "./zod/stack-ref-schema.js";
|
|
282
301
|
export type { StackResourceState } from "./zod/stack-resource-state-schema.js";
|
|
283
302
|
export type { Stack } from "./zod/stack-schema.js";
|
|
@@ -306,6 +325,7 @@ export type { Vault } from "./zod/vault-schema.js";
|
|
|
306
325
|
export type { WorkerCode } from "./zod/worker-code-schema.js";
|
|
307
326
|
export type { WorkerHeartbeatData } from "./zod/worker-heartbeat-data-schema.js";
|
|
308
327
|
export type { WorkerOutputs } from "./zod/worker-outputs-schema.js";
|
|
328
|
+
export type { WorkerPublicEndpoint } from "./zod/worker-public-endpoint-schema.js";
|
|
309
329
|
export type { Worker } from "./zod/worker-schema.js";
|
|
310
330
|
export type { WorkerTrigger } from "./zod/worker-trigger-schema.js";
|
|
311
331
|
export type { WorkloadHeartbeatStatus } from "./zod/workload-heartbeat-status-schema.js";
|
|
@@ -313,6 +333,7 @@ export type { WorkloadReplicaStatus } from "./zod/workload-replica-status-schema
|
|
|
313
333
|
export { AgentStatusSchema } from "./zod/agent-status-schema.js";
|
|
314
334
|
export { AlienErrorSchema } from "./zod/alien-error-schema.js";
|
|
315
335
|
export { AlienEventSchema } from "./zod/alien-event-schema.js";
|
|
336
|
+
export { ArchitectureSchema } from "./zod/architecture-schema.js";
|
|
316
337
|
export { ArtifactRegistryHeartbeatDataSchema } from "./zod/artifact-registry-heartbeat-data-schema.js";
|
|
317
338
|
export { ArtifactRegistryHeartbeatStatusSchema } from "./zod/artifact-registry-heartbeat-status-schema.js";
|
|
318
339
|
export { ArtifactRegistryOutputsSchema } from "./zod/artifact-registry-outputs-schema.js";
|
|
@@ -398,6 +419,8 @@ export { BuildHeartbeatStatusSchema } from "./zod/build-heartbeat-status-schema.
|
|
|
398
419
|
export { BuildOutputsSchema } from "./zod/build-outputs-schema.js";
|
|
399
420
|
export { BuildSchema } from "./zod/build-schema.js";
|
|
400
421
|
export { BuildStatusSchema } from "./zod/build-status-schema.js";
|
|
422
|
+
export { CapacityGroupScalePolicySchema } from "./zod/capacity-group-scale-policy-schema.js";
|
|
423
|
+
export { CapacityGroupSchema } from "./zod/capacity-group-schema.js";
|
|
401
424
|
export { CommandResponseSchema } from "./zod/command-response-schema.js";
|
|
402
425
|
export { CommandStateSchema } from "./zod/command-state-schema.js";
|
|
403
426
|
export { CommandStatusResponseSchema } from "./zod/command-status-response-schema.js";
|
|
@@ -405,8 +428,12 @@ export { ComputeCapacityBlockerCategorySchema } from "./zod/compute-capacity-blo
|
|
|
405
428
|
export { ComputeCapacityBlockerSchema } from "./zod/compute-capacity-blocker-schema.js";
|
|
406
429
|
export { ComputeCapacityGroupStatusSchema } from "./zod/compute-capacity-group-status-schema.js";
|
|
407
430
|
export { ComputeCapacityRecommendationSchema } from "./zod/compute-capacity-recommendation-schema.js";
|
|
431
|
+
export { ComputeChoiceRangeSchema } from "./zod/compute-choice-range-schema.js";
|
|
408
432
|
export { ComputeClusterHeartbeatDataSchema } from "./zod/compute-cluster-heartbeat-data-schema.js";
|
|
409
433
|
export { ComputeClusterHeartbeatStatusSchema } from "./zod/compute-cluster-heartbeat-status-schema.js";
|
|
434
|
+
export { ComputeClusterSchema } from "./zod/compute-cluster-schema.js";
|
|
435
|
+
export { ComputePoolSelectionSchema } from "./zod/compute-pool-selection-schema.js";
|
|
436
|
+
export { ComputeSettingsSchema } from "./zod/compute-settings-schema.js";
|
|
410
437
|
export { ComputeTypeSchema } from "./zod/compute-type-schema.js";
|
|
411
438
|
export { ContainerAutoscalingSchema } from "./zod/container-autoscaling-schema.js";
|
|
412
439
|
export { ContainerCodeSchema } from "./zod/container-code-schema.js";
|
|
@@ -423,6 +450,8 @@ export { CustomDomainConfigSchema } from "./zod/custom-domain-config-schema.js";
|
|
|
423
450
|
export { DaemonCodeSchema } from "./zod/daemon-code-schema.js";
|
|
424
451
|
export { DaemonHeartbeatDataSchema } from "./zod/daemon-heartbeat-data-schema.js";
|
|
425
452
|
export { DaemonOutputsSchema } from "./zod/daemon-outputs-schema.js";
|
|
453
|
+
export { DaemonRuntimeMountSchema } from "./zod/daemon-runtime-mount-schema.js";
|
|
454
|
+
export { DaemonRuntimeSchema } from "./zod/daemon-runtime-schema.js";
|
|
426
455
|
export { DaemonSchema } from "./zod/daemon-schema.js";
|
|
427
456
|
export { DeploymentModelSchema } from "./zod/deployment-model-schema.js";
|
|
428
457
|
export { DeploymentStatusSchema } from "./zod/deployment-status-schema.js";
|
|
@@ -463,6 +492,7 @@ export { GcpStorageImportDataSchema } from "./zod/gcp-storage-import-data-schema
|
|
|
463
492
|
export { GcpVaultImportDataSchema } from "./zod/gcp-vault-import-data-schema.js";
|
|
464
493
|
export { GcpVpcNetworkHeartbeatDataSchema } from "./zod/gcp-vpc-network-heartbeat-data-schema.js";
|
|
465
494
|
export { GcpWorkerImportDataSchema } from "./zod/gcp-worker-import-data-schema.js";
|
|
495
|
+
export { GpuSpecSchema } from "./zod/gpu-spec-schema.js";
|
|
466
496
|
export { HealthCheckSchema } from "./zod/health-check-schema.js";
|
|
467
497
|
export { HeartbeatBackendSchema } from "./zod/heartbeat-backend-schema.js";
|
|
468
498
|
export { HeartbeatCollectionIssueReasonSchema } from "./zod/heartbeat-collection-issue-reason-schema.js";
|
|
@@ -474,7 +504,6 @@ export { HorizonWorkloadSchedulingModeSchema } from "./zod/horizon-workload-sche
|
|
|
474
504
|
export { HttpMethodSchema } from "./zod/http-method-schema.js";
|
|
475
505
|
export { ImportSourceKindSchema } from "./zod/import-source-kind-schema.js";
|
|
476
506
|
export { ImportedResourceSchema } from "./zod/imported-resource-schema.js";
|
|
477
|
-
export { IngressSchema } from "./zod/ingress-schema.js";
|
|
478
507
|
export { KubernetesBuildHeartbeatDataSchema } from "./zod/kubernetes-build-heartbeat-data-schema.js";
|
|
479
508
|
export { KubernetesCertificateModeSchema } from "./zod/kubernetes-certificate-mode-schema.js";
|
|
480
509
|
export { KubernetesCloudReferenceSchema } from "./zod/kubernetes-cloud-reference-schema.js";
|
|
@@ -529,6 +558,7 @@ export { LocalServiceAccountHeartbeatDataSchema } from "./zod/local-service-acco
|
|
|
529
558
|
export { LocalStorageHeartbeatDataSchema } from "./zod/local-storage-heartbeat-data-schema.js";
|
|
530
559
|
export { LocalVaultHeartbeatDataSchema } from "./zod/local-vault-heartbeat-data-schema.js";
|
|
531
560
|
export { LocalWorkerHeartbeatDataSchema } from "./zod/local-worker-heartbeat-data-schema.js";
|
|
561
|
+
export { MachineProfileSchema } from "./zod/machine-profile-schema.js";
|
|
532
562
|
export { ManagedRuntimeEventInvolvedObjectSchema } from "./zod/managed-runtime-event-involved-object-schema.js";
|
|
533
563
|
export { ManagedRuntimeEventSnapshotSchema } from "./zod/managed-runtime-event-snapshot-schema.js";
|
|
534
564
|
export { ManagedRuntimeEventSourceSchema } from "./zod/managed-runtime-event-source-schema.js";
|
|
@@ -557,6 +587,8 @@ export { PresignedRequestBackendSchema } from "./zod/presigned-request-backend-s
|
|
|
557
587
|
export { PresignedRequestSchema } from "./zod/presigned-request-schema.js";
|
|
558
588
|
export { ProviderFleetStatusSchema } from "./zod/provider-fleet-status-schema.js";
|
|
559
589
|
export { ProviderLifecycleStateSchema } from "./zod/provider-lifecycle-state-schema.js";
|
|
590
|
+
export { PublicEndpointOutputSchema } from "./zod/public-endpoint-output-schema.js";
|
|
591
|
+
export { PublicEndpointSchema } from "./zod/public-endpoint-schema.js";
|
|
560
592
|
export { PushProgressSchema } from "./zod/push-progress-schema.js";
|
|
561
593
|
export { QueueHeartbeatDataSchema } from "./zod/queue-heartbeat-data-schema.js";
|
|
562
594
|
export { QueueHeartbeatStatusSchema } from "./zod/queue-heartbeat-status-schema.js";
|
|
@@ -590,6 +622,13 @@ export { ServiceActivationHeartbeatDataSchema } from "./zod/service-activation-h
|
|
|
590
622
|
export { ServiceActivationHeartbeatStatusSchema } from "./zod/service-activation-heartbeat-status-schema.js";
|
|
591
623
|
export { StackImportRequestSchema } from "./zod/stack-import-request-schema.js";
|
|
592
624
|
export { StackImportResponseSchema } from "./zod/stack-import-response-schema.js";
|
|
625
|
+
export { StackInputDefaultValueSchema } from "./zod/stack-input-default-value-schema.js";
|
|
626
|
+
export { StackInputDefinitionSchema } from "./zod/stack-input-definition-schema.js";
|
|
627
|
+
export { StackInputEnvironmentMappingSchema } from "./zod/stack-input-environment-mapping-schema.js";
|
|
628
|
+
export { StackInputEnvironmentVariableTypeSchema } from "./zod/stack-input-environment-variable-type-schema.js";
|
|
629
|
+
export { StackInputKindSchema } from "./zod/stack-input-kind-schema.js";
|
|
630
|
+
export { StackInputProviderSchema } from "./zod/stack-input-provider-schema.js";
|
|
631
|
+
export { StackInputValidationSchema } from "./zod/stack-input-validation-schema.js";
|
|
593
632
|
export { StackRefSchema } from "./zod/stack-ref-schema.js";
|
|
594
633
|
export { StackResourceStateSchema } from "./zod/stack-resource-state-schema.js";
|
|
595
634
|
export { StackSchema } from "./zod/stack-schema.js";
|
|
@@ -618,6 +657,7 @@ export { VaultSchema } from "./zod/vault-schema.js";
|
|
|
618
657
|
export { WorkerCodeSchema } from "./zod/worker-code-schema.js";
|
|
619
658
|
export { WorkerHeartbeatDataSchema } from "./zod/worker-heartbeat-data-schema.js";
|
|
620
659
|
export { WorkerOutputsSchema } from "./zod/worker-outputs-schema.js";
|
|
660
|
+
export { WorkerPublicEndpointSchema } from "./zod/worker-public-endpoint-schema.js";
|
|
621
661
|
export { WorkerSchema } from "./zod/worker-schema.js";
|
|
622
662
|
export { WorkerTriggerSchema } from "./zod/worker-trigger-schema.js";
|
|
623
663
|
export { WorkloadHeartbeatStatusSchema } from "./zod/workload-heartbeat-status-schema.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"string","description":"CPU architecture.","enum":["arm64","x86_64"],"x-readme-ref-name":"Architecture"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"object","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).","required":["groupId","minSize","maxSize"],"properties":{"groupId":{"type":"string","description":"Unique identifier for this capacity group (must be lowercase alphanumeric with hyphens)"},"instanceType":{"type":["string","null"],"description":"Provider machine selected at deployment time.\n`alien.ts` should declare portable requirements; preflight materialization\nfills this field from `StackSettings.compute`."},"maxSize":{"type":"integer","format":"int32","description":"Maximum number of machines (must be ≤ 10)","minimum":0},"minSize":{"type":"integer","format":"int32","description":"Minimum number of machines (can be 0 for scale-to-zero)","minimum":0},"nestedVirtualization":{"type":["boolean","null"],"description":"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."},"profile":{"oneOf":[{"type":"null"},{"description":"Machine resource profile (auto-derived from instance_type if not specified)","type":"object","required":["cpu","memoryBytes","ephemeralStorageBytes"],"properties":{"architecture":{"oneOf":[{"type":"null"},{"description":"CPU architecture required or provided by this machine profile.","type":"string","enum":["arm64","x86_64"],"x-readme-ref-name":"Architecture"}]},"cpu":{"type":"string","description":"CPU cores per machine (hardware total) - stored as string to preserve precision\n(e.g., \"8.0\", \"4.5\")"},"ephemeralStorageBytes":{"type":"integer","format":"int64","description":"Ephemeral storage in bytes (hardware total)","minimum":0},"gpu":{"oneOf":[{"type":"null"},{"description":"GPU specification (optional)","type":"object","required":["type","count"],"properties":{"count":{"type":"integer","format":"int32","description":"Number of GPUs per machine","minimum":0},"type":{"type":"string","description":"GPU type identifier (e.g., \"nvidia-a100\", \"nvidia-t4\")"}},"x-readme-ref-name":"GpuSpec"}]},"memoryBytes":{"type":"integer","format":"int64","description":"Memory in bytes (hardware total)","minimum":0}},"x-readme-ref-name":"MachineProfile"}]},"scalePolicy":{"oneOf":[{"type":"null"},{"description":"Source-declared scale policy and installer-editable bounds.\n\nOlder stacks only have `minSize` and `maxSize`; planners derive an exact\nfixed/autoscale policy from those selected bounds when this field is absent.","oneOf":[{"type":"object","description":"A fixed-size pool where the installer can choose the fixed machine count.","required":["machines","type"],"properties":{"machines":{"description":"Allowed fixed machine count range.","type":"object","required":["min","max","default"],"properties":{"default":{"type":"integer","format":"int32","description":"Default value recommended when no installer override is supplied.","minimum":0},"max":{"type":"integer","format":"int32","description":"Highest allowed value.","minimum":0},"min":{"type":"integer","format":"int32","description":"Lowest allowed value.","minimum":0}},"x-readme-ref-name":"ComputeChoiceRange"},"type":{"type":"string","enum":["fixed"]}}},{"type":"object","description":"An autoscaling pool with separately bounded min and max counts.","required":["min","max","type"],"properties":{"max":{"description":"Allowed maximum machine count range.","type":"object","required":["min","max","default"],"properties":{"default":{"type":"integer","format":"int32","description":"Default value recommended when no installer override is supplied.","minimum":0},"max":{"type":"integer","format":"int32","description":"Highest allowed value.","minimum":0},"min":{"type":"integer","format":"int32","description":"Lowest allowed value.","minimum":0}},"x-readme-ref-name":"ComputeChoiceRange"},"min":{"description":"Allowed minimum machine count range.","type":"object","required":["min","max","default"],"properties":{"default":{"type":"integer","format":"int32","description":"Default value recommended when no installer override is supplied.","minimum":0},"max":{"type":"integer","format":"int32","description":"Highest allowed value.","minimum":0},"min":{"type":"integer","format":"int32","description":"Lowest allowed value.","minimum":0}},"x-readme-ref-name":"ComputeChoiceRange"},"type":{"type":"string","enum":["autoscale"]}}}],"x-readme-ref-name":"CapacityGroupScalePolicy"}]}},"x-readme-ref-name":"CapacityGroup"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"oneOf":[{"type":"object","description":"A fixed-size pool where the installer can choose the fixed machine count.","required":["machines","type"],"properties":{"machines":{"description":"Allowed fixed machine count range.","type":"object","required":["min","max","default"],"properties":{"default":{"type":"integer","format":"int32","description":"Default value recommended when no installer override is supplied.","minimum":0},"max":{"type":"integer","format":"int32","description":"Highest allowed value.","minimum":0},"min":{"type":"integer","format":"int32","description":"Lowest allowed value.","minimum":0}},"x-readme-ref-name":"ComputeChoiceRange"},"type":{"type":"string","enum":["fixed"]}}},{"type":"object","description":"An autoscaling pool with separately bounded min and max counts.","required":["min","max","type"],"properties":{"max":{"description":"Allowed maximum machine count range.","type":"object","required":["min","max","default"],"properties":{"default":{"type":"integer","format":"int32","description":"Default value recommended when no installer override is supplied.","minimum":0},"max":{"type":"integer","format":"int32","description":"Highest allowed value.","minimum":0},"min":{"type":"integer","format":"int32","description":"Lowest allowed value.","minimum":0}},"x-readme-ref-name":"ComputeChoiceRange"},"min":{"description":"Allowed minimum machine count range.","type":"object","required":["min","max","default"],"properties":{"default":{"type":"integer","format":"int32","description":"Default value recommended when no installer override is supplied.","minimum":0},"max":{"type":"integer","format":"int32","description":"Highest allowed value.","minimum":0},"min":{"type":"integer","format":"int32","description":"Lowest allowed value.","minimum":0}},"x-readme-ref-name":"ComputeChoiceRange"},"type":{"type":"string","enum":["autoscale"]}}}],"description":"Source-declared scale policy for a capacity group.","x-readme-ref-name":"CapacityGroupScalePolicy"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"object","description":"Allowed range and default for a count selected by the installer.","required":["min","max","default"],"properties":{"default":{"type":"integer","format":"int32","description":"Default value recommended when no installer override is supplied.","minimum":0},"max":{"type":"integer","format":"int32","description":"Highest allowed value.","minimum":0},"min":{"type":"integer","format":"int32","description":"Lowest allowed value.","minimum":0}},"x-readme-ref-name":"ComputeChoiceRange"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"object","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```","required":["id","capacityGroups"],"properties":{"capacityGroups":{"type":"array","items":{"type":"object","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).","required":["groupId","minSize","maxSize"],"properties":{"groupId":{"type":"string","description":"Unique identifier for this capacity group (must be lowercase alphanumeric with hyphens)"},"instanceType":{"type":["string","null"],"description":"Provider machine selected at deployment time.\n`alien.ts` should declare portable requirements; preflight materialization\nfills this field from `StackSettings.compute`."},"maxSize":{"type":"integer","format":"int32","description":"Maximum number of machines (must be ≤ 10)","minimum":0},"minSize":{"type":"integer","format":"int32","description":"Minimum number of machines (can be 0 for scale-to-zero)","minimum":0},"nestedVirtualization":{"type":["boolean","null"],"description":"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."},"profile":{"oneOf":[{"type":"null"},{"description":"Machine resource profile (auto-derived from instance_type if not specified)","type":"object","required":["cpu","memoryBytes","ephemeralStorageBytes"],"properties":{"architecture":{"oneOf":[{"type":"null"},{"description":"CPU architecture required or provided by this machine profile.","type":"string","enum":["arm64","x86_64"],"x-readme-ref-name":"Architecture"}]},"cpu":{"type":"string","description":"CPU cores per machine (hardware total) - stored as string to preserve precision\n(e.g., \"8.0\", \"4.5\")"},"ephemeralStorageBytes":{"type":"integer","format":"int64","description":"Ephemeral storage in bytes (hardware total)","minimum":0},"gpu":{"oneOf":[{"type":"null"},{"description":"GPU specification (optional)","type":"object","required":["type","count"],"properties":{"count":{"type":"integer","format":"int32","description":"Number of GPUs per machine","minimum":0},"type":{"type":"string","description":"GPU type identifier (e.g., \"nvidia-a100\", \"nvidia-t4\")"}},"x-readme-ref-name":"GpuSpec"}]},"memoryBytes":{"type":"integer","format":"int64","description":"Memory in bytes (hardware total)","minimum":0}},"x-readme-ref-name":"MachineProfile"}]},"scalePolicy":{"oneOf":[{"type":"null"},{"description":"Source-declared scale policy and installer-editable bounds.\n\nOlder stacks only have `minSize` and `maxSize`; planners derive an exact\nfixed/autoscale policy from those selected bounds when this field is absent.","oneOf":[{"type":"object","description":"A fixed-size pool where the installer can choose the fixed machine count.","required":["machines","type"],"properties":{"machines":{"description":"Allowed fixed machine count range.","type":"object","required":["min","max","default"],"properties":{"default":{"type":"integer","format":"int32","description":"Default value recommended when no installer override is supplied.","minimum":0},"max":{"type":"integer","format":"int32","description":"Highest allowed value.","minimum":0},"min":{"type":"integer","format":"int32","description":"Lowest allowed value.","minimum":0}},"x-readme-ref-name":"ComputeChoiceRange"},"type":{"type":"string","enum":["fixed"]}}},{"type":"object","description":"An autoscaling pool with separately bounded min and max counts.","required":["min","max","type"],"properties":{"max":{"description":"Allowed maximum machine count range.","type":"object","required":["min","max","default"],"properties":{"default":{"type":"integer","format":"int32","description":"Default value recommended when no installer override is supplied.","minimum":0},"max":{"type":"integer","format":"int32","description":"Highest allowed value.","minimum":0},"min":{"type":"integer","format":"int32","description":"Lowest allowed value.","minimum":0}},"x-readme-ref-name":"ComputeChoiceRange"},"min":{"description":"Allowed minimum machine count range.","type":"object","required":["min","max","default"],"properties":{"default":{"type":"integer","format":"int32","description":"Default value recommended when no installer override is supplied.","minimum":0},"max":{"type":"integer","format":"int32","description":"Highest allowed value.","minimum":0},"min":{"type":"integer","format":"int32","description":"Lowest allowed value.","minimum":0}},"x-readme-ref-name":"ComputeChoiceRange"},"type":{"type":"string","enum":["autoscale"]}}}],"x-readme-ref-name":"CapacityGroupScalePolicy"}]}},"x-readme-ref-name":"CapacityGroup"},"description":"Capacity groups defining the machine pools for this cluster.\nEach group becomes a separate ASG/MIG/VMSS."},"containerCidr":{"type":["string","null"],"description":"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."},"id":{"type":"string","description":"Unique identifier for the container cluster.\nMust contain only alphanumeric characters, hyphens, and underscores."}},"additionalProperties":false,"x-readme-ref-name":"ComputeCluster"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"oneOf":[{"type":"object","description":"Fixed number of machines.","required":["machines","mode"],"properties":{"machine":{"type":["string","null"],"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","format":"int32","description":"Number of machines to run.","minimum":0},"mode":{"type":"string","enum":["fixed"]}}},{"type":"object","description":"Autoscaling machine pool.","required":["min","max","mode"],"properties":{"machine":{"type":["string","null"],"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","format":"int32","description":"Maximum machine count.","minimum":0},"min":{"type":"integer","format":"int32","description":"Minimum machine count.","minimum":0},"mode":{"type":"string","enum":["autoscale"]}}}],"description":"User-selected deployment settings for one compute pool.","x-readme-ref-name":"ComputePoolSelection"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"object","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.","properties":{"pools":{"type":"object","description":"Selected compute choices keyed by pool ID.","additionalProperties":{"oneOf":[{"type":"object","description":"Fixed number of machines.","required":["machines","mode"],"properties":{"machine":{"type":["string","null"],"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","format":"int32","description":"Number of machines to run.","minimum":0},"mode":{"type":"string","enum":["fixed"]}}},{"type":"object","description":"Autoscaling machine pool.","required":["min","max","mode"],"properties":{"machine":{"type":["string","null"],"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","format":"int32","description":"Maximum machine count.","minimum":0},"min":{"type":"integer","format":"int32","description":"Minimum machine count.","minimum":0},"mode":{"type":"string","enum":["autoscale"]}}}],"description":"User-selected deployment settings for one compute pool.","x-readme-ref-name":"ComputePoolSelection"},"propertyNames":{"type":"string"}}},"x-readme-ref-name":"ComputeSettings"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"type":"object","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,
|
|
1
|
+
{"type":"object","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```","required":["id","links","ports","publicEndpoints","code","cpu","memory","permissions"],"properties":{"autoscaling":{"oneOf":[{"type":"null"},{"description":"Autoscaling configuration (only for stateless containers)","type":"object","required":["min","desired","max"],"properties":{"desired":{"type":"integer","format":"int32","description":"Initial desired replicas at container creation","minimum":0},"max":{"type":"integer","format":"int32","description":"Maximum replicas under load","minimum":0},"maxHttpP95LatencyMs":{"type":["number","null"],"format":"double","description":"Maximum acceptable p95 HTTP latency in milliseconds"},"min":{"type":"integer","format":"int32","description":"Minimum replicas (always running)","minimum":0},"targetCpuPercent":{"type":["number","null"],"format":"double","description":"Target CPU utilization percentage for scaling (default: 70%)"},"targetHttpInFlightPerReplica":{"type":["integer","null"],"format":"int32","description":"Target in-flight HTTP requests per replica","minimum":0},"targetMemoryPercent":{"type":["number","null"],"format":"double","description":"Target memory utilization percentage for scaling (default: 80%)"}},"x-readme-ref-name":"ContainerAutoscaling"}]},"cluster":{"type":["string","null"],"description":"ComputeCluster resource ID that this container runs on.\nIf None, will be auto-assigned by ComputeClusterMutation at deployment time."},"code":{"description":"Container code (image or source)","oneOf":[{"type":"object","description":"Container image reference","required":["image","type"],"properties":{"image":{"type":"string","description":"Container image (e.g., `postgres:16`, `ghcr.io/myorg/myimage:latest`)"},"type":{"type":"string","enum":["image"]}}},{"type":"object","description":"Source code to be built","required":["src","toolchain","type"],"properties":{"src":{"type":"string","description":"The source directory to build from"},"toolchain":{"description":"Toolchain configuration with type-safe options","oneOf":[{"type":"object","description":"Rust with Cargo build system","required":["binaryName","type"],"properties":{"binaryName":{"type":"string","description":"Name of the binary to build and run"},"type":{"type":"string","enum":["rust"]}}},{"type":"object","description":"TypeScript/JavaScript compiled to single executable with Bun","required":["type"],"properties":{"binaryName":{"type":["string","null"],"description":"Name of the compiled binary (defaults to package.json name if not specified)"},"type":{"type":"string","enum":["typescript"]}}},{"type":"object","description":"Docker build from Dockerfile","required":["type"],"properties":{"buildArgs":{"type":["object","null"],"description":"Build arguments for docker build","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"dockerfile":{"type":["string","null"],"description":"Dockerfile path relative to src (default: \"Dockerfile\")"},"target":{"type":["string","null"],"description":"Multi-stage build target"},"type":{"type":"string","enum":["docker"]}}}],"x-readme-ref-name":"ToolchainConfig"},"type":{"type":"string","enum":["source"]}}}],"x-readme-ref-name":"ContainerCode"},"command":{"type":["array","null"],"items":{"type":"string"},"description":"Command to override image default"},"cpu":{"description":"CPU resource requirements","type":"object","required":["min","desired"],"properties":{"desired":{"type":"string","description":"Desired resource allocation (used by scheduler)"},"min":{"type":"string","description":"Minimum resource allocation"}},"x-readme-ref-name":"ResourceSpec"},"environment":{"type":"object","description":"Environment variables","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"ephemeralStorage":{"type":["string","null"],"description":"Ephemeral storage requirement (e.g., \"10Gi\")"},"gpu":{"oneOf":[{"type":"null"},{"description":"GPU requirements (optional)","type":"object","required":["type","count"],"properties":{"count":{"type":"integer","format":"int32","description":"Number of GPUs required (1-8)","minimum":0},"type":{"type":"string","description":"GPU type identifier (e.g., \"nvidia-a100\", \"nvidia-t4\")"}},"x-readme-ref-name":"ContainerGpuSpec"}]},"healthCheck":{"oneOf":[{"type":"null"},{"description":"Health check configuration","type":"object","properties":{"failureThreshold":{"type":"integer","format":"int32","description":"Number of consecutive failures before marking replica unhealthy","minimum":0},"method":{"type":"string","description":"HTTP method to use for health check"},"path":{"type":"string","description":"HTTP endpoint path to check (e.g., \"/health\", \"/ready\")"},"port":{"type":["integer","null"],"format":"int32","description":"Port to check (defaults to container port if not specified)","minimum":0},"timeoutSeconds":{"type":"integer","format":"int32","description":"Request timeout in seconds (1-5)","minimum":0}},"x-readme-ref-name":"HealthCheck"}]},"id":{"type":"string","description":"Unique identifier for the container.\nMust be DNS-compatible: lowercase alphanumeric with hyphens."},"links":{"type":"array","items":{"type":"object","description":"New ResourceRef that works with any resource type.\nThis can eventually replace the enum-based ResourceRef for full extensibility.","required":["type","id"],"properties":{"id":{"type":"string"},"type":{"type":"string","description":"Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior.","examples":["worker","storage","queue","redis","postgres"],"x-readme-ref-name":"ResourceType"}},"x-readme-ref-name":"ResourceRef"},"description":"Resource links (dependencies)"},"memory":{"description":"Memory resource requirements (must use Ki/Mi/Gi/Ti suffix)","type":"object","required":["min","desired"],"properties":{"desired":{"type":"string","description":"Desired resource allocation (used by scheduler)"},"min":{"type":"string","description":"Minimum resource allocation"}},"x-readme-ref-name":"ResourceSpec"},"permissions":{"type":"string","description":"Permission profile name"},"persistentStorage":{"oneOf":[{"type":"null"},{"description":"Persistent storage configuration (only for stateful containers)","type":"object","required":["size","mountPath"],"properties":{"mountPath":{"type":"string","description":"Mount path inside the container"},"size":{"type":"string","description":"Storage size (e.g., \"100Gi\", \"500Gi\")"}},"x-readme-ref-name":"PersistentStorage"}]},"pool":{"type":["string","null"],"description":"Capacity group to run on (must exist in the cluster)\nIf not specified, containers are scheduled to any available group."},"ports":{"type":"array","items":{"type":"object","description":"Container port configuration.","required":["port"],"properties":{"port":{"type":"integer","format":"int32","description":"Port number","minimum":0}},"x-readme-ref-name":"ContainerPort"},"description":"Internal container ports (at least one required)."},"publicEndpoints":{"type":"array","items":{"type":"object","description":"Public endpoint configuration for port-backed workload resources.","required":["name","port","protocol"],"properties":{"hostLabel":{"type":["string","null"],"description":"Optional DNS label override for generated endpoint hostnames."},"name":{"type":"string","description":"Endpoint name within the resource."},"port":{"type":"integer","format":"int32","description":"Workload port served by the public endpoint.","minimum":0},"protocol":{"description":"Public protocol.","type":"string","enum":["http","tcp"],"x-readme-ref-name":"ExposeProtocol"},"wildcardSubdomains":{"type":"boolean","description":"Whether to route wildcard subdomains to this endpoint."}},"x-readme-ref-name":"PublicEndpoint"},"description":"Public endpoints exposed by the container."},"replicas":{"type":["integer","null"],"format":"int32","description":"Fixed replica count (for stateful containers or stateless without autoscaling)","minimum":0},"stateful":{"type":"boolean","description":"Whether container is stateful (gets stable ordinals, optional persistent volumes)"}},"additionalProperties":false,"x-readme-ref-name":"Container"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"type":"object","description":"Outputs generated by a successfully provisioned Container.","required":["name","status","currentReplicas","desiredReplicas","internalDns","replicas"],"properties":{"currentReplicas":{"type":"integer","format":"int32","description":"Number of current replicas","minimum":0},"desiredReplicas":{"type":"integer","format":"int32","description":"Desired number of replicas","minimum":0},"internalDns":{"type":"string","description":"Internal DNS name (e.g., \"api.svc\")"},"loadBalancerEndpoint":{"oneOf":[{"type":"null"},{"description":"Load balancer endpoint information for DNS management
|
|
1
|
+
{"type":"object","description":"Outputs generated by a successfully provisioned Container.","required":["name","status","currentReplicas","desiredReplicas","internalDns","replicas"],"properties":{"currentReplicas":{"type":"integer","format":"int32","description":"Number of current replicas","minimum":0},"desiredReplicas":{"type":"integer","format":"int32","description":"Desired number of replicas","minimum":0},"internalDns":{"type":"string","description":"Internal DNS name (e.g., \"api.svc\")"},"name":{"type":"string","description":"Container name in the managed container backend"},"publicEndpoints":{"type":"object","description":"Public endpoints resolved for this container.","additionalProperties":{"type":"object","description":"Runtime-resolved public endpoint metadata.","required":["url","host"],"properties":{"host":{"type":"string","description":"Hostname for this endpoint."},"loadBalancerEndpoint":{"oneOf":[{"type":"null"},{"description":"Load balancer endpoint information for DNS management.","type":"object","required":["dnsName"],"properties":{"dnsName":{"type":"string","description":"The DNS name of the load balancer endpoint (e.g., ALB DNS, API Gateway domain)."},"hostedZoneId":{"type":["string","null"],"description":"AWS Route53 hosted zone ID (for ALIAS records). Only set on AWS."}},"x-readme-ref-name":"LoadBalancerEndpoint"}]},"url":{"type":"string","description":"Base URL for this endpoint."},"wildcardHost":{"type":["string","null"],"description":"Wildcard hostname routed to this endpoint, when configured."}},"x-readme-ref-name":"PublicEndpointOutput"},"propertyNames":{"type":"string"}},"replicas":{"type":"array","items":{"type":"object","description":"Status of a single container replica.","required":["replicaId","healthy"],"properties":{"containerIp":{"type":["string","null"],"description":"Container IP address (for service discovery)"},"healthy":{"type":"boolean","description":"Whether the replica is healthy"},"machineId":{"type":["string","null"],"description":"Machine ID the replica is running on"},"ordinal":{"type":["integer","null"],"format":"int32","description":"Ordinal (for stateful containers)","minimum":0},"replicaId":{"type":"string","description":"Replica ID (e.g., \"api-0\", \"api-1\")"}},"x-readme-ref-name":"ReplicaStatus"},"description":"Status of each replica"},"status":{"description":"Current container status","type":"string","enum":["pending","running","stopped","failing"],"x-readme-ref-name":"ContainerStatus"}},"x-readme-ref-name":"ContainerOutputs"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"type":"object","description":"Container port configuration.","required":["port"],"properties":{"
|
|
1
|
+
{"type":"object","description":"Container port configuration.","required":["port"],"properties":{"port":{"type":"integer","format":"int32","description":"Port number","minimum":0}},"x-readme-ref-name":"ContainerPort"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"type":"object","required":["id","links","permissions","code"],"properties":{"cluster":{"type":["string","null"],"description":"ComputeCluster resource ID that this daemon runs on for
|
|
1
|
+
{"type":"object","required":["id","links","publicEndpoints","permissions","code"],"properties":{"cluster":{"type":["string","null"],"description":"ComputeCluster resource ID that this daemon runs on for managed cloud\ncompute backends. Kubernetes and Local runtimes ignore this field."},"code":{"oneOf":[{"type":"object","required":["image","type"],"properties":{"image":{"type":"string"},"type":{"type":"string","enum":["image"]}}},{"type":"object","required":["src","toolchain","type"],"properties":{"src":{"type":"string"},"toolchain":{"oneOf":[{"type":"object","description":"Rust with Cargo build system","required":["binaryName","type"],"properties":{"binaryName":{"type":"string","description":"Name of the binary to build and run"},"type":{"type":"string","enum":["rust"]}}},{"type":"object","description":"TypeScript/JavaScript compiled to single executable with Bun","required":["type"],"properties":{"binaryName":{"type":["string","null"],"description":"Name of the compiled binary (defaults to package.json name if not specified)"},"type":{"type":"string","enum":["typescript"]}}},{"type":"object","description":"Docker build from Dockerfile","required":["type"],"properties":{"buildArgs":{"type":["object","null"],"description":"Build arguments for docker build","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"dockerfile":{"type":["string","null"],"description":"Dockerfile path relative to src (default: \"Dockerfile\")"},"target":{"type":["string","null"],"description":"Multi-stage build target"},"type":{"type":"string","enum":["docker"]}}}],"description":"Configuration for different programming language toolchains.\nEach toolchain provides type-safe build configuration and auto-detection capabilities.","x-readme-ref-name":"ToolchainConfig"},"type":{"type":"string","enum":["source"]}}}],"x-readme-ref-name":"DaemonCode"},"command":{"type":["array","null"],"items":{"type":"string"},"description":"Command to override the image default."},"commandsEnabled":{"type":"boolean","default":false},"cpu":{"description":"CPU resource requirements for each daemon instance.","type":"object","required":["min","desired"],"properties":{"desired":{"type":"string","description":"Desired resource allocation (used by scheduler)"},"min":{"type":"string","description":"Minimum resource allocation"}},"x-readme-ref-name":"ResourceSpec"},"environment":{"type":"object","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"healthCheck":{"oneOf":[{"type":"null"},{"description":"HTTP health check for public daemon endpoint load balancers.","type":"object","properties":{"failureThreshold":{"type":"integer","format":"int32","description":"Number of consecutive failures before marking replica unhealthy","minimum":0},"method":{"type":"string","description":"HTTP method to use for health check"},"path":{"type":"string","description":"HTTP endpoint path to check (e.g., \"/health\", \"/ready\")"},"port":{"type":["integer","null"],"format":"int32","description":"Port to check (defaults to container port if not specified)","minimum":0},"timeoutSeconds":{"type":"integer","format":"int32","description":"Request timeout in seconds (1-5)","minimum":0}},"x-readme-ref-name":"HealthCheck"}]},"id":{"type":"string"},"links":{"type":"array","items":{"type":"object","description":"New ResourceRef that works with any resource type.\nThis can eventually replace the enum-based ResourceRef for full extensibility.","required":["type","id"],"properties":{"id":{"type":"string"},"type":{"type":"string","description":"Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior.","examples":["worker","storage","queue","redis","postgres"],"x-readme-ref-name":"ResourceType"}},"x-readme-ref-name":"ResourceRef"}},"memory":{"description":"Memory resource requirements for each daemon instance.","type":"object","required":["min","desired"],"properties":{"desired":{"type":"string","description":"Desired resource allocation (used by scheduler)"},"min":{"type":"string","description":"Minimum resource allocation"}},"x-readme-ref-name":"ResourceSpec"},"permissions":{"type":"string"},"pool":{"type":["string","null"],"description":"Capacity group/pool to run on for backends that expose machine pools."},"publicEndpoints":{"type":"array","items":{"type":"object","description":"Public endpoint configuration for port-backed workload resources.","required":["name","port","protocol"],"properties":{"hostLabel":{"type":["string","null"],"description":"Optional DNS label override for generated endpoint hostnames."},"name":{"type":"string","description":"Endpoint name within the resource."},"port":{"type":"integer","format":"int32","description":"Workload port served by the public endpoint.","minimum":0},"protocol":{"description":"Public protocol.","type":"string","enum":["http","tcp"],"x-readme-ref-name":"ExposeProtocol"},"wildcardSubdomains":{"type":"boolean","description":"Whether to route wildcard subdomains to this endpoint."}},"x-readme-ref-name":"PublicEndpoint"},"description":"Public endpoints exposed by the daemon."},"runtime":{"oneOf":[{"type":"null"},{"description":"Optional backend runtime settings for trusted daemons.\n\nThese settings are intended for daemon-style infrastructure that must\noperate on the host. Backends that do not support a setting may reject\nit during provisioning.","type":"object","properties":{"mounts":{"type":"array","items":{"type":"object","required":["source","target"],"properties":{"options":{"type":["string","null"],"description":"Optional mount options understood by the backend runtime."},"source":{"type":"string","description":"Absolute host path to mount into the daemon container."},"target":{"type":"string","description":"Absolute container path where the source is mounted."}},"additionalProperties":false,"x-readme-ref-name":"DaemonRuntimeMount"},"description":"Host mounts exposed to the daemon container."},"networkMode":{"type":["string","null"],"description":"Network mode. Supported values are `host` and `appnet`."},"pidNamespace":{"type":["string","null"],"description":"Process namespace mode. Supported values are `host` and `private`."},"privileged":{"type":["boolean","null"],"description":"Run the daemon container with elevated host capabilities."},"user":{"type":["string","null"],"description":"Runtime user, as a numeric uid or uid:gid string."}},"additionalProperties":false,"x-readme-ref-name":"DaemonRuntime"}]}},"additionalProperties":false,"x-readme-ref-name":"Daemon"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"type":"object","required":["daemonName","running"],"properties":{"daemonName":{"type":"string"},"running":{"type":"boolean"}},"x-readme-ref-name":"DaemonOutputs"}
|
|
1
|
+
{"type":"object","required":["daemonName","running"],"properties":{"daemonName":{"type":"string"},"publicEndpoints":{"type":"object","additionalProperties":{"type":"object","description":"Runtime-resolved public endpoint metadata.","required":["url","host"],"properties":{"host":{"type":"string","description":"Hostname for this endpoint."},"loadBalancerEndpoint":{"oneOf":[{"type":"null"},{"description":"Load balancer endpoint information for DNS management.","type":"object","required":["dnsName"],"properties":{"dnsName":{"type":"string","description":"The DNS name of the load balancer endpoint (e.g., ALB DNS, API Gateway domain)."},"hostedZoneId":{"type":["string","null"],"description":"AWS Route53 hosted zone ID (for ALIAS records). Only set on AWS."}},"x-readme-ref-name":"LoadBalancerEndpoint"}]},"url":{"type":"string","description":"Base URL for this endpoint."},"wildcardHost":{"type":["string","null"],"description":"Wildcard hostname routed to this endpoint, when configured."}},"x-readme-ref-name":"PublicEndpointOutput"},"propertyNames":{"type":"string"}},"running":{"type":"boolean"}},"x-readme-ref-name":"DaemonOutputs"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"object","properties":{"mounts":{"type":"array","items":{"type":"object","required":["source","target"],"properties":{"options":{"type":["string","null"],"description":"Optional mount options understood by the backend runtime."},"source":{"type":"string","description":"Absolute host path to mount into the daemon container."},"target":{"type":"string","description":"Absolute container path where the source is mounted."}},"additionalProperties":false,"x-readme-ref-name":"DaemonRuntimeMount"},"description":"Host mounts exposed to the daemon container."},"networkMode":{"type":["string","null"],"description":"Network mode. Supported values are `host` and `appnet`."},"pidNamespace":{"type":["string","null"],"description":"Process namespace mode. Supported values are `host` and `private`."},"privileged":{"type":["boolean","null"],"description":"Run the daemon container with elevated host capabilities."},"user":{"type":["string","null"],"description":"Runtime user, as a numeric uid or uid:gid string."}},"additionalProperties":false,"x-readme-ref-name":"DaemonRuntime"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"object","required":["source","target"],"properties":{"options":{"type":["string","null"],"description":"Optional mount options understood by the backend runtime."},"source":{"type":"string","description":"Absolute host path to mount into the daemon container."},"target":{"type":"string","description":"Absolute container path where the source is mounted."}},"additionalProperties":false,"x-readme-ref-name":"DaemonRuntimeMount"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"type":"string","description":"Protocol for
|
|
1
|
+
{"type":"string","description":"Protocol for public workload endpoints.","enum":["http","tcp"],"x-readme-ref-name":"ExposeProtocol"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"object","description":"GPU specification for a capacity group.","required":["type","count"],"properties":{"count":{"type":"integer","format":"int32","description":"Number of GPUs per machine","minimum":0},"type":{"type":"string","description":"GPU type identifier (e.g., \"nvidia-a100\", \"nvidia-t4\")"}},"x-readme-ref-name":"GpuSpec"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"object","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.","required":["cpu","memoryBytes","ephemeralStorageBytes"],"properties":{"architecture":{"oneOf":[{"type":"null"},{"description":"CPU architecture required or provided by this machine profile.","type":"string","enum":["arm64","x86_64"],"x-readme-ref-name":"Architecture"}]},"cpu":{"type":"string","description":"CPU cores per machine (hardware total) - stored as string to preserve precision\n(e.g., \"8.0\", \"4.5\")"},"ephemeralStorageBytes":{"type":"integer","format":"int64","description":"Ephemeral storage in bytes (hardware total)","minimum":0},"gpu":{"oneOf":[{"type":"null"},{"description":"GPU specification (optional)","type":"object","required":["type","count"],"properties":{"count":{"type":"integer","format":"int32","description":"Number of GPUs per machine","minimum":0},"type":{"type":"string","description":"GPU type identifier (e.g., \"nvidia-a100\", \"nvidia-t4\")"}},"x-readme-ref-name":"GpuSpec"}]},"memoryBytes":{"type":"integer","format":"int64","description":"Memory in bytes (hardware total)","minimum":0}},"x-readme-ref-name":"MachineProfile"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"object","description":"Public endpoint configuration for port-backed workload resources.","required":["name","port","protocol"],"properties":{"hostLabel":{"type":["string","null"],"description":"Optional DNS label override for generated endpoint hostnames."},"name":{"type":"string","description":"Endpoint name within the resource."},"port":{"type":"integer","format":"int32","description":"Workload port served by the public endpoint.","minimum":0},"protocol":{"description":"Public protocol.","type":"string","enum":["http","tcp"],"x-readme-ref-name":"ExposeProtocol"},"wildcardSubdomains":{"type":"boolean","description":"Whether to route wildcard subdomains to this endpoint."}},"x-readme-ref-name":"PublicEndpoint"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"object","description":"Runtime-resolved public endpoint metadata.","required":["url","host"],"properties":{"host":{"type":"string","description":"Hostname for this endpoint."},"loadBalancerEndpoint":{"oneOf":[{"type":"null"},{"description":"Load balancer endpoint information for DNS management.","type":"object","required":["dnsName"],"properties":{"dnsName":{"type":"string","description":"The DNS name of the load balancer endpoint (e.g., ALB DNS, API Gateway domain)."},"hostedZoneId":{"type":["string","null"],"description":"AWS Route53 hosted zone ID (for ALIAS records). Only set on AWS."}},"x-readme-ref-name":"LoadBalancerEndpoint"}]},"url":{"type":"string","description":"Base URL for this endpoint."},"wildcardHost":{"type":["string","null"],"description":"Wildcard hostname routed to this endpoint, when configured."}},"x-readme-ref-name":"PublicEndpointOutput"}
|