@alienplatform/core 1.0.1 → 1.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/.turbo/turbo-build.log +30 -0
  2. package/LICENSE.md +105 -0
  3. package/dist/index.d.ts +2343 -2321
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +16 -6
  6. package/dist/index.js.map +1 -1
  7. package/dist/stack.js +264 -262
  8. package/dist/stack.js.map +1 -1
  9. package/dist/tests/index.d.ts +2 -1
  10. package/dist/tests/index.d.ts.map +1 -1
  11. package/kubb.config.ts +1 -0
  12. package/package.json +17 -10
  13. package/src/artifact-registry.ts +12 -0
  14. package/src/function.ts +5 -6
  15. package/src/generated/index.ts +0 -2
  16. package/src/generated/schemas/agentStatus.json +1 -1
  17. package/src/generated/schemas/alienError.json +1 -1
  18. package/src/generated/schemas/alienEvent.json +1 -1
  19. package/src/generated/schemas/artifactRegistry.json +1 -1
  20. package/src/generated/schemas/azureManagementConfig.json +1 -1
  21. package/src/generated/schemas/commandState.json +1 -1
  22. package/src/generated/schemas/createCommandRequest.json +1 -1
  23. package/src/generated/schemas/deploymentStatus.json +1 -1
  24. package/src/generated/schemas/devStatus.json +1 -1
  25. package/src/generated/schemas/envelope.json +1 -1
  26. package/src/generated/schemas/eventChange.json +1 -1
  27. package/src/generated/schemas/eventState.json +1 -1
  28. package/src/generated/schemas/function.json +1 -1
  29. package/src/generated/schemas/functionOutputs.json +1 -1
  30. package/src/generated/schemas/functionTrigger.json +1 -1
  31. package/src/generated/schemas/leaseInfo.json +1 -1
  32. package/src/generated/schemas/leaseResponse.json +1 -1
  33. package/src/generated/schemas/managementConfig.json +1 -1
  34. package/src/generated/schemas/managementPermissions.json +1 -1
  35. package/src/generated/schemas/permissionsConfig.json +1 -1
  36. package/src/generated/schemas/remoteStackManagement.json +1 -1
  37. package/src/generated/schemas/remoteStackManagementOutputs.json +1 -1
  38. package/src/generated/schemas/resourceEntry.json +1 -1
  39. package/src/generated/schemas/resourceLifecycle.json +1 -1
  40. package/src/generated/schemas/stack.json +1 -1
  41. package/src/generated/schemas/stackResourceState.json +1 -1
  42. package/src/generated/schemas/stackSettings.json +1 -1
  43. package/src/generated/schemas/stackState.json +1 -1
  44. package/src/generated/schemas/updatesMode.json +1 -1
  45. package/src/generated/zod/agent-status-schema.ts +6 -5
  46. package/src/generated/zod/alien-error-schema.ts +5 -4
  47. package/src/generated/zod/alien-event-schema.ts +6 -6
  48. package/src/generated/zod/artifact-registry-outputs-schema.ts +3 -3
  49. package/src/generated/zod/artifact-registry-schema.ts +3 -2
  50. package/src/generated/zod/aws-custom-certificate-config-schema.ts +1 -1
  51. package/src/generated/zod/aws-management-config-schema.ts +1 -1
  52. package/src/generated/zod/aws-platform-permission-schema.ts +3 -3
  53. package/src/generated/zod/azure-custom-certificate-config-schema.ts +1 -1
  54. package/src/generated/zod/azure-management-config-schema.ts +5 -3
  55. package/src/generated/zod/azure-platform-permission-schema.ts +3 -3
  56. package/src/generated/zod/base-resource-outputs-schema.ts +2 -2
  57. package/src/generated/zod/base-resource-schema.ts +2 -2
  58. package/src/generated/zod/binding-configuration-aws-binding-spec-schema.ts +7 -7
  59. package/src/generated/zod/binding-configuration-azure-binding-spec-schema.ts +5 -5
  60. package/src/generated/zod/binding-configuration-gcp-binding-spec-schema.ts +7 -7
  61. package/src/generated/zod/body-spec-schema.ts +4 -4
  62. package/src/generated/zod/build-config-schema.ts +5 -5
  63. package/src/generated/zod/build-outputs-schema.ts +1 -1
  64. package/src/generated/zod/build-schema.ts +5 -5
  65. package/src/generated/zod/build-status-schema.ts +1 -1
  66. package/src/generated/zod/command-response-schema.ts +3 -3
  67. package/src/generated/zod/command-state-schema.ts +3 -3
  68. package/src/generated/zod/command-status-response-schema.ts +4 -4
  69. package/src/generated/zod/compute-type-schema.ts +1 -1
  70. package/src/generated/zod/container-autoscaling-schema.ts +5 -5
  71. package/src/generated/zod/container-code-schema.ts +2 -2
  72. package/src/generated/zod/container-gpu-spec-schema.ts +1 -1
  73. package/src/generated/zod/container-outputs-schema.ts +5 -5
  74. package/src/generated/zod/container-port-schema.ts +2 -2
  75. package/src/generated/zod/container-schema.ts +18 -18
  76. package/src/generated/zod/container-status-schema.ts +1 -1
  77. package/src/generated/zod/create-command-request-schema.ts +6 -6
  78. package/src/generated/zod/create-command-response-schema.ts +4 -4
  79. package/src/generated/zod/custom-certificate-config-schema.ts +4 -4
  80. package/src/generated/zod/custom-domain-config-schema.ts +2 -2
  81. package/src/generated/zod/deployment-model-schema.ts +1 -1
  82. package/src/generated/zod/deployment-status-schema.ts +2 -2
  83. package/src/generated/zod/dev-resource-info-schema.ts +2 -2
  84. package/src/generated/zod/dev-status-schema.ts +4 -4
  85. package/src/generated/zod/dev-status-state-schema.ts +1 -1
  86. package/src/generated/zod/domain-settings-schema.ts +2 -2
  87. package/src/generated/zod/envelope-schema.ts +6 -6
  88. package/src/generated/zod/event-change-schema.ts +9 -9
  89. package/src/generated/zod/event-state-schema.ts +2 -2
  90. package/src/generated/zod/expose-protocol-schema.ts +1 -1
  91. package/src/generated/zod/function-code-schema.ts +2 -2
  92. package/src/generated/zod/function-outputs-schema.ts +6 -5
  93. package/src/generated/zod/function-schema.ts +13 -13
  94. package/src/generated/zod/function-trigger-schema.ts +4 -4
  95. package/src/generated/zod/gcp-condition-schema.ts +1 -1
  96. package/src/generated/zod/gcp-custom-certificate-config-schema.ts +1 -1
  97. package/src/generated/zod/gcp-management-config-schema.ts +1 -1
  98. package/src/generated/zod/gcp-platform-permission-schema.ts +3 -3
  99. package/src/generated/zod/health-check-schema.ts +6 -6
  100. package/src/generated/zod/heartbeats-mode-schema.ts +1 -1
  101. package/src/generated/zod/http-method-schema.ts +1 -1
  102. package/src/generated/zod/index.ts +0 -2
  103. package/src/generated/zod/ingress-schema.ts +1 -1
  104. package/src/generated/zod/kv-outputs-schema.ts +3 -3
  105. package/src/generated/zod/kv-schema.ts +1 -1
  106. package/src/generated/zod/lease-info-schema.ts +4 -4
  107. package/src/generated/zod/lease-request-schema.ts +3 -3
  108. package/src/generated/zod/lease-response-schema.ts +2 -2
  109. package/src/generated/zod/lifecycle-rule-schema.ts +2 -2
  110. package/src/generated/zod/load-balancer-endpoint-schema.ts +2 -2
  111. package/src/generated/zod/local-operation-schema.ts +1 -1
  112. package/src/generated/zod/management-config-schema.ts +6 -6
  113. package/src/generated/zod/management-permissions-schema.ts +3 -3
  114. package/src/generated/zod/message-payload-schema.ts +1 -1
  115. package/src/generated/zod/monitoring-config-schema.ts +6 -6
  116. package/src/generated/zod/network-settings-schema.ts +4 -4
  117. package/src/generated/zod/permission-grant-schema.ts +4 -4
  118. package/src/generated/zod/permission-profile-schema.ts +2 -2
  119. package/src/generated/zod/permission-set-reference-schema.ts +2 -2
  120. package/src/generated/zod/permission-set-schema.ts +2 -2
  121. package/src/generated/zod/permissions-config-schema.ts +3 -3
  122. package/src/generated/zod/persistent-storage-schema.ts +4 -4
  123. package/src/generated/zod/platform-permissions-schema.ts +7 -7
  124. package/src/generated/zod/platform-schema.ts +1 -1
  125. package/src/generated/zod/presigned-operation-schema.ts +1 -1
  126. package/src/generated/zod/presigned-request-backend-schema.ts +2 -2
  127. package/src/generated/zod/presigned-request-schema.ts +4 -4
  128. package/src/generated/zod/push-progress-schema.ts +1 -1
  129. package/src/generated/zod/queue-message-schema.ts +6 -6
  130. package/src/generated/zod/queue-outputs-schema.ts +2 -2
  131. package/src/generated/zod/queue-schema.ts +1 -1
  132. package/src/generated/zod/readiness-probe-schema.ts +3 -3
  133. package/src/generated/zod/release-request-schema.ts +1 -1
  134. package/src/generated/zod/remote-stack-management-outputs-schema.ts +3 -3
  135. package/src/generated/zod/remote-stack-management-schema.ts +3 -3
  136. package/src/generated/zod/replica-status-schema.ts +4 -4
  137. package/src/generated/zod/resource-entry-schema.ts +5 -5
  138. package/src/generated/zod/resource-lifecycle-schema.ts +2 -2
  139. package/src/generated/zod/resource-ref-schema.ts +2 -2
  140. package/src/generated/zod/resource-spec-schema.ts +1 -1
  141. package/src/generated/zod/resource-status-schema.ts +1 -1
  142. package/src/generated/zod/resource-type-schema.ts +1 -1
  143. package/src/generated/zod/response-handling-schema.ts +2 -2
  144. package/src/generated/zod/scheduled-event-schema.ts +2 -2
  145. package/src/generated/zod/service-account-outputs-schema.ts +1 -1
  146. package/src/generated/zod/service-account-schema.ts +2 -2
  147. package/src/generated/zod/stack-ref-schema.ts +1 -1
  148. package/src/generated/zod/stack-resource-state-schema.ts +13 -13
  149. package/src/generated/zod/stack-schema.ts +3 -3
  150. package/src/generated/zod/stack-settings-schema.ts +13 -10
  151. package/src/generated/zod/stack-state-schema.ts +3 -3
  152. package/src/generated/zod/stack-status-schema.ts +1 -1
  153. package/src/generated/zod/storage-event-schema.ts +13 -13
  154. package/src/generated/zod/storage-event-type-schema.ts +1 -1
  155. package/src/generated/zod/storage-events-schema.ts +2 -2
  156. package/src/generated/zod/storage-outputs-schema.ts +1 -1
  157. package/src/generated/zod/storage-schema.ts +4 -4
  158. package/src/generated/zod/storage-upload-schema.ts +3 -3
  159. package/src/generated/zod/submit-response-request-schema.ts +2 -2
  160. package/src/generated/zod/telemetry-mode-schema.ts +1 -1
  161. package/src/generated/zod/toolchain-config-schema.ts +5 -5
  162. package/src/generated/zod/updates-mode-schema.ts +3 -3
  163. package/src/generated/zod/upload-complete-request-schema.ts +1 -1
  164. package/src/generated/zod/upload-complete-response-schema.ts +3 -3
  165. package/src/generated/zod/vault-outputs-schema.ts +1 -1
  166. package/src/generated/zod/vault-schema.ts +1 -1
  167. package/src/index.ts +2 -2
  168. package/src/generated/schemas/imagePullCredentials.json +0 -1
  169. package/src/generated/zod/image-pull-credentials-schema.ts +0 -16
