@alienplatform/core 1.4.2 → 1.7.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 +13 -12
- package/dist/index.d.ts +21 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/stack.js +13 -1
- package/dist/stack.js.map +1 -1
- package/dist/tests/index.d.ts +1 -1
- package/package.json +1 -1
- package/src/__tests__/error.test.ts +16 -9
- package/src/error.ts +3 -3
- package/src/generated/schemas/agentStatus.json +1 -1
- package/src/generated/schemas/alienEvent.json +1 -1
- package/src/generated/schemas/azureCustomCertificateConfig.json +1 -1
- package/src/generated/schemas/azureNetworkImportData.json +1 -1
- package/src/generated/schemas/azureVnetNetworkHeartbeatData.json +1 -1
- package/src/generated/schemas/customCertificateConfig.json +1 -1
- package/src/generated/schemas/customDomainConfig.json +1 -1
- package/src/generated/schemas/deploymentStatus.json +1 -1
- package/src/generated/schemas/devStatus.json +1 -1
- package/src/generated/schemas/domainSettings.json +1 -1
- package/src/generated/schemas/eventChange.json +1 -1
- package/src/generated/schemas/networkHeartbeatData.json +1 -1
- package/src/generated/schemas/networkSettings.json +1 -1
- package/src/generated/schemas/resourceHeartbeat.json +1 -1
- package/src/generated/schemas/resourceHeartbeatData.json +1 -1
- package/src/generated/schemas/resourceStatus.json +1 -1
- package/src/generated/schemas/stackImportRequest.json +1 -1
- package/src/generated/schemas/stackImportResponse.json +1 -1
- package/src/generated/schemas/stackResourceState.json +1 -1
- package/src/generated/schemas/stackSettings.json +1 -1
- package/src/generated/schemas/stackState.json +1 -1
- package/src/generated/zod/azure-custom-certificate-config-schema.ts +2 -1
- package/src/generated/zod/azure-network-import-data-schema.ts +3 -1
- package/src/generated/zod/azure-vnet-network-heartbeat-data-schema.ts +2 -1
- package/src/generated/zod/deployment-status-schema.ts +1 -1
- package/src/generated/zod/network-settings-schema.ts +2 -1
- package/src/generated/zod/resource-status-schema.ts +1 -1
- package/src/generated/zod/stack-import-request-schema.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"oneOf":[{"type":"object","description":"A new event was created","required":["id","createdAt","event","state","type"],"properties":{"createdAt":{"type":"string","format":"date-time","description":"Timestamp when the event was created"},"event":{"description":"The actual event data","oneOf":[{"type":"object","description":"Loading configuration file","required":["type"],"properties":{"type":{"type":"string","enum":["LoadingConfiguration"]}}},{"type":"object","description":"Operation finished successfully","required":["type"],"properties":{"type":{"type":"string","enum":["Finished"]}}},{"type":"object","description":"Stack packaging event","required":["stack","type"],"properties":{"stack":{"type":"string","description":"Name of the stack being built"},"type":{"type":"string","enum":["BuildingStack"]}}},{"type":"object","description":"Running build-time preflight checks and mutations","required":["stack","platform","type"],"properties":{"platform":{"type":"string","description":"Platform being targeted"},"stack":{"type":"string","description":"Name of the stack being checked"},"type":{"type":"string","enum":["RunningPreflights"]}}},{"type":"object","description":"Downloading alien runtime event","required":["targetTriple","url","type"],"properties":{"targetTriple":{"type":"string","description":"Target triple for the runtime"},"type":{"type":"string","enum":["DownloadingAlienRuntime"]},"url":{"type":"string","description":"URL being downloaded from"}}},{"type":"object","description":"Resource build event (function, container, or worker)","required":["resourceName","resourceType","type"],"properties":{"relatedResources":{"type":"array","items":{"type":"string"},"description":"All resource names sharing this build (for deduped container groups)"},"resourceName":{"type":"string","description":"Name of the resource being built"},"resourceType":{"type":"string","description":"Type of the resource: \"worker\", \"container\""},"type":{"type":"string","enum":["BuildingResource"]}}},{"type":"object","description":"Image build event","required":["image","type"],"properties":{"image":{"type":"string","description":"Name of the image being built"},"type":{"type":"string","enum":["BuildingImage"]}}},{"type":"object","description":"Image push event","required":["image","type"],"properties":{"image":{"type":"string","description":"Name of the image being pushed"},"progress":{"oneOf":[{"type":"null"},{"description":"Progress information for the push operation","type":"object","required":["operation","layersUploaded","totalLayers","bytesUploaded","totalBytes"],"properties":{"bytesUploaded":{"type":"integer","format":"int64","description":"Bytes uploaded so far","minimum":0},"layersUploaded":{"type":"integer","description":"Number of layers uploaded so far","minimum":0},"operation":{"type":"string","description":"Current operation being performed"},"totalBytes":{"type":"integer","format":"int64","description":"Total bytes to upload","minimum":0},"totalLayers":{"type":"integer","description":"Total number of layers to upload","minimum":0}},"x-readme-ref-name":"PushProgress"}]},"type":{"type":"string","enum":["PushingImage"]}}},{"type":"object","description":"Pushing stack images to registry","required":["stack","platform","type"],"properties":{"destination":{"type":["string","null"],"description":"Human-readable destination for pushed images"},"platform":{"type":"string","description":"Target platform"},"stack":{"type":"string","description":"Name of the stack being pushed"},"type":{"type":"string","enum":["PushingStack"]}}},{"type":"object","description":"Pushing resource images to registry","required":["resourceName","resourceType","type"],"properties":{"resourceName":{"type":"string","description":"Name of the resource being pushed"},"resourceType":{"type":"string","description":"Type of the resource: \"worker\", \"container\""},"type":{"type":"string","enum":["PushingResource"]}}},{"type":"object","description":"Creating a release on the platform","required":["project","type"],"properties":{"project":{"type":"string","description":"Project name"},"type":{"type":"string","enum":["CreatingRelease"]}}},{"type":"object","description":"Code compilation event (rust, typescript, etc.)","required":["language","type"],"properties":{"language":{"type":"string","description":"Language being compiled (rust, typescript, etc.)"},"progress":{"type":["string","null"],"description":"Current progress/status line from the build output"},"type":{"type":"string","enum":["CompilingCode"]}}},{"type":"object","required":["nextState","type"],"properties":{"nextState":{"description":"The resulting state of the stack after the step.","type":"object","required":["platform","resources","resourcePrefix"],"properties":{"platform":{"description":"The target platform for this stack state.","type":"string","enum":["aws","gcp","azure","kubernetes","local","test"],"x-readme-ref-name":"Platform"},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","description":"The state of individual resources, keyed by resource ID.","additionalProperties":{"type":"object","description":"Represents the state of a single resource within the stack for a specific platform.","required":["type","status","config"],"properties":{"_internal":{"description":"The platform-specific resource controller that manages this resource's lifecycle.\nThis is None when the resource status is Pending.\nStored as JSON to make the struct serializable and movable to alien-core."},"config":{"description":"The current resource configuration.","type":"object","required":["type","id"],"properties":{"id":{"type":"string","description":"The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters."},"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"}},"additionalProperties":true,"x-readme-ref-name":"BaseResource"},"controllerPlatform":{"oneOf":[{"type":"null"},{"description":"Platform whose controller owns this resource state. Defaults to the\ncontaining stack platform when absent.","type":"string","enum":["aws","gcp","azure","kubernetes","local","test"],"x-readme-ref-name":"Platform"}]},"dependencies":{"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":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"null"},{"description":"Stores the last error encountered during a failed step transition.","type":"object","required":["code","message","retryable","internal"],"properties":{"code":{"type":"string","description":"A unique identifier for the type of error.\n\nThis should be a short, machine-readable string that can be used\nby clients to programmatically handle different error types.\nExamples: \"NOT_FOUND\", \"VALIDATION_ERROR\", \"TIMEOUT\"","example":"NOT_FOUND","maxLength":128},"context":{"description":"Additional diagnostic information about the error context.\n\nThis optional field can contain structured data providing more details\nabout the error, such as validation errors, request parameters that\ncaused the issue, or other relevant context information."},"hint":{"type":["string","null"],"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":["integer","null"],"format":"int32","description":"HTTP status code for this error.\n\nUsed when converting the error to an HTTP response. If None, falls back to\nthe error type's default status code or 500.","maximum":599,"minimum":100},"internal":{"type":"boolean","description":"Indicates if this is an internal error that should not be exposed to users.\n\nWhen `true`, this error contains sensitive information or implementation\ndetails that should not be shown to end-users. Such errors should be\nlogged for debugging but replaced with generic error messages in responses."},"message":{"type":"string","description":"Human-readable error message.\n\nThis message should be clear and actionable for developers or end-users,\nproviding context about what went wrong and potentially how to fix it.","example":"Item not found.","maxLength":16384},"retryable":{"type":"boolean","description":"Indicates whether the operation that caused the error should be retried.\n\nWhen `true`, the error is transient and the operation might succeed\nif attempted again. When `false`, retrying the same operation is\nunlikely to succeed without changes.","default":false},"source":{"description":"The underlying error that caused this error, creating an error chain.\n\nThis allows for proper error propagation and debugging by maintaining\nthe full context of how an error occurred through multiple layers\nof an application."}},"x-readme-ref-name":"AlienError"}]},"lastFailedState":{"description":"Stores the controller state that failed, used for manual retry operations.\nThis allows resuming from the exact point where the failure occurred.\nStored as JSON to make the struct serializable and movable to alien-core."},"lifecycle":{"oneOf":[{"type":"null"},{"description":"The lifecycle of the resource (Frozen or Live).\nDefaults to Live if not specified.","type":"string","enum":["frozen","live"],"x-readme-ref-name":"ResourceLifecycle"}]},"outputs":{"oneOf":[{"type":"null"},{"description":"Outputs generated by the resource (e.g., ARN, URL, Bucket Name).","type":"object","required":["type"],"properties":{"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"}},"additionalProperties":true,"x-readme-ref-name":"BaseResourceOutputs"}]},"previousConfig":{"oneOf":[{"type":"null"},{"description":"The previous resource configuration during updates.\nThis is set when an update is initiated and cleared when the update completes or fails.","type":"object","required":["type","id"],"properties":{"id":{"type":"string","description":"The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters."},"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"}},"additionalProperties":true,"x-readme-ref-name":"BaseResource"}]},"remoteBindingParams":{"description":"Binding parameters for remote access.\nOnly populated when the resource has `remote_access: true` in its ResourceEntry.\nThis is the JSON serialization of the binding configuration (e.g., StorageBinding, VaultBinding).\nPopulated by controllers during provisioning using get_binding_params()."},"retryAttempt":{"type":"integer","format":"int32","description":"Tracks consecutive retry attempts for the current state transition.","minimum":0},"status":{"description":"High-level status derived from the internal state.","type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","deleted","refresh-failed"],"x-readme-ref-name":"ResourceStatus"},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"x-readme-ref-name":"StackResourceState"},"propertyNames":{"type":"string"}}},"x-readme-ref-name":"StackState"},"suggestedDelayMs":{"type":["integer","null"],"format":"int64","description":"An suggested duration to wait before executing the next step.","minimum":0},"type":{"type":"string","enum":["StackStep"]}}},{"type":"object","description":"Generating CloudFormation template","required":["type"],"properties":{"type":{"type":"string","enum":["GeneratingCloudFormationTemplate"]}}},{"type":"object","description":"Generating infrastructure template","required":["platform","type"],"properties":{"platform":{"type":"string","description":"Platform for which the template is being generated"},"type":{"type":"string","enum":["GeneratingTemplate"]}}},{"type":"object","description":"Provisioning a new agent","required":["agentId","releaseId","type"],"properties":{"agentId":{"type":"string","description":"ID of the agent being provisioned"},"releaseId":{"type":"string","description":"ID of the release being deployed to the agent"},"type":{"type":"string","enum":["ProvisioningAgent"]}}},{"type":"object","description":"Updating an existing agent","required":["agentId","releaseId","type"],"properties":{"agentId":{"type":"string","description":"ID of the agent being updated"},"releaseId":{"type":"string","description":"ID of the new release being deployed to the agent"},"type":{"type":"string","enum":["UpdatingAgent"]}}},{"type":"object","description":"Deleting an agent","required":["agentId","releaseId","type"],"properties":{"agentId":{"type":"string","description":"ID of the agent being deleted"},"releaseId":{"type":"string","description":"ID of the release that was running on the agent"},"type":{"type":"string","enum":["DeletingAgent"]}}},{"type":"object","description":"Starting a debug session for an agent","required":["agentId","debugSessionId","type"],"properties":{"agentId":{"type":"string","description":"ID of the agent being debugged"},"debugSessionId":{"type":"string","description":"ID of the debug session"},"type":{"type":"string","enum":["DebuggingAgent"]}}},{"type":"object","description":"Preparing environment for deployment","required":["strategyName","type"],"properties":{"strategyName":{"type":"string","description":"Name of the deployment strategy being used"},"type":{"type":"string","enum":["PreparingEnvironment"]}}},{"type":"object","description":"Deploying stack with alien-infra","required":["stackName","type"],"properties":{"stackName":{"type":"string","description":"Name of the stack being deployed"},"type":{"type":"string","enum":["DeployingStack"]}}},{"type":"object","description":"Running test function after deployment","required":["stackName","type"],"properties":{"stackName":{"type":"string","description":"Name of the stack being tested"},"type":{"type":"string","enum":["RunningTestWorker"]}}},{"type":"object","description":"Cleaning up deployed stack resources","required":["stackName","strategyName","type"],"properties":{"stackName":{"type":"string","description":"Name of the stack being cleaned up"},"strategyName":{"type":"string","description":"Name of the deployment strategy being used for cleanup"},"type":{"type":"string","enum":["CleaningUpStack"]}}},{"type":"object","description":"Cleaning up deployment environment","required":["stackName","strategyName","type"],"properties":{"stackName":{"type":"string","description":"Name of the stack being cleaned up"},"strategyName":{"type":"string","description":"Name of the deployment strategy being used for cleanup"},"type":{"type":"string","enum":["CleaningUpEnvironment"]}}},{"type":"object","description":"Setting up platform context","required":["platformName","type"],"properties":{"platformName":{"type":"string","description":"Name of the platform (e.g., \"AWS\", \"GCP\")"},"type":{"type":"string","enum":["SettingUpPlatformContext"]}}},{"type":"object","description":"Ensuring docker repository exists","required":["repositoryName","type"],"properties":{"repositoryName":{"type":"string","description":"Name of the docker repository"},"type":{"type":"string","enum":["EnsuringDockerRepository"]}}},{"type":"object","description":"Deploying CloudFormation stack","required":["cfnStackName","currentStatus","type"],"properties":{"cfnStackName":{"type":"string","description":"Name of the CloudFormation stack"},"currentStatus":{"type":"string","description":"Current stack status"},"type":{"type":"string","enum":["DeployingCloudFormationStack"]}}},{"type":"object","description":"Assuming AWS IAM role","required":["roleArn","type"],"properties":{"roleArn":{"type":"string","description":"ARN of the role to assume"},"type":{"type":"string","enum":["AssumingRole"]}}},{"type":"object","description":"Importing stack state from CloudFormation","required":["cfnStackName","type"],"properties":{"cfnStackName":{"type":"string","description":"Name of the CloudFormation stack"},"type":{"type":"string","enum":["ImportingStackStateFromCloudFormation"]}}},{"type":"object","description":"Deleting CloudFormation stack","required":["cfnStackName","currentStatus","type"],"properties":{"cfnStackName":{"type":"string","description":"Name of the CloudFormation stack"},"currentStatus":{"type":"string","description":"Current stack status"},"type":{"type":"string","enum":["DeletingCloudFormationStack"]}}},{"type":"object","description":"Emptying S3 buckets before stack deletion","required":["bucketNames","type"],"properties":{"bucketNames":{"type":"array","items":{"type":"string"},"description":"Names of the S3 buckets being emptied"},"type":{"type":"string","enum":["EmptyingBuckets"]}}}],"x-readme-ref-name":"AlienEvent"},"id":{"type":"string","description":"Unique identifier for the event"},"parentId":{"type":["string","null"],"description":"Parent event ID if this is a child event"},"state":{"description":"Initial state of the event","oneOf":[{"type":"string","description":"Event has no specific state (simple events)","enum":["none"]},{"type":"string","description":"Event has started (for scoped events)","enum":["started"]},{"type":"string","description":"Event completed successfully","enum":["success"]},{"type":"object","description":"Event failed with an error","required":["failed"],"properties":{"failed":{"type":"object","description":"Event failed with an error","properties":{"error":{"oneOf":[{"type":"null"},{"description":"Error details","type":"object","required":["code","message","retryable","internal"],"properties":{"code":{"type":"string","description":"A unique identifier for the type of error.\n\nThis should be a short, machine-readable string that can be used\nby clients to programmatically handle different error types.\nExamples: \"NOT_FOUND\", \"VALIDATION_ERROR\", \"TIMEOUT\"","example":"NOT_FOUND","maxLength":128},"context":{"description":"Additional diagnostic information about the error context.\n\nThis optional field can contain structured data providing more details\nabout the error, such as validation errors, request parameters that\ncaused the issue, or other relevant context information."},"hint":{"type":["string","null"],"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":["integer","null"],"format":"int32","description":"HTTP status code for this error.\n\nUsed when converting the error to an HTTP response. If None, falls back to\nthe error type's default status code or 500.","maximum":599,"minimum":100},"internal":{"type":"boolean","description":"Indicates if this is an internal error that should not be exposed to users.\n\nWhen `true`, this error contains sensitive information or implementation\ndetails that should not be shown to end-users. Such errors should be\nlogged for debugging but replaced with generic error messages in responses."},"message":{"type":"string","description":"Human-readable error message.\n\nThis message should be clear and actionable for developers or end-users,\nproviding context about what went wrong and potentially how to fix it.","example":"Item not found.","maxLength":16384},"retryable":{"type":"boolean","description":"Indicates whether the operation that caused the error should be retried.\n\nWhen `true`, the error is transient and the operation might succeed\nif attempted again. When `false`, retrying the same operation is\nunlikely to succeed without changes.","default":false},"source":{"description":"The underlying error that caused this error, creating an error chain.\n\nThis allows for proper error propagation and debugging by maintaining\nthe full context of how an error occurred through multiple layers\nof an application."}},"x-readme-ref-name":"AlienError"}]}}}}}],"x-readme-ref-name":"EventState"},"type":{"type":"string","enum":["created"]}}},{"type":"object","description":"An existing event was updated","required":["id","updatedAt","event","type"],"properties":{"event":{"description":"The new event data","oneOf":[{"type":"object","description":"Loading configuration file","required":["type"],"properties":{"type":{"type":"string","enum":["LoadingConfiguration"]}}},{"type":"object","description":"Operation finished successfully","required":["type"],"properties":{"type":{"type":"string","enum":["Finished"]}}},{"type":"object","description":"Stack packaging event","required":["stack","type"],"properties":{"stack":{"type":"string","description":"Name of the stack being built"},"type":{"type":"string","enum":["BuildingStack"]}}},{"type":"object","description":"Running build-time preflight checks and mutations","required":["stack","platform","type"],"properties":{"platform":{"type":"string","description":"Platform being targeted"},"stack":{"type":"string","description":"Name of the stack being checked"},"type":{"type":"string","enum":["RunningPreflights"]}}},{"type":"object","description":"Downloading alien runtime event","required":["targetTriple","url","type"],"properties":{"targetTriple":{"type":"string","description":"Target triple for the runtime"},"type":{"type":"string","enum":["DownloadingAlienRuntime"]},"url":{"type":"string","description":"URL being downloaded from"}}},{"type":"object","description":"Resource build event (function, container, or worker)","required":["resourceName","resourceType","type"],"properties":{"relatedResources":{"type":"array","items":{"type":"string"},"description":"All resource names sharing this build (for deduped container groups)"},"resourceName":{"type":"string","description":"Name of the resource being built"},"resourceType":{"type":"string","description":"Type of the resource: \"worker\", \"container\""},"type":{"type":"string","enum":["BuildingResource"]}}},{"type":"object","description":"Image build event","required":["image","type"],"properties":{"image":{"type":"string","description":"Name of the image being built"},"type":{"type":"string","enum":["BuildingImage"]}}},{"type":"object","description":"Image push event","required":["image","type"],"properties":{"image":{"type":"string","description":"Name of the image being pushed"},"progress":{"oneOf":[{"type":"null"},{"description":"Progress information for the push operation","type":"object","required":["operation","layersUploaded","totalLayers","bytesUploaded","totalBytes"],"properties":{"bytesUploaded":{"type":"integer","format":"int64","description":"Bytes uploaded so far","minimum":0},"layersUploaded":{"type":"integer","description":"Number of layers uploaded so far","minimum":0},"operation":{"type":"string","description":"Current operation being performed"},"totalBytes":{"type":"integer","format":"int64","description":"Total bytes to upload","minimum":0},"totalLayers":{"type":"integer","description":"Total number of layers to upload","minimum":0}},"x-readme-ref-name":"PushProgress"}]},"type":{"type":"string","enum":["PushingImage"]}}},{"type":"object","description":"Pushing stack images to registry","required":["stack","platform","type"],"properties":{"destination":{"type":["string","null"],"description":"Human-readable destination for pushed images"},"platform":{"type":"string","description":"Target platform"},"stack":{"type":"string","description":"Name of the stack being pushed"},"type":{"type":"string","enum":["PushingStack"]}}},{"type":"object","description":"Pushing resource images to registry","required":["resourceName","resourceType","type"],"properties":{"resourceName":{"type":"string","description":"Name of the resource being pushed"},"resourceType":{"type":"string","description":"Type of the resource: \"worker\", \"container\""},"type":{"type":"string","enum":["PushingResource"]}}},{"type":"object","description":"Creating a release on the platform","required":["project","type"],"properties":{"project":{"type":"string","description":"Project name"},"type":{"type":"string","enum":["CreatingRelease"]}}},{"type":"object","description":"Code compilation event (rust, typescript, etc.)","required":["language","type"],"properties":{"language":{"type":"string","description":"Language being compiled (rust, typescript, etc.)"},"progress":{"type":["string","null"],"description":"Current progress/status line from the build output"},"type":{"type":"string","enum":["CompilingCode"]}}},{"type":"object","required":["nextState","type"],"properties":{"nextState":{"description":"The resulting state of the stack after the step.","type":"object","required":["platform","resources","resourcePrefix"],"properties":{"platform":{"description":"The target platform for this stack state.","type":"string","enum":["aws","gcp","azure","kubernetes","local","test"],"x-readme-ref-name":"Platform"},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","description":"The state of individual resources, keyed by resource ID.","additionalProperties":{"type":"object","description":"Represents the state of a single resource within the stack for a specific platform.","required":["type","status","config"],"properties":{"_internal":{"description":"The platform-specific resource controller that manages this resource's lifecycle.\nThis is None when the resource status is Pending.\nStored as JSON to make the struct serializable and movable to alien-core."},"config":{"description":"The current resource configuration.","type":"object","required":["type","id"],"properties":{"id":{"type":"string","description":"The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters."},"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"}},"additionalProperties":true,"x-readme-ref-name":"BaseResource"},"controllerPlatform":{"oneOf":[{"type":"null"},{"description":"Platform whose controller owns this resource state. Defaults to the\ncontaining stack platform when absent.","type":"string","enum":["aws","gcp","azure","kubernetes","local","test"],"x-readme-ref-name":"Platform"}]},"dependencies":{"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":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"null"},{"description":"Stores the last error encountered during a failed step transition.","type":"object","required":["code","message","retryable","internal"],"properties":{"code":{"type":"string","description":"A unique identifier for the type of error.\n\nThis should be a short, machine-readable string that can be used\nby clients to programmatically handle different error types.\nExamples: \"NOT_FOUND\", \"VALIDATION_ERROR\", \"TIMEOUT\"","example":"NOT_FOUND","maxLength":128},"context":{"description":"Additional diagnostic information about the error context.\n\nThis optional field can contain structured data providing more details\nabout the error, such as validation errors, request parameters that\ncaused the issue, or other relevant context information."},"hint":{"type":["string","null"],"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":["integer","null"],"format":"int32","description":"HTTP status code for this error.\n\nUsed when converting the error to an HTTP response. If None, falls back to\nthe error type's default status code or 500.","maximum":599,"minimum":100},"internal":{"type":"boolean","description":"Indicates if this is an internal error that should not be exposed to users.\n\nWhen `true`, this error contains sensitive information or implementation\ndetails that should not be shown to end-users. Such errors should be\nlogged for debugging but replaced with generic error messages in responses."},"message":{"type":"string","description":"Human-readable error message.\n\nThis message should be clear and actionable for developers or end-users,\nproviding context about what went wrong and potentially how to fix it.","example":"Item not found.","maxLength":16384},"retryable":{"type":"boolean","description":"Indicates whether the operation that caused the error should be retried.\n\nWhen `true`, the error is transient and the operation might succeed\nif attempted again. When `false`, retrying the same operation is\nunlikely to succeed without changes.","default":false},"source":{"description":"The underlying error that caused this error, creating an error chain.\n\nThis allows for proper error propagation and debugging by maintaining\nthe full context of how an error occurred through multiple layers\nof an application."}},"x-readme-ref-name":"AlienError"}]},"lastFailedState":{"description":"Stores the controller state that failed, used for manual retry operations.\nThis allows resuming from the exact point where the failure occurred.\nStored as JSON to make the struct serializable and movable to alien-core."},"lifecycle":{"oneOf":[{"type":"null"},{"description":"The lifecycle of the resource (Frozen or Live).\nDefaults to Live if not specified.","type":"string","enum":["frozen","live"],"x-readme-ref-name":"ResourceLifecycle"}]},"outputs":{"oneOf":[{"type":"null"},{"description":"Outputs generated by the resource (e.g., ARN, URL, Bucket Name).","type":"object","required":["type"],"properties":{"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"}},"additionalProperties":true,"x-readme-ref-name":"BaseResourceOutputs"}]},"previousConfig":{"oneOf":[{"type":"null"},{"description":"The previous resource configuration during updates.\nThis is set when an update is initiated and cleared when the update completes or fails.","type":"object","required":["type","id"],"properties":{"id":{"type":"string","description":"The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters."},"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"}},"additionalProperties":true,"x-readme-ref-name":"BaseResource"}]},"remoteBindingParams":{"description":"Binding parameters for remote access.\nOnly populated when the resource has `remote_access: true` in its ResourceEntry.\nThis is the JSON serialization of the binding configuration (e.g., StorageBinding, VaultBinding).\nPopulated by controllers during provisioning using get_binding_params()."},"retryAttempt":{"type":"integer","format":"int32","description":"Tracks consecutive retry attempts for the current state transition.","minimum":0},"status":{"description":"High-level status derived from the internal state.","type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","deleted","refresh-failed"],"x-readme-ref-name":"ResourceStatus"},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"x-readme-ref-name":"StackResourceState"},"propertyNames":{"type":"string"}}},"x-readme-ref-name":"StackState"},"suggestedDelayMs":{"type":["integer","null"],"format":"int64","description":"An suggested duration to wait before executing the next step.","minimum":0},"type":{"type":"string","enum":["StackStep"]}}},{"type":"object","description":"Generating CloudFormation template","required":["type"],"properties":{"type":{"type":"string","enum":["GeneratingCloudFormationTemplate"]}}},{"type":"object","description":"Generating infrastructure template","required":["platform","type"],"properties":{"platform":{"type":"string","description":"Platform for which the template is being generated"},"type":{"type":"string","enum":["GeneratingTemplate"]}}},{"type":"object","description":"Provisioning a new agent","required":["agentId","releaseId","type"],"properties":{"agentId":{"type":"string","description":"ID of the agent being provisioned"},"releaseId":{"type":"string","description":"ID of the release being deployed to the agent"},"type":{"type":"string","enum":["ProvisioningAgent"]}}},{"type":"object","description":"Updating an existing agent","required":["agentId","releaseId","type"],"properties":{"agentId":{"type":"string","description":"ID of the agent being updated"},"releaseId":{"type":"string","description":"ID of the new release being deployed to the agent"},"type":{"type":"string","enum":["UpdatingAgent"]}}},{"type":"object","description":"Deleting an agent","required":["agentId","releaseId","type"],"properties":{"agentId":{"type":"string","description":"ID of the agent being deleted"},"releaseId":{"type":"string","description":"ID of the release that was running on the agent"},"type":{"type":"string","enum":["DeletingAgent"]}}},{"type":"object","description":"Starting a debug session for an agent","required":["agentId","debugSessionId","type"],"properties":{"agentId":{"type":"string","description":"ID of the agent being debugged"},"debugSessionId":{"type":"string","description":"ID of the debug session"},"type":{"type":"string","enum":["DebuggingAgent"]}}},{"type":"object","description":"Preparing environment for deployment","required":["strategyName","type"],"properties":{"strategyName":{"type":"string","description":"Name of the deployment strategy being used"},"type":{"type":"string","enum":["PreparingEnvironment"]}}},{"type":"object","description":"Deploying stack with alien-infra","required":["stackName","type"],"properties":{"stackName":{"type":"string","description":"Name of the stack being deployed"},"type":{"type":"string","enum":["DeployingStack"]}}},{"type":"object","description":"Running test function after deployment","required":["stackName","type"],"properties":{"stackName":{"type":"string","description":"Name of the stack being tested"},"type":{"type":"string","enum":["RunningTestWorker"]}}},{"type":"object","description":"Cleaning up deployed stack resources","required":["stackName","strategyName","type"],"properties":{"stackName":{"type":"string","description":"Name of the stack being cleaned up"},"strategyName":{"type":"string","description":"Name of the deployment strategy being used for cleanup"},"type":{"type":"string","enum":["CleaningUpStack"]}}},{"type":"object","description":"Cleaning up deployment environment","required":["stackName","strategyName","type"],"properties":{"stackName":{"type":"string","description":"Name of the stack being cleaned up"},"strategyName":{"type":"string","description":"Name of the deployment strategy being used for cleanup"},"type":{"type":"string","enum":["CleaningUpEnvironment"]}}},{"type":"object","description":"Setting up platform context","required":["platformName","type"],"properties":{"platformName":{"type":"string","description":"Name of the platform (e.g., \"AWS\", \"GCP\")"},"type":{"type":"string","enum":["SettingUpPlatformContext"]}}},{"type":"object","description":"Ensuring docker repository exists","required":["repositoryName","type"],"properties":{"repositoryName":{"type":"string","description":"Name of the docker repository"},"type":{"type":"string","enum":["EnsuringDockerRepository"]}}},{"type":"object","description":"Deploying CloudFormation stack","required":["cfnStackName","currentStatus","type"],"properties":{"cfnStackName":{"type":"string","description":"Name of the CloudFormation stack"},"currentStatus":{"type":"string","description":"Current stack status"},"type":{"type":"string","enum":["DeployingCloudFormationStack"]}}},{"type":"object","description":"Assuming AWS IAM role","required":["roleArn","type"],"properties":{"roleArn":{"type":"string","description":"ARN of the role to assume"},"type":{"type":"string","enum":["AssumingRole"]}}},{"type":"object","description":"Importing stack state from CloudFormation","required":["cfnStackName","type"],"properties":{"cfnStackName":{"type":"string","description":"Name of the CloudFormation stack"},"type":{"type":"string","enum":["ImportingStackStateFromCloudFormation"]}}},{"type":"object","description":"Deleting CloudFormation stack","required":["cfnStackName","currentStatus","type"],"properties":{"cfnStackName":{"type":"string","description":"Name of the CloudFormation stack"},"currentStatus":{"type":"string","description":"Current stack status"},"type":{"type":"string","enum":["DeletingCloudFormationStack"]}}},{"type":"object","description":"Emptying S3 buckets before stack deletion","required":["bucketNames","type"],"properties":{"bucketNames":{"type":"array","items":{"type":"string"},"description":"Names of the S3 buckets being emptied"},"type":{"type":"string","enum":["EmptyingBuckets"]}}}],"x-readme-ref-name":"AlienEvent"},"id":{"type":"string","description":"Unique identifier for the event"},"type":{"type":"string","enum":["updated"]},"updatedAt":{"type":"string","format":"date-time","description":"Timestamp when the event was updated"}}},{"type":"object","description":"An event's state changed","required":["id","updatedAt","newState","type"],"properties":{"id":{"type":"string","description":"Unique identifier for the event"},"newState":{"description":"The new state","oneOf":[{"type":"string","description":"Event has no specific state (simple events)","enum":["none"]},{"type":"string","description":"Event has started (for scoped events)","enum":["started"]},{"type":"string","description":"Event completed successfully","enum":["success"]},{"type":"object","description":"Event failed with an error","required":["failed"],"properties":{"failed":{"type":"object","description":"Event failed with an error","properties":{"error":{"oneOf":[{"type":"null"},{"description":"Error details","type":"object","required":["code","message","retryable","internal"],"properties":{"code":{"type":"string","description":"A unique identifier for the type of error.\n\nThis should be a short, machine-readable string that can be used\nby clients to programmatically handle different error types.\nExamples: \"NOT_FOUND\", \"VALIDATION_ERROR\", \"TIMEOUT\"","example":"NOT_FOUND","maxLength":128},"context":{"description":"Additional diagnostic information about the error context.\n\nThis optional field can contain structured data providing more details\nabout the error, such as validation errors, request parameters that\ncaused the issue, or other relevant context information."},"hint":{"type":["string","null"],"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":["integer","null"],"format":"int32","description":"HTTP status code for this error.\n\nUsed when converting the error to an HTTP response. If None, falls back to\nthe error type's default status code or 500.","maximum":599,"minimum":100},"internal":{"type":"boolean","description":"Indicates if this is an internal error that should not be exposed to users.\n\nWhen `true`, this error contains sensitive information or implementation\ndetails that should not be shown to end-users. Such errors should be\nlogged for debugging but replaced with generic error messages in responses."},"message":{"type":"string","description":"Human-readable error message.\n\nThis message should be clear and actionable for developers or end-users,\nproviding context about what went wrong and potentially how to fix it.","example":"Item not found.","maxLength":16384},"retryable":{"type":"boolean","description":"Indicates whether the operation that caused the error should be retried.\n\nWhen `true`, the error is transient and the operation might succeed\nif attempted again. When `false`, retrying the same operation is\nunlikely to succeed without changes.","default":false},"source":{"description":"The underlying error that caused this error, creating an error chain.\n\nThis allows for proper error propagation and debugging by maintaining\nthe full context of how an error occurred through multiple layers\nof an application."}},"x-readme-ref-name":"AlienError"}]}}}}}],"x-readme-ref-name":"EventState"},"type":{"type":"string","enum":["stateChanged"]},"updatedAt":{"type":"string","format":"date-time","description":"Timestamp when the state changed"}}}],"description":"Represents a change to an event","x-readme-ref-name":"EventChange"}
|
|
1
|
+
{"oneOf":[{"type":"object","description":"A new event was created","required":["id","createdAt","event","state","type"],"properties":{"createdAt":{"type":"string","format":"date-time","description":"Timestamp when the event was created"},"event":{"description":"The actual event data","oneOf":[{"type":"object","description":"Loading configuration file","required":["type"],"properties":{"type":{"type":"string","enum":["LoadingConfiguration"]}}},{"type":"object","description":"Operation finished successfully","required":["type"],"properties":{"type":{"type":"string","enum":["Finished"]}}},{"type":"object","description":"Stack packaging event","required":["stack","type"],"properties":{"stack":{"type":"string","description":"Name of the stack being built"},"type":{"type":"string","enum":["BuildingStack"]}}},{"type":"object","description":"Running build-time preflight checks and mutations","required":["stack","platform","type"],"properties":{"platform":{"type":"string","description":"Platform being targeted"},"stack":{"type":"string","description":"Name of the stack being checked"},"type":{"type":"string","enum":["RunningPreflights"]}}},{"type":"object","description":"Downloading alien runtime event","required":["targetTriple","url","type"],"properties":{"targetTriple":{"type":"string","description":"Target triple for the runtime"},"type":{"type":"string","enum":["DownloadingAlienRuntime"]},"url":{"type":"string","description":"URL being downloaded from"}}},{"type":"object","description":"Resource build event (function, container, or worker)","required":["resourceName","resourceType","type"],"properties":{"relatedResources":{"type":"array","items":{"type":"string"},"description":"All resource names sharing this build (for deduped container groups)"},"resourceName":{"type":"string","description":"Name of the resource being built"},"resourceType":{"type":"string","description":"Type of the resource: \"worker\", \"container\""},"type":{"type":"string","enum":["BuildingResource"]}}},{"type":"object","description":"Image build event","required":["image","type"],"properties":{"image":{"type":"string","description":"Name of the image being built"},"type":{"type":"string","enum":["BuildingImage"]}}},{"type":"object","description":"Image push event","required":["image","type"],"properties":{"image":{"type":"string","description":"Name of the image being pushed"},"progress":{"oneOf":[{"type":"null"},{"description":"Progress information for the push operation","type":"object","required":["operation","layersUploaded","totalLayers","bytesUploaded","totalBytes"],"properties":{"bytesUploaded":{"type":"integer","format":"int64","description":"Bytes uploaded so far","minimum":0},"layersUploaded":{"type":"integer","description":"Number of layers uploaded so far","minimum":0},"operation":{"type":"string","description":"Current operation being performed"},"totalBytes":{"type":"integer","format":"int64","description":"Total bytes to upload","minimum":0},"totalLayers":{"type":"integer","description":"Total number of layers to upload","minimum":0}},"x-readme-ref-name":"PushProgress"}]},"type":{"type":"string","enum":["PushingImage"]}}},{"type":"object","description":"Pushing stack images to registry","required":["stack","platform","type"],"properties":{"destination":{"type":["string","null"],"description":"Human-readable destination for pushed images"},"platform":{"type":"string","description":"Target platform"},"stack":{"type":"string","description":"Name of the stack being pushed"},"type":{"type":"string","enum":["PushingStack"]}}},{"type":"object","description":"Pushing resource images to registry","required":["resourceName","resourceType","type"],"properties":{"resourceName":{"type":"string","description":"Name of the resource being pushed"},"resourceType":{"type":"string","description":"Type of the resource: \"worker\", \"container\""},"type":{"type":"string","enum":["PushingResource"]}}},{"type":"object","description":"Creating a release on the platform","required":["project","type"],"properties":{"project":{"type":"string","description":"Project name"},"type":{"type":"string","enum":["CreatingRelease"]}}},{"type":"object","description":"Code compilation event (rust, typescript, etc.)","required":["language","type"],"properties":{"language":{"type":"string","description":"Language being compiled (rust, typescript, etc.)"},"progress":{"type":["string","null"],"description":"Current progress/status line from the build output"},"type":{"type":"string","enum":["CompilingCode"]}}},{"type":"object","required":["nextState","type"],"properties":{"nextState":{"description":"The resulting state of the stack after the step.","type":"object","required":["platform","resources","resourcePrefix"],"properties":{"platform":{"description":"The target platform for this stack state.","type":"string","enum":["aws","gcp","azure","kubernetes","local","test"],"x-readme-ref-name":"Platform"},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","description":"The state of individual resources, keyed by resource ID.","additionalProperties":{"type":"object","description":"Represents the state of a single resource within the stack for a specific platform.","required":["type","status","config"],"properties":{"_internal":{"description":"The platform-specific resource controller that manages this resource's lifecycle.\nThis is None when the resource status is Pending.\nStored as JSON to make the struct serializable and movable to alien-core."},"config":{"description":"The current resource configuration.","type":"object","required":["type","id"],"properties":{"id":{"type":"string","description":"The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters."},"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"}},"additionalProperties":true,"x-readme-ref-name":"BaseResource"},"controllerPlatform":{"oneOf":[{"type":"null"},{"description":"Platform whose controller owns this resource state. Defaults to the\ncontaining stack platform when absent.","type":"string","enum":["aws","gcp","azure","kubernetes","local","test"],"x-readme-ref-name":"Platform"}]},"dependencies":{"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":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"null"},{"description":"Stores the last error encountered during a failed step transition.","type":"object","required":["code","message","retryable","internal"],"properties":{"code":{"type":"string","description":"A unique identifier for the type of error.\n\nThis should be a short, machine-readable string that can be used\nby clients to programmatically handle different error types.\nExamples: \"NOT_FOUND\", \"VALIDATION_ERROR\", \"TIMEOUT\"","example":"NOT_FOUND","maxLength":128},"context":{"description":"Additional diagnostic information about the error context.\n\nThis optional field can contain structured data providing more details\nabout the error, such as validation errors, request parameters that\ncaused the issue, or other relevant context information."},"hint":{"type":["string","null"],"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":["integer","null"],"format":"int32","description":"HTTP status code for this error.\n\nUsed when converting the error to an HTTP response. If None, falls back to\nthe error type's default status code or 500.","maximum":599,"minimum":100},"internal":{"type":"boolean","description":"Indicates if this is an internal error that should not be exposed to users.\n\nWhen `true`, this error contains sensitive information or implementation\ndetails that should not be shown to end-users. Such errors should be\nlogged for debugging but replaced with generic error messages in responses."},"message":{"type":"string","description":"Human-readable error message.\n\nThis message should be clear and actionable for developers or end-users,\nproviding context about what went wrong and potentially how to fix it.","example":"Item not found.","maxLength":16384},"retryable":{"type":"boolean","description":"Indicates whether the operation that caused the error should be retried.\n\nWhen `true`, the error is transient and the operation might succeed\nif attempted again. When `false`, retrying the same operation is\nunlikely to succeed without changes.","default":false},"source":{"description":"The underlying error that caused this error, creating an error chain.\n\nThis allows for proper error propagation and debugging by maintaining\nthe full context of how an error occurred through multiple layers\nof an application."}},"x-readme-ref-name":"AlienError"}]},"lastFailedState":{"description":"Stores the controller state that failed, used for manual retry operations.\nThis allows resuming from the exact point where the failure occurred.\nStored as JSON to make the struct serializable and movable to alien-core."},"lifecycle":{"oneOf":[{"type":"null"},{"description":"The lifecycle of the resource (Frozen or Live).\nDefaults to Live if not specified.","type":"string","enum":["frozen","live"],"x-readme-ref-name":"ResourceLifecycle"}]},"outputs":{"oneOf":[{"type":"null"},{"description":"Outputs generated by the resource (e.g., ARN, URL, Bucket Name).","type":"object","required":["type"],"properties":{"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"}},"additionalProperties":true,"x-readme-ref-name":"BaseResourceOutputs"}]},"previousConfig":{"oneOf":[{"type":"null"},{"description":"The previous resource configuration during updates.\nThis is set when an update is initiated and cleared when the update completes or fails.","type":"object","required":["type","id"],"properties":{"id":{"type":"string","description":"The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters."},"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"}},"additionalProperties":true,"x-readme-ref-name":"BaseResource"}]},"remoteBindingParams":{"description":"Binding parameters for remote access.\nOnly populated when the resource has `remote_access: true` in its ResourceEntry.\nThis is the JSON serialization of the binding configuration (e.g., StorageBinding, VaultBinding).\nPopulated by controllers during provisioning using get_binding_params()."},"retryAttempt":{"type":"integer","format":"int32","description":"Tracks consecutive retry attempts for the current state transition.","minimum":0},"status":{"description":"High-level status derived from the internal state.","type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"x-readme-ref-name":"ResourceStatus"},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"x-readme-ref-name":"StackResourceState"},"propertyNames":{"type":"string"}}},"x-readme-ref-name":"StackState"},"suggestedDelayMs":{"type":["integer","null"],"format":"int64","description":"An suggested duration to wait before executing the next step.","minimum":0},"type":{"type":"string","enum":["StackStep"]}}},{"type":"object","description":"Generating CloudFormation template","required":["type"],"properties":{"type":{"type":"string","enum":["GeneratingCloudFormationTemplate"]}}},{"type":"object","description":"Generating infrastructure template","required":["platform","type"],"properties":{"platform":{"type":"string","description":"Platform for which the template is being generated"},"type":{"type":"string","enum":["GeneratingTemplate"]}}},{"type":"object","description":"Provisioning a new agent","required":["agentId","releaseId","type"],"properties":{"agentId":{"type":"string","description":"ID of the agent being provisioned"},"releaseId":{"type":"string","description":"ID of the release being deployed to the agent"},"type":{"type":"string","enum":["ProvisioningAgent"]}}},{"type":"object","description":"Updating an existing agent","required":["agentId","releaseId","type"],"properties":{"agentId":{"type":"string","description":"ID of the agent being updated"},"releaseId":{"type":"string","description":"ID of the new release being deployed to the agent"},"type":{"type":"string","enum":["UpdatingAgent"]}}},{"type":"object","description":"Deleting an agent","required":["agentId","releaseId","type"],"properties":{"agentId":{"type":"string","description":"ID of the agent being deleted"},"releaseId":{"type":"string","description":"ID of the release that was running on the agent"},"type":{"type":"string","enum":["DeletingAgent"]}}},{"type":"object","description":"Starting a debug session for an agent","required":["agentId","debugSessionId","type"],"properties":{"agentId":{"type":"string","description":"ID of the agent being debugged"},"debugSessionId":{"type":"string","description":"ID of the debug session"},"type":{"type":"string","enum":["DebuggingAgent"]}}},{"type":"object","description":"Preparing environment for deployment","required":["strategyName","type"],"properties":{"strategyName":{"type":"string","description":"Name of the deployment strategy being used"},"type":{"type":"string","enum":["PreparingEnvironment"]}}},{"type":"object","description":"Deploying stack with alien-infra","required":["stackName","type"],"properties":{"stackName":{"type":"string","description":"Name of the stack being deployed"},"type":{"type":"string","enum":["DeployingStack"]}}},{"type":"object","description":"Running test function after deployment","required":["stackName","type"],"properties":{"stackName":{"type":"string","description":"Name of the stack being tested"},"type":{"type":"string","enum":["RunningTestWorker"]}}},{"type":"object","description":"Cleaning up deployed stack resources","required":["stackName","strategyName","type"],"properties":{"stackName":{"type":"string","description":"Name of the stack being cleaned up"},"strategyName":{"type":"string","description":"Name of the deployment strategy being used for cleanup"},"type":{"type":"string","enum":["CleaningUpStack"]}}},{"type":"object","description":"Cleaning up deployment environment","required":["stackName","strategyName","type"],"properties":{"stackName":{"type":"string","description":"Name of the stack being cleaned up"},"strategyName":{"type":"string","description":"Name of the deployment strategy being used for cleanup"},"type":{"type":"string","enum":["CleaningUpEnvironment"]}}},{"type":"object","description":"Setting up platform context","required":["platformName","type"],"properties":{"platformName":{"type":"string","description":"Name of the platform (e.g., \"AWS\", \"GCP\")"},"type":{"type":"string","enum":["SettingUpPlatformContext"]}}},{"type":"object","description":"Ensuring docker repository exists","required":["repositoryName","type"],"properties":{"repositoryName":{"type":"string","description":"Name of the docker repository"},"type":{"type":"string","enum":["EnsuringDockerRepository"]}}},{"type":"object","description":"Deploying CloudFormation stack","required":["cfnStackName","currentStatus","type"],"properties":{"cfnStackName":{"type":"string","description":"Name of the CloudFormation stack"},"currentStatus":{"type":"string","description":"Current stack status"},"type":{"type":"string","enum":["DeployingCloudFormationStack"]}}},{"type":"object","description":"Assuming AWS IAM role","required":["roleArn","type"],"properties":{"roleArn":{"type":"string","description":"ARN of the role to assume"},"type":{"type":"string","enum":["AssumingRole"]}}},{"type":"object","description":"Importing stack state from CloudFormation","required":["cfnStackName","type"],"properties":{"cfnStackName":{"type":"string","description":"Name of the CloudFormation stack"},"type":{"type":"string","enum":["ImportingStackStateFromCloudFormation"]}}},{"type":"object","description":"Deleting CloudFormation stack","required":["cfnStackName","currentStatus","type"],"properties":{"cfnStackName":{"type":"string","description":"Name of the CloudFormation stack"},"currentStatus":{"type":"string","description":"Current stack status"},"type":{"type":"string","enum":["DeletingCloudFormationStack"]}}},{"type":"object","description":"Emptying S3 buckets before stack deletion","required":["bucketNames","type"],"properties":{"bucketNames":{"type":"array","items":{"type":"string"},"description":"Names of the S3 buckets being emptied"},"type":{"type":"string","enum":["EmptyingBuckets"]}}}],"x-readme-ref-name":"AlienEvent"},"id":{"type":"string","description":"Unique identifier for the event"},"parentId":{"type":["string","null"],"description":"Parent event ID if this is a child event"},"state":{"description":"Initial state of the event","oneOf":[{"type":"string","description":"Event has no specific state (simple events)","enum":["none"]},{"type":"string","description":"Event has started (for scoped events)","enum":["started"]},{"type":"string","description":"Event completed successfully","enum":["success"]},{"type":"object","description":"Event failed with an error","required":["failed"],"properties":{"failed":{"type":"object","description":"Event failed with an error","properties":{"error":{"oneOf":[{"type":"null"},{"description":"Error details","type":"object","required":["code","message","retryable","internal"],"properties":{"code":{"type":"string","description":"A unique identifier for the type of error.\n\nThis should be a short, machine-readable string that can be used\nby clients to programmatically handle different error types.\nExamples: \"NOT_FOUND\", \"VALIDATION_ERROR\", \"TIMEOUT\"","example":"NOT_FOUND","maxLength":128},"context":{"description":"Additional diagnostic information about the error context.\n\nThis optional field can contain structured data providing more details\nabout the error, such as validation errors, request parameters that\ncaused the issue, or other relevant context information."},"hint":{"type":["string","null"],"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":["integer","null"],"format":"int32","description":"HTTP status code for this error.\n\nUsed when converting the error to an HTTP response. If None, falls back to\nthe error type's default status code or 500.","maximum":599,"minimum":100},"internal":{"type":"boolean","description":"Indicates if this is an internal error that should not be exposed to users.\n\nWhen `true`, this error contains sensitive information or implementation\ndetails that should not be shown to end-users. Such errors should be\nlogged for debugging but replaced with generic error messages in responses."},"message":{"type":"string","description":"Human-readable error message.\n\nThis message should be clear and actionable for developers or end-users,\nproviding context about what went wrong and potentially how to fix it.","example":"Item not found.","maxLength":16384},"retryable":{"type":"boolean","description":"Indicates whether the operation that caused the error should be retried.\n\nWhen `true`, the error is transient and the operation might succeed\nif attempted again. When `false`, retrying the same operation is\nunlikely to succeed without changes.","default":false},"source":{"description":"The underlying error that caused this error, creating an error chain.\n\nThis allows for proper error propagation and debugging by maintaining\nthe full context of how an error occurred through multiple layers\nof an application."}},"x-readme-ref-name":"AlienError"}]}}}}}],"x-readme-ref-name":"EventState"},"type":{"type":"string","enum":["created"]}}},{"type":"object","description":"An existing event was updated","required":["id","updatedAt","event","type"],"properties":{"event":{"description":"The new event data","oneOf":[{"type":"object","description":"Loading configuration file","required":["type"],"properties":{"type":{"type":"string","enum":["LoadingConfiguration"]}}},{"type":"object","description":"Operation finished successfully","required":["type"],"properties":{"type":{"type":"string","enum":["Finished"]}}},{"type":"object","description":"Stack packaging event","required":["stack","type"],"properties":{"stack":{"type":"string","description":"Name of the stack being built"},"type":{"type":"string","enum":["BuildingStack"]}}},{"type":"object","description":"Running build-time preflight checks and mutations","required":["stack","platform","type"],"properties":{"platform":{"type":"string","description":"Platform being targeted"},"stack":{"type":"string","description":"Name of the stack being checked"},"type":{"type":"string","enum":["RunningPreflights"]}}},{"type":"object","description":"Downloading alien runtime event","required":["targetTriple","url","type"],"properties":{"targetTriple":{"type":"string","description":"Target triple for the runtime"},"type":{"type":"string","enum":["DownloadingAlienRuntime"]},"url":{"type":"string","description":"URL being downloaded from"}}},{"type":"object","description":"Resource build event (function, container, or worker)","required":["resourceName","resourceType","type"],"properties":{"relatedResources":{"type":"array","items":{"type":"string"},"description":"All resource names sharing this build (for deduped container groups)"},"resourceName":{"type":"string","description":"Name of the resource being built"},"resourceType":{"type":"string","description":"Type of the resource: \"worker\", \"container\""},"type":{"type":"string","enum":["BuildingResource"]}}},{"type":"object","description":"Image build event","required":["image","type"],"properties":{"image":{"type":"string","description":"Name of the image being built"},"type":{"type":"string","enum":["BuildingImage"]}}},{"type":"object","description":"Image push event","required":["image","type"],"properties":{"image":{"type":"string","description":"Name of the image being pushed"},"progress":{"oneOf":[{"type":"null"},{"description":"Progress information for the push operation","type":"object","required":["operation","layersUploaded","totalLayers","bytesUploaded","totalBytes"],"properties":{"bytesUploaded":{"type":"integer","format":"int64","description":"Bytes uploaded so far","minimum":0},"layersUploaded":{"type":"integer","description":"Number of layers uploaded so far","minimum":0},"operation":{"type":"string","description":"Current operation being performed"},"totalBytes":{"type":"integer","format":"int64","description":"Total bytes to upload","minimum":0},"totalLayers":{"type":"integer","description":"Total number of layers to upload","minimum":0}},"x-readme-ref-name":"PushProgress"}]},"type":{"type":"string","enum":["PushingImage"]}}},{"type":"object","description":"Pushing stack images to registry","required":["stack","platform","type"],"properties":{"destination":{"type":["string","null"],"description":"Human-readable destination for pushed images"},"platform":{"type":"string","description":"Target platform"},"stack":{"type":"string","description":"Name of the stack being pushed"},"type":{"type":"string","enum":["PushingStack"]}}},{"type":"object","description":"Pushing resource images to registry","required":["resourceName","resourceType","type"],"properties":{"resourceName":{"type":"string","description":"Name of the resource being pushed"},"resourceType":{"type":"string","description":"Type of the resource: \"worker\", \"container\""},"type":{"type":"string","enum":["PushingResource"]}}},{"type":"object","description":"Creating a release on the platform","required":["project","type"],"properties":{"project":{"type":"string","description":"Project name"},"type":{"type":"string","enum":["CreatingRelease"]}}},{"type":"object","description":"Code compilation event (rust, typescript, etc.)","required":["language","type"],"properties":{"language":{"type":"string","description":"Language being compiled (rust, typescript, etc.)"},"progress":{"type":["string","null"],"description":"Current progress/status line from the build output"},"type":{"type":"string","enum":["CompilingCode"]}}},{"type":"object","required":["nextState","type"],"properties":{"nextState":{"description":"The resulting state of the stack after the step.","type":"object","required":["platform","resources","resourcePrefix"],"properties":{"platform":{"description":"The target platform for this stack state.","type":"string","enum":["aws","gcp","azure","kubernetes","local","test"],"x-readme-ref-name":"Platform"},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","description":"The state of individual resources, keyed by resource ID.","additionalProperties":{"type":"object","description":"Represents the state of a single resource within the stack for a specific platform.","required":["type","status","config"],"properties":{"_internal":{"description":"The platform-specific resource controller that manages this resource's lifecycle.\nThis is None when the resource status is Pending.\nStored as JSON to make the struct serializable and movable to alien-core."},"config":{"description":"The current resource configuration.","type":"object","required":["type","id"],"properties":{"id":{"type":"string","description":"The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters."},"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"}},"additionalProperties":true,"x-readme-ref-name":"BaseResource"},"controllerPlatform":{"oneOf":[{"type":"null"},{"description":"Platform whose controller owns this resource state. Defaults to the\ncontaining stack platform when absent.","type":"string","enum":["aws","gcp","azure","kubernetes","local","test"],"x-readme-ref-name":"Platform"}]},"dependencies":{"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":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"null"},{"description":"Stores the last error encountered during a failed step transition.","type":"object","required":["code","message","retryable","internal"],"properties":{"code":{"type":"string","description":"A unique identifier for the type of error.\n\nThis should be a short, machine-readable string that can be used\nby clients to programmatically handle different error types.\nExamples: \"NOT_FOUND\", \"VALIDATION_ERROR\", \"TIMEOUT\"","example":"NOT_FOUND","maxLength":128},"context":{"description":"Additional diagnostic information about the error context.\n\nThis optional field can contain structured data providing more details\nabout the error, such as validation errors, request parameters that\ncaused the issue, or other relevant context information."},"hint":{"type":["string","null"],"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":["integer","null"],"format":"int32","description":"HTTP status code for this error.\n\nUsed when converting the error to an HTTP response. If None, falls back to\nthe error type's default status code or 500.","maximum":599,"minimum":100},"internal":{"type":"boolean","description":"Indicates if this is an internal error that should not be exposed to users.\n\nWhen `true`, this error contains sensitive information or implementation\ndetails that should not be shown to end-users. Such errors should be\nlogged for debugging but replaced with generic error messages in responses."},"message":{"type":"string","description":"Human-readable error message.\n\nThis message should be clear and actionable for developers or end-users,\nproviding context about what went wrong and potentially how to fix it.","example":"Item not found.","maxLength":16384},"retryable":{"type":"boolean","description":"Indicates whether the operation that caused the error should be retried.\n\nWhen `true`, the error is transient and the operation might succeed\nif attempted again. When `false`, retrying the same operation is\nunlikely to succeed without changes.","default":false},"source":{"description":"The underlying error that caused this error, creating an error chain.\n\nThis allows for proper error propagation and debugging by maintaining\nthe full context of how an error occurred through multiple layers\nof an application."}},"x-readme-ref-name":"AlienError"}]},"lastFailedState":{"description":"Stores the controller state that failed, used for manual retry operations.\nThis allows resuming from the exact point where the failure occurred.\nStored as JSON to make the struct serializable and movable to alien-core."},"lifecycle":{"oneOf":[{"type":"null"},{"description":"The lifecycle of the resource (Frozen or Live).\nDefaults to Live if not specified.","type":"string","enum":["frozen","live"],"x-readme-ref-name":"ResourceLifecycle"}]},"outputs":{"oneOf":[{"type":"null"},{"description":"Outputs generated by the resource (e.g., ARN, URL, Bucket Name).","type":"object","required":["type"],"properties":{"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"}},"additionalProperties":true,"x-readme-ref-name":"BaseResourceOutputs"}]},"previousConfig":{"oneOf":[{"type":"null"},{"description":"The previous resource configuration during updates.\nThis is set when an update is initiated and cleared when the update completes or fails.","type":"object","required":["type","id"],"properties":{"id":{"type":"string","description":"The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters."},"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"}},"additionalProperties":true,"x-readme-ref-name":"BaseResource"}]},"remoteBindingParams":{"description":"Binding parameters for remote access.\nOnly populated when the resource has `remote_access: true` in its ResourceEntry.\nThis is the JSON serialization of the binding configuration (e.g., StorageBinding, VaultBinding).\nPopulated by controllers during provisioning using get_binding_params()."},"retryAttempt":{"type":"integer","format":"int32","description":"Tracks consecutive retry attempts for the current state transition.","minimum":0},"status":{"description":"High-level status derived from the internal state.","type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"x-readme-ref-name":"ResourceStatus"},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"x-readme-ref-name":"StackResourceState"},"propertyNames":{"type":"string"}}},"x-readme-ref-name":"StackState"},"suggestedDelayMs":{"type":["integer","null"],"format":"int64","description":"An suggested duration to wait before executing the next step.","minimum":0},"type":{"type":"string","enum":["StackStep"]}}},{"type":"object","description":"Generating CloudFormation template","required":["type"],"properties":{"type":{"type":"string","enum":["GeneratingCloudFormationTemplate"]}}},{"type":"object","description":"Generating infrastructure template","required":["platform","type"],"properties":{"platform":{"type":"string","description":"Platform for which the template is being generated"},"type":{"type":"string","enum":["GeneratingTemplate"]}}},{"type":"object","description":"Provisioning a new agent","required":["agentId","releaseId","type"],"properties":{"agentId":{"type":"string","description":"ID of the agent being provisioned"},"releaseId":{"type":"string","description":"ID of the release being deployed to the agent"},"type":{"type":"string","enum":["ProvisioningAgent"]}}},{"type":"object","description":"Updating an existing agent","required":["agentId","releaseId","type"],"properties":{"agentId":{"type":"string","description":"ID of the agent being updated"},"releaseId":{"type":"string","description":"ID of the new release being deployed to the agent"},"type":{"type":"string","enum":["UpdatingAgent"]}}},{"type":"object","description":"Deleting an agent","required":["agentId","releaseId","type"],"properties":{"agentId":{"type":"string","description":"ID of the agent being deleted"},"releaseId":{"type":"string","description":"ID of the release that was running on the agent"},"type":{"type":"string","enum":["DeletingAgent"]}}},{"type":"object","description":"Starting a debug session for an agent","required":["agentId","debugSessionId","type"],"properties":{"agentId":{"type":"string","description":"ID of the agent being debugged"},"debugSessionId":{"type":"string","description":"ID of the debug session"},"type":{"type":"string","enum":["DebuggingAgent"]}}},{"type":"object","description":"Preparing environment for deployment","required":["strategyName","type"],"properties":{"strategyName":{"type":"string","description":"Name of the deployment strategy being used"},"type":{"type":"string","enum":["PreparingEnvironment"]}}},{"type":"object","description":"Deploying stack with alien-infra","required":["stackName","type"],"properties":{"stackName":{"type":"string","description":"Name of the stack being deployed"},"type":{"type":"string","enum":["DeployingStack"]}}},{"type":"object","description":"Running test function after deployment","required":["stackName","type"],"properties":{"stackName":{"type":"string","description":"Name of the stack being tested"},"type":{"type":"string","enum":["RunningTestWorker"]}}},{"type":"object","description":"Cleaning up deployed stack resources","required":["stackName","strategyName","type"],"properties":{"stackName":{"type":"string","description":"Name of the stack being cleaned up"},"strategyName":{"type":"string","description":"Name of the deployment strategy being used for cleanup"},"type":{"type":"string","enum":["CleaningUpStack"]}}},{"type":"object","description":"Cleaning up deployment environment","required":["stackName","strategyName","type"],"properties":{"stackName":{"type":"string","description":"Name of the stack being cleaned up"},"strategyName":{"type":"string","description":"Name of the deployment strategy being used for cleanup"},"type":{"type":"string","enum":["CleaningUpEnvironment"]}}},{"type":"object","description":"Setting up platform context","required":["platformName","type"],"properties":{"platformName":{"type":"string","description":"Name of the platform (e.g., \"AWS\", \"GCP\")"},"type":{"type":"string","enum":["SettingUpPlatformContext"]}}},{"type":"object","description":"Ensuring docker repository exists","required":["repositoryName","type"],"properties":{"repositoryName":{"type":"string","description":"Name of the docker repository"},"type":{"type":"string","enum":["EnsuringDockerRepository"]}}},{"type":"object","description":"Deploying CloudFormation stack","required":["cfnStackName","currentStatus","type"],"properties":{"cfnStackName":{"type":"string","description":"Name of the CloudFormation stack"},"currentStatus":{"type":"string","description":"Current stack status"},"type":{"type":"string","enum":["DeployingCloudFormationStack"]}}},{"type":"object","description":"Assuming AWS IAM role","required":["roleArn","type"],"properties":{"roleArn":{"type":"string","description":"ARN of the role to assume"},"type":{"type":"string","enum":["AssumingRole"]}}},{"type":"object","description":"Importing stack state from CloudFormation","required":["cfnStackName","type"],"properties":{"cfnStackName":{"type":"string","description":"Name of the CloudFormation stack"},"type":{"type":"string","enum":["ImportingStackStateFromCloudFormation"]}}},{"type":"object","description":"Deleting CloudFormation stack","required":["cfnStackName","currentStatus","type"],"properties":{"cfnStackName":{"type":"string","description":"Name of the CloudFormation stack"},"currentStatus":{"type":"string","description":"Current stack status"},"type":{"type":"string","enum":["DeletingCloudFormationStack"]}}},{"type":"object","description":"Emptying S3 buckets before stack deletion","required":["bucketNames","type"],"properties":{"bucketNames":{"type":"array","items":{"type":"string"},"description":"Names of the S3 buckets being emptied"},"type":{"type":"string","enum":["EmptyingBuckets"]}}}],"x-readme-ref-name":"AlienEvent"},"id":{"type":"string","description":"Unique identifier for the event"},"type":{"type":"string","enum":["updated"]},"updatedAt":{"type":"string","format":"date-time","description":"Timestamp when the event was updated"}}},{"type":"object","description":"An event's state changed","required":["id","updatedAt","newState","type"],"properties":{"id":{"type":"string","description":"Unique identifier for the event"},"newState":{"description":"The new state","oneOf":[{"type":"string","description":"Event has no specific state (simple events)","enum":["none"]},{"type":"string","description":"Event has started (for scoped events)","enum":["started"]},{"type":"string","description":"Event completed successfully","enum":["success"]},{"type":"object","description":"Event failed with an error","required":["failed"],"properties":{"failed":{"type":"object","description":"Event failed with an error","properties":{"error":{"oneOf":[{"type":"null"},{"description":"Error details","type":"object","required":["code","message","retryable","internal"],"properties":{"code":{"type":"string","description":"A unique identifier for the type of error.\n\nThis should be a short, machine-readable string that can be used\nby clients to programmatically handle different error types.\nExamples: \"NOT_FOUND\", \"VALIDATION_ERROR\", \"TIMEOUT\"","example":"NOT_FOUND","maxLength":128},"context":{"description":"Additional diagnostic information about the error context.\n\nThis optional field can contain structured data providing more details\nabout the error, such as validation errors, request parameters that\ncaused the issue, or other relevant context information."},"hint":{"type":["string","null"],"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":["integer","null"],"format":"int32","description":"HTTP status code for this error.\n\nUsed when converting the error to an HTTP response. If None, falls back to\nthe error type's default status code or 500.","maximum":599,"minimum":100},"internal":{"type":"boolean","description":"Indicates if this is an internal error that should not be exposed to users.\n\nWhen `true`, this error contains sensitive information or implementation\ndetails that should not be shown to end-users. Such errors should be\nlogged for debugging but replaced with generic error messages in responses."},"message":{"type":"string","description":"Human-readable error message.\n\nThis message should be clear and actionable for developers or end-users,\nproviding context about what went wrong and potentially how to fix it.","example":"Item not found.","maxLength":16384},"retryable":{"type":"boolean","description":"Indicates whether the operation that caused the error should be retried.\n\nWhen `true`, the error is transient and the operation might succeed\nif attempted again. When `false`, retrying the same operation is\nunlikely to succeed without changes.","default":false},"source":{"description":"The underlying error that caused this error, creating an error chain.\n\nThis allows for proper error propagation and debugging by maintaining\nthe full context of how an error occurred through multiple layers\nof an application."}},"x-readme-ref-name":"AlienError"}]}}}}}],"x-readme-ref-name":"EventState"},"type":{"type":"string","enum":["stateChanged"]},"updatedAt":{"type":"string","format":"date-time","description":"Timestamp when the state changed"}}}],"description":"Represents a change to an event","x-readme-ref-name":"EventChange"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"oneOf":[{"allOf":[{"type":"object","required":["status","publicSubnetIds","privateSubnetIds","availabilityZones","routeTableCount","isByoVpc"],"properties":{"availabilityZones":{"type":"array","items":{"type":"string"}},"cidrBlock":{"type":["string","null"]},"internetGatewayId":{"type":["string","null"]},"isByoVpc":{"type":"boolean"},"natGatewayId":{"type":["string","null"]},"privateSubnetIds":{"type":"array","items":{"type":"string"}},"publicSubnetIds":{"type":"array","items":{"type":"string"}},"routeTableCount":{"type":"integer","format":"int32","minimum":0},"securityGroupId":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"NetworkHeartbeatStatus"},"vpcId":{"type":["string","null"]},"vpcState":{"type":["string","null"]}},"x-readme-ref-name":"AwsVpcNetworkHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsVpc"]}}}]},{"allOf":[{"type":"object","required":["status","isByoVpc"],"properties":{"cidrBlock":{"type":["string","null"]},"cloudNatName":{"type":["string","null"]},"firewallName":{"type":["string","null"]},"isByoVpc":{"type":"boolean"},"networkName":{"type":["string","null"]},"networkSelfLink":{"type":["string","null"]},"region":{"type":["string","null"]},"routerName":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"NetworkHeartbeatStatus"},"subnetworkName":{"type":["string","null"]},"subnetworkSelfLink":{"type":["string","null"]}},"x-readme-ref-name":"GcpVpcNetworkHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpVpc"]}}}]},{"allOf":[{"type":"object","required":["status","isByoVnet"],"properties":{"cidrBlock":{"type":["string","null"]},"isByoVnet":{"type":"boolean"},"lastByoVnetVerificationErrorCode":{"type":["string","null"]},"location":{"type":["string","null"]},"natGatewayId":{"type":["string","null"]},"nsgId":{"type":["string","null"]},"privateSubnetName":{"type":["string","null"]},"publicIpId":{"type":["string","null"]},"publicSubnetName":{"type":["string","null"]},"resourceGroup":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"NetworkHeartbeatStatus"},"vnetName":{"type":["string","null"]},"vnetResourceId":{"type":["string","null"]}},"x-readme-ref-name":"AzureVnetNetworkHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureVnet"]}}}]}],"x-readme-ref-name":"NetworkHeartbeatData"}
|
|
1
|
+
{"oneOf":[{"allOf":[{"type":"object","required":["status","publicSubnetIds","privateSubnetIds","availabilityZones","routeTableCount","isByoVpc"],"properties":{"availabilityZones":{"type":"array","items":{"type":"string"}},"cidrBlock":{"type":["string","null"]},"internetGatewayId":{"type":["string","null"]},"isByoVpc":{"type":"boolean"},"natGatewayId":{"type":["string","null"]},"privateSubnetIds":{"type":"array","items":{"type":"string"}},"publicSubnetIds":{"type":"array","items":{"type":"string"}},"routeTableCount":{"type":"integer","format":"int32","minimum":0},"securityGroupId":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"NetworkHeartbeatStatus"},"vpcId":{"type":["string","null"]},"vpcState":{"type":["string","null"]}},"x-readme-ref-name":"AwsVpcNetworkHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["awsVpc"]}}}]},{"allOf":[{"type":"object","required":["status","isByoVpc"],"properties":{"cidrBlock":{"type":["string","null"]},"cloudNatName":{"type":["string","null"]},"firewallName":{"type":["string","null"]},"isByoVpc":{"type":"boolean"},"networkName":{"type":["string","null"]},"networkSelfLink":{"type":["string","null"]},"region":{"type":["string","null"]},"routerName":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"NetworkHeartbeatStatus"},"subnetworkName":{"type":["string","null"]},"subnetworkSelfLink":{"type":["string","null"]}},"x-readme-ref-name":"GcpVpcNetworkHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["gcpVpc"]}}}]},{"allOf":[{"type":"object","required":["status","isByoVnet"],"properties":{"applicationGatewaySubnetName":{"type":["string","null"]},"cidrBlock":{"type":["string","null"]},"isByoVnet":{"type":"boolean"},"lastByoVnetVerificationErrorCode":{"type":["string","null"]},"location":{"type":["string","null"]},"natGatewayId":{"type":["string","null"]},"nsgId":{"type":["string","null"]},"privateSubnetName":{"type":["string","null"]},"publicIpId":{"type":["string","null"]},"publicSubnetName":{"type":["string","null"]},"resourceGroup":{"type":["string","null"]},"status":{"type":"object","required":["health","lifecycle","stale","partial","collectionIssues"],"properties":{"collectionIssues":{"type":"array","items":{"type":"object","required":["source","reason","severity","message"],"properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"],"x-readme-ref-name":"HeartbeatCollectionIssueReason"},"severity":{"type":"string","enum":["info","warning","error"],"x-readme-ref-name":"HeartbeatIssueSeverity"},"source":{"type":"string"}},"x-readme-ref-name":"HeartbeatCollectionIssue"}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"],"x-readme-ref-name":"ObservedHealth"},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"],"x-readme-ref-name":"ProviderLifecycleState"},"message":{"type":["string","null"]},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"x-readme-ref-name":"NetworkHeartbeatStatus"},"vnetName":{"type":["string","null"]},"vnetResourceId":{"type":["string","null"]}},"x-readme-ref-name":"AzureVnetNetworkHeartbeatData"},{"type":"object","required":["backend"],"properties":{"backend":{"type":"string","enum":["azureVnet"]}}}]}],"x-readme-ref-name":"NetworkHeartbeatData"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"oneOf":[{"type":"object","description":"Use the cloud provider's default VPC/network.\n\nDesigned for fast dev/test provisioning. No isolated VPC is created, so there\nis nothing to wait for or clean up. VMs receive ephemeral public IPs for internet\naccess — no NAT gateway is provisioned.\n\n- **AWS**: Discovers the account's default VPC. Subnets are public with auto-assigned IPs.\n- **GCP**: Discovers the project's `default` network and regional subnet. Instance\n templates include an `AccessConfig` to assign an ephemeral external IP.\n- **Azure**: Azure has no default VNet, so one is created along with a NAT Gateway.\n VMs stay private and use NAT for egress.\n\nNot recommended for production. Use `Create` instead.","required":["type"],"properties":{"type":{"type":"string","enum":["use-default"]}}},{"type":"object","description":"Create a new isolated VPC/VNet with a managed NAT gateway.\n\nAll networking infrastructure is provisioned by Alien and cleaned up on delete.\nVMs use private IPs only; all outbound traffic routes through the NAT gateway.\n\nRecommended for production deployments.","required":["type"],"properties":{"availability_zones":{"type":"integer","format":"int32","description":"Number of availability zones (default: 2).","minimum":0},"cidr":{"type":["string","null"],"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}}},{"type":"object","description":"Use an existing VPC (AWS).\n\nAlien validates the references but creates no networking infrastructure.\nThe customer is responsible for routing and egress (NAT, proxy, VPN, etc.).","required":["vpc_id","public_subnet_ids","private_subnet_ids","type"],"properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}}},{"type":"object","description":"Use an existing VPC (GCP).\n\nAlien validates the references but creates no networking infrastructure.\nThe customer is responsible for routing and egress (Cloud NAT, proxy, VPN, etc.).","required":["network_name","subnet_name","region","type"],"properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}}},{"type":"object","description":"Use an existing VNet (Azure).\n\nAlien validates the references but creates no networking infrastructure.\nThe customer is responsible for routing and egress (NAT Gateway, proxy, VPN, etc.).","required":["vnet_resource_id","public_subnet_name","private_subnet_name","type"],"properties":{"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}}}],"description":"Network configuration for the stack.\n\nControls how VPC/VNet networking is provisioned. Users configure this in\n`StackSettings`; the Network resource itself is auto-generated by preflights.\n\n## Egress policy\n\nContainer cluster VMs are configured for egress based on the mode:\n\n- `UseDefault` → VMs get ephemeral public IPs (no NAT is provisioned)\n- `Create` → VMs use private IPs; Alien provisions a NAT gateway for outbound access\n- `ByoVpc*` / `ByoVnet*` → no public IPs assigned; customer manages egress\n\nFor production workloads, use `Create`. For fast dev/test iteration, `UseDefault` is\nsufficient. For environments with existing VPCs, use the appropriate `ByoVpc*` variant.","x-readme-ref-name":"NetworkSettings"}
|
|
1
|
+
{"oneOf":[{"type":"object","description":"Use the cloud provider's default VPC/network.\n\nDesigned for fast dev/test provisioning. No isolated VPC is created, so there\nis nothing to wait for or clean up. VMs receive ephemeral public IPs for internet\naccess — no NAT gateway is provisioned.\n\n- **AWS**: Discovers the account's default VPC. Subnets are public with auto-assigned IPs.\n- **GCP**: Discovers the project's `default` network and regional subnet. Instance\n templates include an `AccessConfig` to assign an ephemeral external IP.\n- **Azure**: Azure has no default VNet, so one is created along with a NAT Gateway.\n VMs stay private and use NAT for egress.\n\nNot recommended for production. Use `Create` instead.","required":["type"],"properties":{"type":{"type":"string","enum":["use-default"]}}},{"type":"object","description":"Create a new isolated VPC/VNet with a managed NAT gateway.\n\nAll networking infrastructure is provisioned by Alien and cleaned up on delete.\nVMs use private IPs only; all outbound traffic routes through the NAT gateway.\n\nRecommended for production deployments.","required":["type"],"properties":{"availability_zones":{"type":"integer","format":"int32","description":"Number of availability zones (default: 2).","minimum":0},"cidr":{"type":["string","null"],"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}}},{"type":"object","description":"Use an existing VPC (AWS).\n\nAlien validates the references but creates no networking infrastructure.\nThe customer is responsible for routing and egress (NAT, proxy, VPN, etc.).","required":["vpc_id","public_subnet_ids","private_subnet_ids","type"],"properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}}},{"type":"object","description":"Use an existing VPC (GCP).\n\nAlien validates the references but creates no networking infrastructure.\nThe customer is responsible for routing and egress (Cloud NAT, proxy, VPN, etc.).","required":["network_name","subnet_name","region","type"],"properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}}},{"type":"object","description":"Use an existing VNet (Azure).\n\nAlien validates the references but creates no networking infrastructure.\nThe customer is responsible for routing and egress (NAT Gateway, proxy, VPN, etc.).","required":["vnet_resource_id","public_subnet_name","private_subnet_name","type"],"properties":{"application_gateway_subnet_name":{"type":["string","null"],"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}}}],"description":"Network configuration for the stack.\n\nControls how VPC/VNet networking is provisioned. Users configure this in\n`StackSettings`; the Network resource itself is auto-generated by preflights.\n\n## Egress policy\n\nContainer cluster VMs are configured for egress based on the mode:\n\n- `UseDefault` → VMs get ephemeral public IPs (no NAT is provisioned)\n- `Create` → VMs use private IPs; Alien provisions a NAT gateway for outbound access\n- `ByoVpc*` / `ByoVnet*` → no public IPs assigned; customer manages egress\n\nFor production workloads, use `Create`. For fast dev/test iteration, `UseDefault` is\nsufficient. For environments with existing VPCs, use the appropriate `ByoVpc*` variant.","x-readme-ref-name":"NetworkSettings"}
|