@@ -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: \"function\", \"container\", \"worker\""},"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":{"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: \"function\", \"container\", \"worker\""},"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":["function","storage","queue","redis","postgres"],"x-readme-ref-name":"ResourceType"}},"additionalProperties":true,"x-readme-ref-name":"BaseResource"},"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":["function","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."},"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"}]},"isExternallyProvisioned":{"type":"boolean","description":"True if the resource was provisioned by an external system (e.g., CloudFormation).\nDefaults to false, indicating dynamic provisioning by the executor."},"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, Live, LiveOnSetup).\nDefaults to Live if not specified.","type":"string","enum":["frozen","live","live-on-setup"],"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":["function","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":["function","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., Function::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":["RunningTestFunction"]}}},{"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."},"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: \"function\", \"container\", \"worker\""},"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":{"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: \"function\", \"container\", \"worker\""},"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":["function","storage","queue","redis","postgres"],"x-readme-ref-name":"ResourceType"}},"additionalProperties":true,"x-readme-ref-name":"BaseResource"},"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":["function","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."},"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"}]},"isExternallyProvisioned":{"type":"boolean","description":"True if the resource was provisioned by an external system (e.g., CloudFormation).\nDefaults to false, indicating dynamic provisioning by the executor."},"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, Live, LiveOnSetup).\nDefaults to Live if not specified.","type":"string","enum":["frozen","live","live-on-setup"],"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":["function","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":["function","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., Function::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":["RunningTestFunction"]}}},{"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."},"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: \"function\", \"container\", \"worker\""},"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":{"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: \"function\", \"container\", \"worker\""},"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":["function","storage","queue","redis","postgres"],"x-readme-ref-name":"ResourceType"}},"additionalProperties":true,"x-readme-ref-name":"BaseResource"},"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":["function","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"}]},"isExternallyProvisioned":{"type":"boolean","description":"True if the resource was provisioned by an external system (e.g., CloudFormation).\nDefaults to false, indicating dynamic provisioning by the executor."},"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":["function","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":["function","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., Function::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":["RunningTestFunction"]}}},{"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: \"function\", \"container\", \"worker\""},"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":{"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: \"function\", \"container\", \"worker\""},"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":["function","storage","queue","redis","postgres"],"x-readme-ref-name":"ResourceType"}},"additionalProperties":true,"x-readme-ref-name":"BaseResource"},"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":["function","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"}]},"isExternallyProvisioned":{"type":"boolean","description":"True if the resource was provisioned by an external system (e.g., CloudFormation).\nDefaults to false, indicating dynamic provisioning by the executor."},"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":["function","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":["function","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., Function::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":["RunningTestFunction"]}}},{"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":[{"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."},"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"}]}}}}}],"description":"Represents the state of an event","x-readme-ref-name":"EventState"}
1
+ {"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"}]}}}}}],"description":"Represents the state of an event","x-readme-ref-name":"EventState"}
@@ -1 +1 @@
1
- {"type":"object","description":"Represents a serverless function that executes code in response to triggers or direct invocations.\nFunctions are the primary compute resource in serverless applications, designed to be stateless and ephemeral.","required":["id","links","triggers","permissions","code"],"properties":{"arcEnabled":{"type":"boolean","description":"Whether the function can be invoked via ARC (Alien Remote Call) protocol from the control plane.\nWhen enabled, the necessary queue infrastructure is automatically created for the target platform.","default":false},"code":{"description":"Code for the function, either a pre-built image or source code to be built.","oneOf":[{"type":"object","description":"Container image.","required":["image","type"],"properties":{"image":{"type":"string","description":"Container image (e.g., `ghcr.io/myorg/myimage:latest`)."},"type":{"type":"string","enum":["image"]}}},{"type":"object","description":"Source code to be built.","required":["src","toolchain","type"],"properties":{"src":{"type":"string","description":"The source directory to build from"},"toolchain":{"description":"Toolchain configuration with type-safe options","oneOf":[{"type":"object","description":"Rust with Cargo build system","required":["binaryName","type"],"properties":{"binaryName":{"type":"string","description":"Name of the binary to build and run"},"type":{"type":"string","enum":["rust"]}}},{"type":"object","description":"TypeScript/JavaScript compiled to single executable with Bun","required":["type"],"properties":{"binaryName":{"type":["string","null"],"description":"Name of the compiled binary (defaults to package.json name if not specified)"},"type":{"type":"string","enum":["typescript"]}}},{"type":"object","description":"Docker build from Dockerfile","required":["type"],"properties":{"buildArgs":{"type":["object","null"],"description":"Build arguments for docker build","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"dockerfile":{"type":["string","null"],"description":"Dockerfile path relative to src (default: \"Dockerfile\")"},"target":{"type":["string","null"],"description":"Multi-stage build target"},"type":{"type":"string","enum":["docker"]}}}],"x-readme-ref-name":"ToolchainConfig"},"type":{"type":"string","enum":["source"]}}}],"x-readme-ref-name":"FunctionCode"},"concurrencyLimit":{"type":["integer","null"],"format":"int32","description":"Maximum number of concurrent executions allowed for the function.\nNone means platform default applies.","minimum":0},"environment":{"type":"object","description":"Key-value pairs to set as environment variables for the function.","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"id":{"type":"string","description":"Identifier for the function. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]).\nMaximum 64 characters."},"ingress":{"oneOf":[{"description":"Controls network accessibility of the function.","type":"string","enum":["public","private"],"x-readme-ref-name":"Ingress"}],"default":"private"},"links":{"type":"array","items":{"type":"object","description":"New ResourceRef that works with any resource type.\nThis can eventually replace the enum-based ResourceRef for full extensibility.","required":["type","id"],"properties":{"id":{"type":"string"},"type":{"type":"string","description":"Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior.","examples":["function","storage","queue","redis","postgres"],"x-readme-ref-name":"ResourceType"}},"x-readme-ref-name":"ResourceRef"},"description":"List of resource references this function depends on."},"memoryMb":{"type":"integer","format":"int32","description":"Memory allocated to the function in megabytes (MB).\nConstraints: 128‑32768 MB (platform-specific limits may apply)\nDefault: 256","default":256,"minimum":0},"permissions":{"type":"string","description":"Permission profile name that defines the permissions granted to this function.\nThis references a profile defined in the stack's permission definitions."},"readinessProbe":{"oneOf":[{"type":"null"},{"description":"Optional readiness probe configuration.\nOnly applicable for functions with Public ingress.\nWhen configured, the probe will be executed after provisioning/update to verify the function is ready.","type":"object","properties":{"method":{"description":"HTTP method to use for the probe request.\nDefault: GET","type":"string","enum":["GET","POST","PUT","DELETE","HEAD","OPTIONS","PATCH"],"x-readme-ref-name":"HttpMethod"},"path":{"type":"string","description":"Path to request for the probe (e.g., \"/health\", \"/ready\").\nDefault: \"/\""}},"x-readme-ref-name":"ReadinessProbe"}]},"timeoutSeconds":{"type":"integer","format":"int32","description":"Maximum execution time for the function in seconds.\nConstraints: 1‑3600 seconds (platform-specific limits may apply)\nDefault: 30","default":180,"minimum":0},"triggers":{"type":"array","items":{"oneOf":[{"type":"object","description":"Function triggered by queue messages (always 1 message per invocation)","required":["queue","type"],"properties":{"queue":{"type":"object","description":"Reference to the queue resource","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":["function","storage","queue","redis","postgres"],"x-readme-ref-name":"ResourceType"}},"x-readme-ref-name":"ResourceRef"},"type":{"type":"string","enum":["queue"]}}},{"type":"object","description":"Function triggered by storage events (future implementation)","required":["storage","events","type"],"properties":{"events":{"type":"array","items":{"type":"string"},"description":"Events to trigger on (e.g., [\"created\", \"deleted\"])"},"storage":{"type":"object","description":"Reference to the storage resource","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":["function","storage","queue","redis","postgres"],"x-readme-ref-name":"ResourceType"}},"x-readme-ref-name":"ResourceRef"},"type":{"type":"string","enum":["storage"]}}},{"type":"object","description":"Function triggered by scheduled events (future implementation)","required":["cron","type"],"properties":{"cron":{"type":"string","description":"Cron expression for scheduling"},"type":{"type":"string","enum":["schedule"]}}}],"description":"Defines what triggers a function execution","x-readme-ref-name":"FunctionTrigger"},"description":"List of triggers that define what events automatically invoke this function.\nIf empty, the function is only invokable directly via HTTP calls or platform-specific invocation APIs.\nWhen configured, the function will be automatically invoked when any of the specified trigger conditions are met."}},"additionalProperties":false,"x-readme-ref-name":"Function"}
1
+ {"type":"object","description":"Represents a serverless function that executes code in response to triggers or direct invocations.\nFunctions are the primary compute resource in serverless applications, designed to be stateless and ephemeral.","required":["id","links","triggers","permissions","code"],"properties":{"code":{"description":"Code for the function, either a pre-built image or source code to be built.","oneOf":[{"type":"object","description":"Container image.","required":["image","type"],"properties":{"image":{"type":"string","description":"Container image (e.g., `ghcr.io/myorg/myimage:latest`)."},"type":{"type":"string","enum":["image"]}}},{"type":"object","description":"Source code to be built.","required":["src","toolchain","type"],"properties":{"src":{"type":"string","description":"The source directory to build from"},"toolchain":{"description":"Toolchain configuration with type-safe options","oneOf":[{"type":"object","description":"Rust with Cargo build system","required":["binaryName","type"],"properties":{"binaryName":{"type":"string","description":"Name of the binary to build and run"},"type":{"type":"string","enum":["rust"]}}},{"type":"object","description":"TypeScript/JavaScript compiled to single executable with Bun","required":["type"],"properties":{"binaryName":{"type":["string","null"],"description":"Name of the compiled binary (defaults to package.json name if not specified)"},"type":{"type":"string","enum":["typescript"]}}},{"type":"object","description":"Docker build from Dockerfile","required":["type"],"properties":{"buildArgs":{"type":["object","null"],"description":"Build arguments for docker build","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"dockerfile":{"type":["string","null"],"description":"Dockerfile path relative to src (default: \"Dockerfile\")"},"target":{"type":["string","null"],"description":"Multi-stage build target"},"type":{"type":"string","enum":["docker"]}}}],"x-readme-ref-name":"ToolchainConfig"},"type":{"type":"string","enum":["source"]}}}],"x-readme-ref-name":"FunctionCode"},"commandsEnabled":{"type":"boolean","description":"Whether the function can receive remote commands via the Commands protocol.\nWhen enabled, the runtime polls the manager for pending commands and executes registered handlers.","default":false},"concurrencyLimit":{"type":["integer","null"],"format":"int32","description":"Maximum number of concurrent executions allowed for the function.\nNone means platform default applies.","minimum":0},"environment":{"type":"object","description":"Key-value pairs to set as environment variables for the function.","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"id":{"type":"string","description":"Identifier for the function. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]).\nMaximum 64 characters."},"ingress":{"oneOf":[{"description":"Controls network accessibility of the function.","type":"string","enum":["public","private"],"x-readme-ref-name":"Ingress"}],"default":"private"},"links":{"type":"array","items":{"type":"object","description":"New ResourceRef that works with any resource type.\nThis can eventually replace the enum-based ResourceRef for full extensibility.","required":["type","id"],"properties":{"id":{"type":"string"},"type":{"type":"string","description":"Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior.","examples":["function","storage","queue","redis","postgres"],"x-readme-ref-name":"ResourceType"}},"x-readme-ref-name":"ResourceRef"},"description":"List of resource references this function depends on."},"memoryMb":{"type":"integer","format":"int32","description":"Memory allocated to the function in megabytes (MB).\nConstraints: 128‑32768 MB (platform-specific limits may apply)\nDefault: 256","default":256,"minimum":0},"permissions":{"type":"string","description":"Permission profile name that defines the permissions granted to this function.\nThis references a profile defined in the stack's permission definitions."},"readinessProbe":{"oneOf":[{"type":"null"},{"description":"Optional readiness probe configuration.\nOnly applicable for functions with Public ingress.\nWhen configured, the probe will be executed after provisioning/update to verify the function is ready.","type":"object","properties":{"method":{"description":"HTTP method to use for the probe request.\nDefault: GET","type":"string","enum":["GET","POST","PUT","DELETE","HEAD","OPTIONS","PATCH"],"x-readme-ref-name":"HttpMethod"},"path":{"type":"string","description":"Path to request for the probe (e.g., \"/health\", \"/ready\").\nDefault: \"/\""}},"x-readme-ref-name":"ReadinessProbe"}]},"timeoutSeconds":{"type":"integer","format":"int32","description":"Maximum execution time for the function in seconds.\nConstraints: 1‑3600 seconds (platform-specific limits may apply)\nDefault: 30","default":180,"minimum":0},"triggers":{"type":"array","items":{"oneOf":[{"type":"object","description":"Function triggered by queue messages (always 1 message per invocation)","required":["queue","type"],"properties":{"queue":{"type":"object","description":"Reference to the queue resource","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":["function","storage","queue","redis","postgres"],"x-readme-ref-name":"ResourceType"}},"x-readme-ref-name":"ResourceRef"},"type":{"type":"string","enum":["queue"]}}},{"type":"object","description":"Function triggered by storage events (object created, deleted, etc.)","required":["storage","events","type"],"properties":{"events":{"type":"array","items":{"type":"string"},"description":"Events to trigger on (e.g., [\"created\", \"deleted\"])"},"storage":{"type":"object","description":"Reference to the storage resource","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":["function","storage","queue","redis","postgres"],"x-readme-ref-name":"ResourceType"}},"x-readme-ref-name":"ResourceRef"},"type":{"type":"string","enum":["storage"]}}},{"type":"object","description":"Function triggered on a schedule (cron expression)","required":["cron","type"],"properties":{"cron":{"type":"string","description":"Cron expression for scheduling (standard 5-field unix cron)"},"type":{"type":"string","enum":["schedule"]}}}],"description":"Defines what triggers a function execution","x-readme-ref-name":"FunctionTrigger"},"description":"List of triggers that define what events automatically invoke this function.\nIf empty, the function is only invokable directly via HTTP calls or platform-specific invocation APIs.\nWhen configured, the function will be automatically invoked when any of the specified trigger conditions are met."}},"additionalProperties":false,"x-readme-ref-name":"Function"}
@@ -1 +1 @@
1
- {"type":"object","description":"Outputs generated by a successfully provisioned Function.","required":["functionName"],"properties":{"functionName":{"type":"string","description":"The name of the function."},"identifier":{"type":["string","null"],"description":"The ARN or platform-specific identifier."},"loadBalancerEndpoint":{"oneOf":[{"type":"null"},{"description":"Load balancer endpoint information for DNS management (optional).\nUsed by the DNS controller to create custom domain mappings.","type":"object","required":["dnsName"],"properties":{"dnsName":{"type":"string","description":"The DNS name of the load balancer endpoint (e.g., ALB DNS, API Gateway domain)."},"hostedZoneId":{"type":["string","null"],"description":"AWS Route53 hosted zone ID (for ALIAS records). Only set on AWS."}},"x-readme-ref-name":"LoadBalancerEndpoint"}]},"url":{"type":["string","null"],"description":"The invocation URL (if applicable, e.g., for public ingress or specific platforms)."}},"x-readme-ref-name":"FunctionOutputs"}
1
+ {"type":"object","description":"Outputs generated by a successfully provisioned Function.","required":["functionName"],"properties":{"commandsPushTarget":{"type":["string","null"],"description":"Push target for commands delivery. Platform-specific:\n- AWS: Lambda function name or ARN\n- GCP: Full Pub/Sub topic path (projects/{project}/topics/{topic})\n- Azure: Service Bus \"{namespace}/{queue}\""},"functionName":{"type":"string","description":"The name of the function."},"identifier":{"type":["string","null"],"description":"The ARN or platform-specific identifier."},"loadBalancerEndpoint":{"oneOf":[{"type":"null"},{"description":"Load balancer endpoint information for DNS management (optional).\nUsed by the DNS controller to create custom domain mappings.","type":"object","required":["dnsName"],"properties":{"dnsName":{"type":"string","description":"The DNS name of the load balancer endpoint (e.g., ALB DNS, API Gateway domain)."},"hostedZoneId":{"type":["string","null"],"description":"AWS Route53 hosted zone ID (for ALIAS records). Only set on AWS."}},"x-readme-ref-name":"LoadBalancerEndpoint"}]},"url":{"type":["string","null"],"description":"The invocation URL (if applicable, e.g., for public ingress or specific platforms)."}},"x-readme-ref-name":"FunctionOutputs"}
@@ -1 +1 @@
1
- {"oneOf":[{"type":"object","description":"Function triggered by queue messages (always 1 message per invocation)","required":["queue","type"],"properties":{"queue":{"type":"object","description":"Reference to the queue resource","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":["function","storage","queue","redis","postgres"],"x-readme-ref-name":"ResourceType"}},"x-readme-ref-name":"ResourceRef"},"type":{"type":"string","enum":["queue"]}}},{"type":"object","description":"Function triggered by storage events (future implementation)","required":["storage","events","type"],"properties":{"events":{"type":"array","items":{"type":"string"},"description":"Events to trigger on (e.g., [\"created\", \"deleted\"])"},"storage":{"type":"object","description":"Reference to the storage resource","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":["function","storage","queue","redis","postgres"],"x-readme-ref-name":"ResourceType"}},"x-readme-ref-name":"ResourceRef"},"type":{"type":"string","enum":["storage"]}}},{"type":"object","description":"Function triggered by scheduled events (future implementation)","required":["cron","type"],"properties":{"cron":{"type":"string","description":"Cron expression for scheduling"},"type":{"type":"string","enum":["schedule"]}}}],"description":"Defines what triggers a function execution","x-readme-ref-name":"FunctionTrigger"}
1
+ {"oneOf":[{"type":"object","description":"Function triggered by queue messages (always 1 message per invocation)","required":["queue","type"],"properties":{"queue":{"type":"object","description":"Reference to the queue resource","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":["function","storage","queue","redis","postgres"],"x-readme-ref-name":"ResourceType"}},"x-readme-ref-name":"ResourceRef"},"type":{"type":"string","enum":["queue"]}}},{"type":"object","description":"Function triggered by storage events (object created, deleted, etc.)","required":["storage","events","type"],"properties":{"events":{"type":"array","items":{"type":"string"},"description":"Events to trigger on (e.g., [\"created\", \"deleted\"])"},"storage":{"type":"object","description":"Reference to the storage resource","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":["function","storage","queue","redis","postgres"],"x-readme-ref-name":"ResourceType"}},"x-readme-ref-name":"ResourceRef"},"type":{"type":"string","enum":["storage"]}}},{"type":"object","description":"Function triggered on a schedule (cron expression)","required":["cron","type"],"properties":{"cron":{"type":"string","description":"Cron expression for scheduling (standard 5-field unix cron)"},"type":{"type":"string","enum":["schedule"]}}}],"description":"Defines what triggers a function execution","x-readme-ref-name":"FunctionTrigger"}
@@ -1 +1 @@
1
- {"type":"object","description":"Lease information","required":["leaseId","leaseExpiresAt","commandId","attempt","envelope"],"properties":{"attempt":{"type":"integer","format":"int32","description":"Attempt number","minimum":0},"commandId":{"type":"string","description":"Command identifier"},"envelope":{"description":"ARC envelope to process","type":"object","required":["protocol","deploymentId","commandId","attempt","command","params","responseHandling"],"properties":{"attempt":{"type":"integer","format":"int32","description":"Attempt number (starts at 1)","minimum":0},"command":{"type":"string","description":"Command name (e.g., \"generate-report\", \"sync-data\")"},"commandId":{"type":"string","description":"Unique command identifier"},"deadline":{"type":["string","null"],"format":"date-time","description":"Command deadline"},"deploymentId":{"type":"string","description":"Target deployment identifier"},"params":{"description":"Command parameters (JSON, can be large)","oneOf":[{"type":"object","description":"Inline base64-encoded body","required":["inlineBase64","mode"],"properties":{"inlineBase64":{"type":"string"},"mode":{"type":"string","enum":["inline"]}}},{"type":"object","description":"Storage-backed body","required":["mode"],"properties":{"mode":{"type":"string","enum":["storage"]},"size":{"type":["integer","null"],"format":"int64","description":"Size of the body in bytes","minimum":0},"storageGetRequest":{"oneOf":[{"type":"null"},{"description":"Pre-signed request for retrieving the body (for deployments)","type":"object","required":["backend","expiration","operation","path"],"properties":{"backend":{"description":"The storage backend this request targets","oneOf":[{"type":"object","description":"HTTP-based request (AWS S3, GCP GCS, Azure Blob)","required":["url","method","headers","type"],"properties":{"headers":{"type":"object","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"method":{"type":"string"},"type":{"type":"string","enum":["http"]},"url":{"type":"string"}}},{"type":"object","description":"Local filesystem operation","required":["filePath","operation","type"],"properties":{"filePath":{"type":"string"},"operation":{"type":"string","description":"Local filesystem operations","enum":["put","get","delete"],"x-readme-ref-name":"LocalOperation"},"type":{"type":"string","enum":["local"]}}}],"x-readme-ref-name":"PresignedRequestBackend"},"expiration":{"type":"string","format":"date-time","description":"When this presigned request expires"},"operation":{"description":"The operation this request performs","type":"string","enum":["put","get","delete"],"x-readme-ref-name":"PresignedOperation"},"path":{"type":"string","description":"The path this request operates on"}},"x-readme-ref-name":"PresignedRequest"}]},"storagePutUsed":{"type":["boolean","null"],"description":"Indicates storage upload was used for response submission"}}}],"x-readme-ref-name":"BodySpec"},"protocol":{"type":"string","description":"Protocol version identifier"},"responseHandling":{"description":"Response handling configuration","type":"object","required":["maxInlineBytes","submitResponseUrl","storageUploadRequest"],"properties":{"maxInlineBytes":{"type":"integer","format":"int64","description":"Maximum response body size that can be submitted inline","minimum":0},"storageUploadRequest":{"description":"Pre-signed request for uploading large response bodies","type":"object","required":["backend","expiration","operation","path"],"properties":{"backend":{"description":"The storage backend this request targets","oneOf":[{"type":"object","description":"HTTP-based request (AWS S3, GCP GCS, Azure Blob)","required":["url","method","headers","type"],"properties":{"headers":{"type":"object","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"method":{"type":"string"},"type":{"type":"string","enum":["http"]},"url":{"type":"string"}}},{"type":"object","description":"Local filesystem operation","required":["filePath","operation","type"],"properties":{"filePath":{"type":"string"},"operation":{"type":"string","description":"Local filesystem operations","enum":["put","get","delete"],"x-readme-ref-name":"LocalOperation"},"type":{"type":"string","enum":["local"]}}}],"x-readme-ref-name":"PresignedRequestBackend"},"expiration":{"type":"string","format":"date-time","description":"When this presigned request expires"},"operation":{"description":"The operation this request performs","type":"string","enum":["put","get","delete"],"x-readme-ref-name":"PresignedOperation"},"path":{"type":"string","description":"The path this request operates on"}},"x-readme-ref-name":"PresignedRequest"},"submitResponseUrl":{"type":"string","description":"URL where deployments submit responses"}},"x-readme-ref-name":"ResponseHandling"}},"x-readme-ref-name":"Envelope"},"leaseExpiresAt":{"type":"string","format":"date-time","description":"When lease expires"},"leaseId":{"type":"string","description":"Unique lease identifier"}},"x-readme-ref-name":"LeaseInfo"}
1
+ {"type":"object","description":"Lease information","required":["leaseId","leaseExpiresAt","commandId","attempt","envelope"],"properties":{"attempt":{"type":"integer","format":"int32","description":"Attempt number","minimum":0},"commandId":{"type":"string","description":"Command identifier"},"envelope":{"description":"Commands envelope to process","type":"object","required":["protocol","deploymentId","commandId","attempt","command","params","responseHandling"],"properties":{"attempt":{"type":"integer","format":"int32","description":"Attempt number (starts at 1)","minimum":0},"command":{"type":"string","description":"Command name (e.g., \"generate-report\", \"sync-data\")"},"commandId":{"type":"string","description":"Unique command identifier"},"deadline":{"type":["string","null"],"format":"date-time","description":"Command deadline"},"deploymentId":{"type":"string","description":"Target deployment identifier"},"params":{"description":"Command parameters (JSON, can be large)","oneOf":[{"type":"object","description":"Inline base64-encoded body","required":["inlineBase64","mode"],"properties":{"inlineBase64":{"type":"string"},"mode":{"type":"string","enum":["inline"]}}},{"type":"object","description":"Storage-backed body","required":["mode"],"properties":{"mode":{"type":"string","enum":["storage"]},"size":{"type":["integer","null"],"format":"int64","description":"Size of the body in bytes","minimum":0},"storageGetRequest":{"oneOf":[{"type":"null"},{"description":"Pre-signed request for retrieving the body (for deployments)","type":"object","required":["backend","expiration","operation","path"],"properties":{"backend":{"description":"The storage backend this request targets","oneOf":[{"type":"object","description":"HTTP-based request (AWS S3, GCP GCS, Azure Blob)","required":["url","method","headers","type"],"properties":{"headers":{"type":"object","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"method":{"type":"string"},"type":{"type":"string","enum":["http"]},"url":{"type":"string"}}},{"type":"object","description":"Local filesystem operation","required":["filePath","operation","type"],"properties":{"filePath":{"type":"string"},"operation":{"type":"string","description":"Local filesystem operations","enum":["put","get","delete"],"x-readme-ref-name":"LocalOperation"},"type":{"type":"string","enum":["local"]}}}],"x-readme-ref-name":"PresignedRequestBackend"},"expiration":{"type":"string","format":"date-time","description":"When this presigned request expires"},"operation":{"description":"The operation this request performs","type":"string","enum":["put","get","delete"],"x-readme-ref-name":"PresignedOperation"},"path":{"type":"string","description":"The path this request operates on"}},"x-readme-ref-name":"PresignedRequest"}]},"storagePutUsed":{"type":["boolean","null"],"description":"Indicates storage upload was used for response submission"}}}],"x-readme-ref-name":"BodySpec"},"protocol":{"type":"string","description":"Protocol version identifier"},"responseHandling":{"description":"Response handling configuration","type":"object","required":["maxInlineBytes","submitResponseUrl","storageUploadRequest"],"properties":{"maxInlineBytes":{"type":"integer","format":"int64","description":"Maximum response body size that can be submitted inline","minimum":0},"storageUploadRequest":{"description":"Pre-signed request for uploading large response bodies","type":"object","required":["backend","expiration","operation","path"],"properties":{"backend":{"description":"The storage backend this request targets","oneOf":[{"type":"object","description":"HTTP-based request (AWS S3, GCP GCS, Azure Blob)","required":["url","method","headers","type"],"properties":{"headers":{"type":"object","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"method":{"type":"string"},"type":{"type":"string","enum":["http"]},"url":{"type":"string"}}},{"type":"object","description":"Local filesystem operation","required":["filePath","operation","type"],"properties":{"filePath":{"type":"string"},"operation":{"type":"string","description":"Local filesystem operations","enum":["put","get","delete"],"x-readme-ref-name":"LocalOperation"},"type":{"type":"string","enum":["local"]}}}],"x-readme-ref-name":"PresignedRequestBackend"},"expiration":{"type":"string","format":"date-time","description":"When this presigned request expires"},"operation":{"description":"The operation this request performs","type":"string","enum":["put","get","delete"],"x-readme-ref-name":"PresignedOperation"},"path":{"type":"string","description":"The path this request operates on"}},"x-readme-ref-name":"PresignedRequest"},"submitResponseUrl":{"type":"string","description":"URL where deployments submit responses"}},"x-readme-ref-name":"ResponseHandling"}},"x-readme-ref-name":"Envelope"},"leaseExpiresAt":{"type":"string","format":"date-time","description":"When lease expires"},"leaseId":{"type":"string","description":"Unique lease identifier"}},"x-readme-ref-name":"LeaseInfo"}
@@ -1 +1 @@
1
- {"type":"object","description":"Response to lease acquisition","required":["leases"],"properties":{"leases":{"type":"array","items":{"type":"object","description":"Lease information","required":["leaseId","leaseExpiresAt","commandId","attempt","envelope"],"properties":{"attempt":{"type":"integer","format":"int32","description":"Attempt number","minimum":0},"commandId":{"type":"string","description":"Command identifier"},"envelope":{"description":"ARC envelope to process","type":"object","required":["protocol","deploymentId","commandId","attempt","command","params","responseHandling"],"properties":{"attempt":{"type":"integer","format":"int32","description":"Attempt number (starts at 1)","minimum":0},"command":{"type":"string","description":"Command name (e.g., \"generate-report\", \"sync-data\")"},"commandId":{"type":"string","description":"Unique command identifier"},"deadline":{"type":["string","null"],"format":"date-time","description":"Command deadline"},"deploymentId":{"type":"string","description":"Target deployment identifier"},"params":{"description":"Command parameters (JSON, can be large)","oneOf":[{"type":"object","description":"Inline base64-encoded body","required":["inlineBase64","mode"],"properties":{"inlineBase64":{"type":"string"},"mode":{"type":"string","enum":["inline"]}}},{"type":"object","description":"Storage-backed body","required":["mode"],"properties":{"mode":{"type":"string","enum":["storage"]},"size":{"type":["integer","null"],"format":"int64","description":"Size of the body in bytes","minimum":0},"storageGetRequest":{"oneOf":[{"type":"null"},{"description":"Pre-signed request for retrieving the body (for deployments)","type":"object","required":["backend","expiration","operation","path"],"properties":{"backend":{"description":"The storage backend this request targets","oneOf":[{"type":"object","description":"HTTP-based request (AWS S3, GCP GCS, Azure Blob)","required":["url","method","headers","type"],"properties":{"headers":{"type":"object","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"method":{"type":"string"},"type":{"type":"string","enum":["http"]},"url":{"type":"string"}}},{"type":"object","description":"Local filesystem operation","required":["filePath","operation","type"],"properties":{"filePath":{"type":"string"},"operation":{"type":"string","description":"Local filesystem operations","enum":["put","get","delete"],"x-readme-ref-name":"LocalOperation"},"type":{"type":"string","enum":["local"]}}}],"x-readme-ref-name":"PresignedRequestBackend"},"expiration":{"type":"string","format":"date-time","description":"When this presigned request expires"},"operation":{"description":"The operation this request performs","type":"string","enum":["put","get","delete"],"x-readme-ref-name":"PresignedOperation"},"path":{"type":"string","description":"The path this request operates on"}},"x-readme-ref-name":"PresignedRequest"}]},"storagePutUsed":{"type":["boolean","null"],"description":"Indicates storage upload was used for response submission"}}}],"x-readme-ref-name":"BodySpec"},"protocol":{"type":"string","description":"Protocol version identifier"},"responseHandling":{"description":"Response handling configuration","type":"object","required":["maxInlineBytes","submitResponseUrl","storageUploadRequest"],"properties":{"maxInlineBytes":{"type":"integer","format":"int64","description":"Maximum response body size that can be submitted inline","minimum":0},"storageUploadRequest":{"description":"Pre-signed request for uploading large response bodies","type":"object","required":["backend","expiration","operation","path"],"properties":{"backend":{"description":"The storage backend this request targets","oneOf":[{"type":"object","description":"HTTP-based request (AWS S3, GCP GCS, Azure Blob)","required":["url","method","headers","type"],"properties":{"headers":{"type":"object","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"method":{"type":"string"},"type":{"type":"string","enum":["http"]},"url":{"type":"string"}}},{"type":"object","description":"Local filesystem operation","required":["filePath","operation","type"],"properties":{"filePath":{"type":"string"},"operation":{"type":"string","description":"Local filesystem operations","enum":["put","get","delete"],"x-readme-ref-name":"LocalOperation"},"type":{"type":"string","enum":["local"]}}}],"x-readme-ref-name":"PresignedRequestBackend"},"expiration":{"type":"string","format":"date-time","description":"When this presigned request expires"},"operation":{"description":"The operation this request performs","type":"string","enum":["put","get","delete"],"x-readme-ref-name":"PresignedOperation"},"path":{"type":"string","description":"The path this request operates on"}},"x-readme-ref-name":"PresignedRequest"},"submitResponseUrl":{"type":"string","description":"URL where deployments submit responses"}},"x-readme-ref-name":"ResponseHandling"}},"x-readme-ref-name":"Envelope"},"leaseExpiresAt":{"type":"string","format":"date-time","description":"When lease expires"},"leaseId":{"type":"string","description":"Unique lease identifier"}},"x-readme-ref-name":"LeaseInfo"},"description":"Acquired leases (empty array if none available)"}},"x-readme-ref-name":"LeaseResponse"}
1
+ {"type":"object","description":"Response to lease acquisition","required":["leases"],"properties":{"leases":{"type":"array","items":{"type":"object","description":"Lease information","required":["leaseId","leaseExpiresAt","commandId","attempt","envelope"],"properties":{"attempt":{"type":"integer","format":"int32","description":"Attempt number","minimum":0},"commandId":{"type":"string","description":"Command identifier"},"envelope":{"description":"Commands envelope to process","type":"object","required":["protocol","deploymentId","commandId","attempt","command","params","responseHandling"],"properties":{"attempt":{"type":"integer","format":"int32","description":"Attempt number (starts at 1)","minimum":0},"command":{"type":"string","description":"Command name (e.g., \"generate-report\", \"sync-data\")"},"commandId":{"type":"string","description":"Unique command identifier"},"deadline":{"type":["string","null"],"format":"date-time","description":"Command deadline"},"deploymentId":{"type":"string","description":"Target deployment identifier"},"params":{"description":"Command parameters (JSON, can be large)","oneOf":[{"type":"object","description":"Inline base64-encoded body","required":["inlineBase64","mode"],"properties":{"inlineBase64":{"type":"string"},"mode":{"type":"string","enum":["inline"]}}},{"type":"object","description":"Storage-backed body","required":["mode"],"properties":{"mode":{"type":"string","enum":["storage"]},"size":{"type":["integer","null"],"format":"int64","description":"Size of the body in bytes","minimum":0},"storageGetRequest":{"oneOf":[{"type":"null"},{"description":"Pre-signed request for retrieving the body (for deployments)","type":"object","required":["backend","expiration","operation","path"],"properties":{"backend":{"description":"The storage backend this request targets","oneOf":[{"type":"object","description":"HTTP-based request (AWS S3, GCP GCS, Azure Blob)","required":["url","method","headers","type"],"properties":{"headers":{"type":"object","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"method":{"type":"string"},"type":{"type":"string","enum":["http"]},"url":{"type":"string"}}},{"type":"object","description":"Local filesystem operation","required":["filePath","operation","type"],"properties":{"filePath":{"type":"string"},"operation":{"type":"string","description":"Local filesystem operations","enum":["put","get","delete"],"x-readme-ref-name":"LocalOperation"},"type":{"type":"string","enum":["local"]}}}],"x-readme-ref-name":"PresignedRequestBackend"},"expiration":{"type":"string","format":"date-time","description":"When this presigned request expires"},"operation":{"description":"The operation this request performs","type":"string","enum":["put","get","delete"],"x-readme-ref-name":"PresignedOperation"},"path":{"type":"string","description":"The path this request operates on"}},"x-readme-ref-name":"PresignedRequest"}]},"storagePutUsed":{"type":["boolean","null"],"description":"Indicates storage upload was used for response submission"}}}],"x-readme-ref-name":"BodySpec"},"protocol":{"type":"string","description":"Protocol version identifier"},"responseHandling":{"description":"Response handling configuration","type":"object","required":["maxInlineBytes","submitResponseUrl","storageUploadRequest"],"properties":{"maxInlineBytes":{"type":"integer","format":"int64","description":"Maximum response body size that can be submitted inline","minimum":0},"storageUploadRequest":{"description":"Pre-signed request for uploading large response bodies","type":"object","required":["backend","expiration","operation","path"],"properties":{"backend":{"description":"The storage backend this request targets","oneOf":[{"type":"object","description":"HTTP-based request (AWS S3, GCP GCS, Azure Blob)","required":["url","method","headers","type"],"properties":{"headers":{"type":"object","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"method":{"type":"string"},"type":{"type":"string","enum":["http"]},"url":{"type":"string"}}},{"type":"object","description":"Local filesystem operation","required":["filePath","operation","type"],"properties":{"filePath":{"type":"string"},"operation":{"type":"string","description":"Local filesystem operations","enum":["put","get","delete"],"x-readme-ref-name":"LocalOperation"},"type":{"type":"string","enum":["local"]}}}],"x-readme-ref-name":"PresignedRequestBackend"},"expiration":{"type":"string","format":"date-time","description":"When this presigned request expires"},"operation":{"description":"The operation this request performs","type":"string","enum":["put","get","delete"],"x-readme-ref-name":"PresignedOperation"},"path":{"type":"string","description":"The path this request operates on"}},"x-readme-ref-name":"PresignedRequest"},"submitResponseUrl":{"type":"string","description":"URL where deployments submit responses"}},"x-readme-ref-name":"ResponseHandling"}},"x-readme-ref-name":"Envelope"},"leaseExpiresAt":{"type":"string","format":"date-time","description":"When lease expires"},"leaseId":{"type":"string","description":"Unique lease identifier"}},"x-readme-ref-name":"LeaseInfo"},"description":"Acquired leases (empty array if none available)"}},"x-readme-ref-name":"LeaseResponse"}
@@ -1 +1 @@
1
- {"oneOf":[{"allOf":[{"description":"AWS management configuration","type":"object","required":["managingRoleArn"],"properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"x-readme-ref-name":"AwsManagementConfig"},{"type":"object","required":["platform"],"properties":{"platform":{"type":"string","enum":["aws"]}}}],"description":"AWS management configuration"},{"allOf":[{"description":"GCP management configuration","type":"object","required":["serviceAccountEmail"],"properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"x-readme-ref-name":"GcpManagementConfig"},{"type":"object","required":["platform"],"properties":{"platform":{"type":"string","enum":["gcp"]}}}],"description":"GCP management configuration"},{"allOf":[{"description":"Azure management configuration","type":"object","required":["managingTenantId","managementPrincipalId"],"properties":{"managementPrincipalId":{"type":"string","description":"The principal ID of the service principal in the management account"},"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"}},"x-readme-ref-name":"AzureManagementConfig"},{"type":"object","required":["platform"],"properties":{"platform":{"type":"string","enum":["azure"]}}}],"description":"Azure management configuration"},{"type":"object","description":"Kubernetes management configuration (minimal for now)","required":["platform"],"properties":{"platform":{"type":"string","enum":["kubernetes"]}}}],"description":"Management configuration for different cloud platforms.\n\nPlatform-derived configuration for cross-account/cross-tenant access.\nThis is NOT user-specified - it's derived from the Agent Manager's ServiceAccount.","x-readme-ref-name":"ManagementConfig"}
1
+ {"oneOf":[{"allOf":[{"description":"AWS management configuration","type":"object","required":["managingRoleArn"],"properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"x-readme-ref-name":"AwsManagementConfig"},{"type":"object","required":["platform"],"properties":{"platform":{"type":"string","enum":["aws"]}}}],"description":"AWS management configuration"},{"allOf":[{"description":"GCP management configuration","type":"object","required":["serviceAccountEmail"],"properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"x-readme-ref-name":"GcpManagementConfig"},{"type":"object","required":["platform"],"properties":{"platform":{"type":"string","enum":["gcp"]}}}],"description":"GCP management configuration"},{"allOf":[{"description":"Azure management configuration","type":"object","required":["managingTenantId"],"properties":{"managementPrincipalId":{"type":["string","null"],"description":"Management service principal object ID for local development fallback"},"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":["string","null"],"description":"OIDC issuer URL for federated identity credential creation"},"oidcSubject":{"type":["string","null"],"description":"OIDC subject claim for federated identity credential creation"}},"x-readme-ref-name":"AzureManagementConfig"},{"type":"object","required":["platform"],"properties":{"platform":{"type":"string","enum":["azure"]}}}],"description":"Azure management configuration"},{"type":"object","description":"Kubernetes management configuration (minimal for now)","required":["platform"],"properties":{"platform":{"type":"string","enum":["kubernetes"]}}}],"description":"Management configuration for different cloud platforms.\n\nPlatform-derived configuration for cross-account/cross-tenant access.\nThis is NOT user-specified - it's derived from the Manager's ServiceAccount.","x-readme-ref-name":"ManagementConfig"}